I was testing the current CVS tree for how well it handles oops, panics,
nmi's. Especially on SMP and with preempt. The current code is broken
and after an oops goes into a fit of scheduling while atomic thrashing.
My fix was to make some simple changes:
* use a spinlock (rather than my previous dump_oncpu)
* disable interrupts (and preempt) in dump_execute
* correct the logic in dump_silence that re-enables them
* change dump_silence_level to an enum (makes it clearer)
* remove my hack code to re-enable local apic because
the patch to panic.c makes it unnecessary.
The diff's for this are enclosed. Please give me comments.
With these fixes, I can reliably do oops and keep going.
Stephen Hemminger <shemminger@...>
Open Source Devlopment Lab