• Don Zickus's avatar
    nmi_watchdog: Fallback to software events when no hardware pmu detected · cf454aec
    Don Zickus authored
    Not all arches have a PMU or have perf_event support for their
    PMU.  The nmi_watchdog will fail in those cases.  Fallback to
    using software events to generate nmi_watchdog traffic with
    local apic interrupts.
    
    Tested on a Pentium4 and it worked as expected, excepting for
    detecting cpu lockups.
    
    The problem with using software events as a cpu lock up detector
    is the nmi_watchdog uses the logic that if local apic interrupts
    stop incrementing then the cpu is probably locked up.  But with
    software events we use the local apic to trigger the
    nmi_watchdog callback to see if local apic interrupts are still
    firing, which obviously they are otherwise we wouldn't have been
    triggered.
    
    The algorithm to detect cpu lock ups is the same as the old
    nmi_watchdog. Perhaps we need to find a better way to detect
    lock ups?
    Signed-off-by: default avatarDon Zickus <dzickus@redhat.com>
    Cc: peterz@infradead.org
    Cc: gorcunov@gmail.com
    Cc: aris@redhat.com
    LKML-Reference: <1266013161-31197-3-git-send-email-dzickus@redhat.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    cf454aec
nmi_watchdog.c 5.46 KB