Messages in this thread | | | From | Don Zickus <> | Subject | [PATCH 0/3 v2] new nmi_watchdog using perf events | Date | Fri, 5 Feb 2010 21:47:02 -0500 |
| |
This patch series tries to implement a new nmi_watchdog using the perf events subsystem. I am posting this series early for feedback on the approach. It isn't feature compatible with the old nmi_watchdog yet, nor does it have all the old workarounds either.
The basic design is to create an in-kernel performance counter that goes off every few seconds and checks for cpu lockups. It is fairly straight forward. Some of the quirks are making sure the cpu lockup detection works correctly.
It has been lightly tested for now. Once people are ok with the approach, I'll expand testing to more machines in our lab.
I tried taking a generic approach so all arches could use it if they want and then implement some per arch specific hooks. I believe this is what Ingo was suggesting. The initial work is based off of kernel/softlockup.c.
Any feedback would be great.
v2: - moved a notify_die call into a #ifdef block - used better default values for configuring the nmi_watchdog based on the old nmi_watchdog values
Cheers, Don
-- damn it forgot to cc lkml
Don Zickus (3): [RFC][x86] move notify_die from nmi.c to traps.c [RFC] nmi_watchdog: new implementation using perf events [RFC] nmi_watchdog: config option to enable new nmi_watchdog
arch/x86/kernel/apic/Makefile | 7 ++- arch/x86/kernel/apic/hw_nmi.c | 114 ++++++++++++++++++++++++ arch/x86/kernel/apic/nmi.c | 7 -- arch/x86/kernel/traps.c | 7 ++ include/linux/nmi.h | 4 + kernel/Makefile | 1 + kernel/nmi_watchdog.c | 196 +++++++++++++++++++++++++++++++++++++++++ lib/Kconfig.debug | 13 +++ 8 files changed, 341 insertions(+), 8 deletions(-) create mode 100644 arch/x86/kernel/apic/hw_nmi.c create mode 100644 kernel/nmi_watchdog.c
| |