On Wed, 9 Jun 2010 08:54:27 +0200 Florian Mickler <florian@xxxxxxxxxxx> wrote: > > On Mon, Jun 07, 2010 at 12:19:41PM -0400, James Bottomley wrote: > > > > On Mon, 2010-06-07 at 17:34 +0200, florian@xxxxxxxxxxx wrote: > > > > > We use the spinlocked notifier chain variant (struct > > > > > atomic_notifier_head) and add an __might_sleep() to the chain for > > > > > constraints which have non-atomic notifiers. This way we catch all > > > > > interrupt-context-update-sites at runtime. > > > > > > > > Actually, I'm afraid we can't really call blocking notifiers through the > > > > atomic chain because we might end up with a contested chain call and a > > > > huge busy wait in the spinlock (especially if one of the notifiers is > > > > sleeping). Actually, I just checked and __atomic_notifier_call_chain() uses an rcu_read_lock() to protect the chain from removal of notifiers while going through it. So I (now again) think this patch (with queuing the might_sleep() for the network notifier) might be enough. Cheers, Flo _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm