hpwdt.txt 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. Last reviewed: 06/02/2009
  2. HP iLO2 NMI Watchdog Driver
  3. NMI sourcing for iLO2 based ProLiant Servers
  4. Documentation and Driver by
  5. Thomas Mingarelli <thomas.mingarelli@hp.com>
  6. The HP iLO2 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 dependant on one another.
  10. A user can have the NMI sourcing without the watchdog timer and vice-versa.
  11. Watchdog functionality is enabled like any other common watchdog driver. That
  12. is, an application needs to be started that kicks off the watchdog timer. A
  13. basic application exists in the Documentation/watchdog/src directory called
  14. watchdog-test.c. Simply compile the C file and kick it off. If the system
  15. gets into a bad state and hangs, the HP ProLiant iLO 2 timer register will
  16. not be updated in a timely fashion and a hardware system reset (also known as
  17. an Automatic Server Recovery (ASR)) event will occur.
  18. The hpwdt driver also has three (3) module parameters. They are the following:
  19. soft_margin - allows the user to set the watchdog timer value
  20. allow_kdump - allows the user to save off a kernel dump image after an NMI
  21. nowayout - basic watchdog parameter that does not allow the timer to
  22. be restarted or an impending ASR to be escaped.
  23. NOTE: More information about watchdog drivers in general, including the ioctl
  24. interface to /dev/watchdog can be found in
  25. Documentation/watchdog/watchdog-api.txt and Documentation/IPMI.txt.
  26. The NMI sourcing capability is disabled when the driver discovers that the
  27. nmi_watchdog is turned on (nmi_watchdog = 1). This is due to the inability to
  28. distinguish between "NMI Watchdog Ticks" and "HW generated NMI events" in the
  29. Linux kernel. What this means is that the hpwdt nmi handler code is called
  30. each time the NMI signal fires off. This could amount to several thousands of
  31. NMIs in a matter of seconds. If a user sees the Linux kernel's "dazed and
  32. confused" message in the logs or if the system gets into a hung state, then
  33. the user should reboot with nmi_watchdog=0.
  34. 1. If the kernel has not been booted with nmi_watchdog turned off then
  35. edit /boot/grub/menu.lst and place the nmi_watchdog=0 at the end of the
  36. currently booting kernel line.
  37. 2. reboot the sever
  38. Now, the hpwdt can successfully receive and source the NMI and provide a log
  39. message that details the reason for the NMI (as determined by the HP BIOS).
  40. Below is a list of NMIs the HP BIOS understands along with the associated
  41. code (reason):
  42. No source found 00h
  43. Uncorrectable Memory Error 01h
  44. ASR NMI 1Bh
  45. PCI Parity Error 20h
  46. NMI Button Press 27h
  47. SB_BUS_NMI 28h
  48. ILO Doorbell NMI 29h
  49. ILO IOP NMI 2Ah
  50. ILO Watchdog NMI 2Bh
  51. Proc Throt NMI 2Ch
  52. Front Side Bus NMI 2Dh
  53. PCI Express Error 2Fh
  54. DMA controller NMI 30h
  55. Hypertransport/CSI Error 31h
  56. -- Tom Mingarelli
  57. (thomas.mingarelli@hp.com)