Messages in this thread | | | Date | Mon, 22 Sep 2008 22:48:54 +0400 | From | Cyrill Gorcunov <> | Subject | Re: [PATCH] NMI watchdog: setup before enabling NMI watchdog |
| |
[Aristeu Rozanski - Mon, Sep 22, 2008 at 02:35:05PM -0400] | > Hi Aristeu, | > | > thanks for the patch! I may be _absolutely_ wrong but could you | > explain me how we reach this site in traps | > | > --- | > if (!(reason & 0xc0)) { | > if (notify_die(DIE_NMI_IPI, "nmi_ipi", regs, reason, | > 2, SIGINT) == NOTIFY_STOP) | > return; | > /* | > * Ok, so this is none of the documented NMI sources, | > * so it must be the NMI watchdog. | > ^^^^ | > */ | > if (nmi_watchdog_tick(regs, reason)) | > return; | > if (!do_nmi_callback(regs, cpu)) | > unknown_nmi_error(reason, regs); | > | > return; | > } | > --- | > | > not having masked APIC registers as NMI entry yet (which is done during | > perfctl initialization)? | actually the comment is a bit misleading. we can get other "undocumented" | NMIs from different sources. Notice that if the nmi_watchdog_tick() doesn't | identifies it as a performance counter generated NMI (if LAPIC based, IOAPIC | always assume that the NMI is for the NMI watchdog), a default NMI callback | will be tried and if it fails, unknown_nmi_error() will be called. The first | case comes to my head is those NMI buttons present on development machines. | | -- | Aristeu |
Thanks Aristeu!
- Cyrill -
| |