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 Wed, 9 Jun 2010 09:13:30 +0200
Florian Mickler <florian@xxxxxxxxxxx> wrote:

> 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

Oh, wow. I changed my mind again after reading up on RCU :|.

 * It is illegal to block while in an RCU read-side critical section.

(from include/linux/rcupdate.h)

Cheers,
Flo

p.s.: so, back to my original plan. 
_______________________________________________
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