Re: [PATCH v3] pm_qos: make update_request callable from interrupt context

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2010-06-07 at 21:13 -0700, mark gross 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).
> > 
> > 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

> Can't we just requiere that all notifier callbacks be atomic context
> safe and not fart around with 2 classes of notifiers?

Not unless someone rewrites the network notifier: it uses mutexes and is
clearly assuming user context.  Perhaps they could simply be replaced
with spinlocks but someone who understands the net code would would have
to advise on this.

James



_______________________________________________
linux-pm mailing list
linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linux-foundation.org/mailman/listinfo/linux-pm


[Index of Archives]     [Linux ACPI]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux