Re: [PATCH] Notifier for significant events on i386

From: Vamsi Krishna S . (
Date: Wed Dec 11 2002 - 06:21:53 EST

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 <>) 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
- 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.


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
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

This archive was generated by hypermail 2b29 : Sun Dec 15 2002 - 22:00:20 EST