Re: [PATCH] Notifier for significant events on i386

Vamsi Krishna S . (vamsi@in.ibm.com)
Wed, 11 Dec 2002 16:51:53 +0530


On Mon, Dec 09, 2002 at 10:08:11PM +0000, Stephen Hemminger wrote:
> This is a successor to the previous patch for notifier callback when NMI
> watchdog occurs. It is a port of x86_64 code (thanks for the suggestion
> Andi Kleen <ak@suse.de>) with extensions for watchdog, and integration
> of panic handling.
>
> To get notified for panic, oops, NMI and other events the caller needs
> to insert itself in the notify_die chain. The callback can then filter
> out which events are of interest.
>
> This started out as a way to hook in LKCD, but it is general enough that
> kprobe, kdb, and other utilities can use it as well.
>
I support this, it makes all kernel-space debug tools less intrusive.
It may be out of scope for this work but there are a couple of
other issues to consider here:

- turn trap1/trap3 to interrupt gates: kprobes does this, kgdb turns
off interrupts in its own handler, I suppose other tools too need
this.
- notifier lists are racy on SMP, IFAICT, read_lock(&notifier_lock)
needs to be taken in notifier_call_chain(), but that too is
deadlock prone.

Andi,

Isn't this a problem on x86_64 too? What is there to prevent a
handler from being removed from the notifier list while it
is being used to call the handler on another CPU?

I am considering using a RCU-based list for notifier chains.
Corey has done some work on these lines to add NMI notifier
chain, I think it should be generalised on for all notifiers.

Thoughts? Comments?

-- 
Vamsi Krishna S.
Linux Technology Center,
IBM Software Lab, Bangalore.
Ph: +91 80 5044959
Internet: vamsi@in.ibm.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/