Re: [PATCH 1/8] Notifier chain update

From: Alan Stern
Date: Wed Jan 18 2006 - 15:21:51 EST


On Wed, 18 Jan 2006, Benjamin LaHaise wrote:

> On Wed, Jan 18, 2006 at 11:34:12AM -0500, Alan Stern wrote:
> > There are some limitations, which should not be too hard to live with.
> > For atomic/blocking chains, registration and unregistration must
> > always be done in a process context since the chain is protected by a
> > mutex/rwsem. Also, a callout routine for a non-raw chain must not try
> > to register or unregister entries on its own chain. (This did happen
> > in a couple of places and the code had to be changed to avoid it.)
>
> This is bad, as rwsems are pretty much guaranteed to be a cache miss on
> smp systems, so their addition makes these code paths scale much more
> poorly than is needed. Given the current approach to modules, would it
> not make sense to simply require that any code that the notifier paths
> touch simply remain loaded in the kernel? In that case rcu protection
> of the pointers would suffice for the hooks.

You can't use RCU protection around code that may sleep. Whether the code
remains loaded in the kernel or is part of a removable module doesn't
enter into it.

Alan Stern

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/