x86: fix NMI watchdog & 'stopped time' problem
authorMaciej W. Rozycki <macro@ds2.pg.gda.pl>
Mon, 26 Nov 2007 19:42:19 +0000 (20:42 +0100)
committerIngo Molnar <mingo@elte.hu>
Mon, 26 Nov 2007 19:42:19 +0000 (20:42 +0100)
commitd4d25deca49ec2527a634557bf5a6cf449f85deb
tree4148e6ac0438ff7dfb984591e7126e27538b16d2
parent2ffbb8377c7a0713baf6644e285adc27a5654582
x86: fix NMI watchdog & 'stopped time' problem

More than 3 years ago Niclas Gustafsson reported a 'stopped time'
problem:

> Watching the /proc/interrupts with 10s apart after the "stop".
>
> [root@s151 root]# more /proc/interrupts
>            CPU0
>   0:   66413955  local-APIC-edge  timer
[...]
> LOC:   67355837
> ERR:          0
> MIS:          0
> [root@s151 root]# more /proc/interrupts
>            CPU0
>   0:   66413955  local-APIC-edge  timer
[...]
> LOC:   67379568
> ERR:          0
> MIS:          0

This may be because buggy SMM firmware messes with the 8259A (configured
for a transparent mode -- yes that rare "local-APIC-edge" mode is tricky
;-) ) insanely.

this should resolve:

  http://bugzilla.kernel.org/show_bug.cgi?id=2544
  http://bugzilla.kernel.org/show_bug.cgi?id=6296

Patch-dusted-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/x86/kernel/io_apic_32.c
arch/x86/kernel/nmi_32.c