Messages in this thread | | | Date | Sat, 8 Aug 2009 02:31:33 +0200 | From | Frederic Weisbecker <> | Subject | Re: [PATCH 1/2] pm_qos: remove BKL |
| |
On Fri, Aug 07, 2009 at 09:08:18AM -0600, Jonathan Corbet wrote: > On Fri, 7 Aug 2009 07:54:13 +0200 > Frederic Weisbecker <fweisbec@gmail.com> wrote: > > > May be the last doubt could be the blocking_notifier_call_chain() call from > > update_target(). Not sure if these notifier handlers can expect to be called > > concurrently? > > I will confess that I hadn't audited the notifiers. One could easily > argue that concurrent calls to update_target() are entirely possible > with the current code (only one of the callers had BKL protection), > but, then, I'm supposed to be trying to make things better. > > The notifier call chain is already protected against concurrent > modification, but, since an rwsem is used, concurrent calls to the > notifiers themselves are possible. A quick grep shows that, in 2.6.31-rc5, > there is exactly one notifier registered. It's in > drivers/cpuidle/cpuidle.c; here's the whole thing: > > static void smp_callback(void *v) > { > /* we already woke the CPU up, nothing more to do */ > } > > After deep meditation on possible race condition scenarios, I am force to > conclude that this particular notifier already has all of the protection it > needs, and that any extra locking is likely to be superfluous.
Hehe :-)
So it would be nice to apply these patches. Ingo?
> Thanks for looking at the patch, > > jon
| |