Messages in this thread | | | Date | Wed, 18 Jun 2008 20:39:05 +0400 | From | Cyrill Gorcunov <> | Subject | Re: nmi_watchdog suspicious |
| |
[Maciej W. Rozycki - Wed, Jun 18, 2008 at 05:06:29PM +0100] | On Tue, 17 Jun 2008, Cyrill Gorcunov wrote: | | > Thanks a lot Maciej for comments! I've marked them. I'm not sure but it seems | > I wrote a bit unclear /my english bad indeed/ ;) I mean - this say 'slipping' | > (ie useless code executions) _was_ before the patch applied. Now it doesn't | > slip on this since we do mention explicitly in which case there should be | > alert counters reset. Other then that - will try to handle your notes. Thanks! | | It will happen regardless if touch_nmi_watchdog() is called before the | NMI watchdog has been set up in setup_nmi() or lapic_watchdog_init(). It | may also happen during that window if an NMI is signalled without any NMI | status bits set in the Port B register at 0x61 -- in theory that should | not happen except for a broken configuration, but reality out there seems | to be quite creative about breakage. | | Maciej |
Maciej, it seems we are talking about different code snippets ;) I'm talking only about touch_nmi_watchdog(). By now (in -tip tree we have)
void touch_nmi_watchdog(void) { if (nmi_watchdog == NMI_LOCAL_APIC || nmi_watchdog == NMI_IO_APIC) { unsigned cpu; ...
so we check explicitly the values (so if touch_nmi_watchdog was called when nmi_watchdog = 0 or -1U this code will not be executed anyway). So I think I'm a bit lost, Maciej... I just can't figure out what is wrong with this code, so please help me ;). If you're talking about apic code in _general_ design then...well, I think I need some time to _understand_ the code say byte-by-byte first.
- Cyrill -
| |