hpwdt.txt 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. Last reviewed: 05/20/2016
  2. HPE iLO NMI Watchdog Driver
  3. NMI sourcing for iLO based ProLiant Servers
  4. Documentation and Driver by
  5. Thomas Mingarelli
  6. The HPE iLO NMI Watchdog driver is a kernel module that provides basic
  7. watchdog functionality and the added benefit of NMI sourcing. Both the
  8. watchdog functionality and the NMI sourcing capability need to be enabled
  9. by the user. Remember that the two modes are not dependent on one another.
  10. A user can have the NMI sourcing without the watchdog timer and vice-versa.
  11. All references to iLO in this document imply it also works on iLO2 and all
  12. subsequent generations.
  13. Watchdog functionality is enabled like any other common watchdog driver. That
  14. is, an application needs to be started that kicks off the watchdog timer. A
  15. basic application exists in the Documentation/watchdog/src directory called
  16. watchdog-test.c. Simply compile the C file and kick it off. If the system
  17. gets into a bad state and hangs, the HPE ProLiant iLO timer register will
  18. not be updated in a timely fashion and a hardware system reset (also known as
  19. an Automatic Server Recovery (ASR)) event will occur.
  20. The hpwdt driver also has three (3) module parameters. They are the following:
  21. soft_margin - allows the user to set the watchdog timer value.
  22. Default value is 30 seconds.
  23. allow_kdump - allows the user to save off a kernel dump image after an NMI.
  24. Default value is 1/ON
  25. nowayout - basic watchdog parameter that does not allow the timer to
  26. be restarted or an impending ASR to be escaped.
  27. Default value is set when compiling the kernel. If it is set
  28. to "Y", then there is no way of disabling the watchdog once
  29. it has been started.
  30. NOTE: More information about watchdog drivers in general, including the ioctl
  31. interface to /dev/watchdog can be found in
  32. Documentation/watchdog/watchdog-api.txt and Documentation/IPMI.txt.
  33. The NMI sourcing capability is disabled by default due to the inability to
  34. distinguish between "NMI Watchdog Ticks" and "HW generated NMI events" in the
  35. Linux kernel. What this means is that the hpwdt nmi handler code is called
  36. each time the NMI signal fires off. This could amount to several thousands of
  37. NMIs in a matter of seconds. If a user sees the Linux kernel's "dazed and
  38. confused" message in the logs or if the system gets into a hung state, then
  39. the hpwdt driver can be reloaded.
  40. 1. If the kernel has not been booted with nmi_watchdog turned off then
  41. edit and place the nmi_watchdog=0 at the end of the currently booting
  42. kernel line. Depending on your Linux distribution and platform setup:
  43. For non-UEFI systems
  44. /boot/grub/grub.conf or
  45. /boot/grub/menu.lst
  46. For UEFI systems
  47. /boot/efi/EFI/distroname/grub.conf or
  48. /boot/efi/efi/distroname/elilo.conf
  49. 2. reboot the sever
  50. 3. Once the system comes up perform a modprobe -r hpwdt
  51. 4. modprobe /lib/modules/`uname -r`/kernel/drivers/watchdog/hpwdt.ko
  52. Now, the hpwdt can successfully receive and source the NMI and provide a log
  53. message that details the reason for the NMI (as determined by the HPE BIOS).
  54. Below is a list of NMIs the HPE BIOS understands along with the associated
  55. code (reason):
  56. No source found 00h
  57. Uncorrectable Memory Error 01h
  58. ASR NMI 1Bh
  59. PCI Parity Error 20h
  60. NMI Button Press 27h
  61. SB_BUS_NMI 28h
  62. ILO Doorbell NMI 29h
  63. ILO IOP NMI 2Ah
  64. ILO Watchdog NMI 2Bh
  65. Proc Throt NMI 2Ch
  66. Front Side Bus NMI 2Dh
  67. PCI Express Error 2Fh
  68. DMA controller NMI 30h
  69. Hypertransport/CSI Error 31h
  70. -- Tom Mingarelli