[lkml]   [2008]   [May]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [patch 06/11] x86: nmi_32/64.c - use apic_write_around instead of apic_write
On Wed, 28 May 2008, Cyrill Gorcunov wrote:

> So I've moved a part of code (32bit) from proc_nmi_enabled() to
> nmi_watchdog_default() BUT this nmi_watchdog_default() also called
> from smpboot.c:native_smp_prepare_cpus() and before this patch
> this call was just an empty call (and eliminated by gcc I think)
> now it's not empy. But how it leads to hang I can't understand.
> The only thing is done - nmi_watchdog is set to NMI_LOCAL_APIC
> or NMI_IO_APIC and my only suspicious is that something happens
> asynchronously and leads to machine hang. Let me know if I wrote
> in obscure manner.

The problem is the I/O APIC NMI watchdog which does not work correctly on
the reporter's machine. Your patch makes the NMI watchdog be enabled by
default on 32-bit platforms (OTOH, proc_nmi_enabled() is only called by an
explicit request via sysctl). Unfortunately many hardware vendors have
not fully recognised the existence of Linux yet and the NMI watchdog
frequently triggers breakage in SMM firmware even on modern equipment;
actually it was less likely to break in the old days.


 \ /
  Last update: 2008-05-28 19:13    [W:0.066 / U:2.148 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site