All of lore.kernel.org
 help / color / mirror / Atom feed
* [patch 0/8] [RFC PATCH] nmi watchdog: x86 32/64 cleanup
@ 2006-05-09 20:50 dzickus
  2006-05-09 20:50 ` [patch 1/8] nmi watchdog header cleanup dzickus
                   ` (7 more replies)
  0 siblings, 8 replies; 18+ messages in thread
From: dzickus @ 2006-05-09 20:50 UTC (permalink / raw)
  To: linux-kernel; +Cc: ak, oprofile-list, dzickus

A major cleanup of the nmi watchdog on the i386 and x86_64 archs.

This little project started out as a way to get unknown_nmi_panic working on
an x86_64 SMP machine. But after Andi rejected my dirty little hack ;), it
grew into a spring cleaning of the nmi watchdog.

The fix Andi wanted led to a conflict with how oprofile worked.  This led to
a reservation layer around the performance counters and a bunch of changes
in oprofile startup.  All the reservation layer consists of is reserving a
bit that corresponds to a performance counter.  The intent here is to
prevent subsystems like oprofile and nmi watchdog from stomping on each
other when trying to manipulate these counters. Currently, oprofile must
stop the nmi watchdog before using the counters.  This approach does not
encourage any sharing. :) 

During the testing of this reservation layer, I ran into more and more bugs
from old hacks (notably in the SMP cases).  As a result I found myself
rewriting a lot of this code.  I think I straightened everything out, except
for enabling/disabling the nmi watchdog on an ioapic.  The
enable_irq/disable_irq macros don't seem to work for me and I don't know
enough about the subsystem to figure it out either. 

Of course the oprofile code is shared with the i386 arch, so all the changes
I did in x86_64 had to be duplicated over there too.

I tested these changes on a Xeon (UP/SMP), P4 (32/64, UP/SMP) and under
various boot-up defaults (nmi-watchdog=0,1,2).  I also worked on some of
these changes with Andi Kleen and the oprofile folks, so these ideas
shouldn't be too surprising, just perhaps the implementation. :o

Any thoughts/feedback/criticism to clean this up more and probably fix some of my
coding style would be appreciated.

Cheers,
Don

--

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2006-05-22 17:51 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-05-09 20:50 [patch 0/8] [RFC PATCH] nmi watchdog: x86 32/64 cleanup dzickus
2006-05-09 20:50 ` [patch 1/8] nmi watchdog header cleanup dzickus
2006-05-09 20:50 ` [patch 2/8] Add performance counter reservation framework for UP kernels dzickus
2006-05-09 20:50 ` [patch 3/8] Utilize performance counter reservation framework in oprofile dzickus
2006-05-09 20:50 ` [patch 4/8] Add SMP support on x86_64 to reservation framework dzickus
2006-05-09 21:42   ` Andi Kleen
2006-05-09 20:50 ` [patch 5/8] Add SMP support on i386 " dzickus
2006-05-22 17:31   ` Markus Armbruster
2006-05-22 17:55     ` Don Zickus
2006-05-09 20:50 ` [patch 6/8] Cleanup NMI interrupt path dzickus
2006-05-09 20:50 ` [patch 7/8] Remove un/set_nmi_callback and reserve/release_lapic_nmi functions dzickus
2006-05-09 20:50 ` [patch 8/8] Add abilty to enable/disable nmi watchdog from sysfs dzickus
2006-05-09 21:37   ` Andi Kleen
2006-05-10  9:10   ` Stephane Eranian
2006-05-10  9:28     ` Andi Kleen
2006-05-10 14:59     ` Don Zickus
2006-05-10 15:03       ` Stephane Eranian
2006-05-10 19:06         ` Don Zickus

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.