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). I think the pm_qos_object still needs the two notifier chains ... it's just that when set up, one must either fill an atomic or a blocking chain (leaving the other NULL). We use the NULL to check to decide what chain to add notifiers to, and if the blocking chain is null, we refuse to add blocking notifiers (with a BUG). If the blocking chain is non-null, we register the might_sleep() notifier (actually, given the argument mismatch, you'll have to wrapper that). James _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm