Re: [RFC][PATCH] PM: Avoid losing wakeup events during suspend

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

 



On Mon, 21 Jun 2010, mark gross wrote:

> On Mon, Jun 21, 2010 at 12:01:09PM -0400, Alan Stern wrote:
> > On Sun, 20 Jun 2010, mark gross wrote:
> > 
> > > Your confused about what problem this patch attempts to solve.
> > 
> > I don't think so.  Rafael's description was pretty clear.
> 
> Then how is it you don't understand the fact that Rafael's patch is to
> solve the wake event notification suspend race and not block opertunistic
> suspends or kernel critical sections where suspending should be disabled?

I don't know what gave you the idea that I think Rafael's patch is 
meant to block kernel critical sections.  I certainly don't think that.

However leaving that aside, the rest of the above is just two different
ways of saying the same thing:

	Wakeup events should cause suspend to be disabled until the
	events are processed.

	Arrival of wakeup events races with initiation of system 
	suspend (whether opportunistic or not).

Therefore blocking suspends when they ought to be disabled requires us 
to solve the wake event/suspend race.  You can't do one without doing 
the other.

> > >  There is
> > > a pm_qos patch in the works to address the suspend blocker
> > > functionality.
> > > http://lists.linux-foundation.org/pipermail/linux-pm/2010-June/026760.html
> > 
> > No.  That patch addresses something _similar_ to the suspend blocker
> > functionality.  The fact remains, though, that pm_qos is not used
> > during system suspend (the /sys/power/state interface), hence changes
> > to pm_qos won't solve the system-suspend problems that suspend blockers 
> > do solve.
> 
> You keep saying they solve something, I keep wondering what you are
> talking aobut.
> Lets see what problems it solves:
> * implements oppertunistic suspending (this is a feature not a problem)
> * enables kernel critical sections blocking suspending.
> * requiers overlapping application specific critcal sections from ISR
> into user mode to make implementation correct.
> * exposes a user mode interface to set a critical section.
> * reduces races between wake events (or suspend blocking events) but I'm
> not convinced it solves them. 

The last item on your list is what I meant.  The others are not 
problems solved by suspend blockers.  Well, maybe the second is, but I 
don't know of any kernel critical sections that need to block suspend 
other than those caused by wakeup events.

I agree with you that bundling opportunistic suspend and the user mode 
interface together with suspend blockers made the situation more 
difficult by mixing up the important issues.

> suspend blockers provide a way to block oppertunistic suspending, wich
> I'll have you know, is a pain to get working right and the enabling from
> device to device is not very portable and *that* doesn't say good things
> about the scheme.

The real problem with the scheme is to define which events should count
as "wakeup" events and to determine when they have been fully handled.  
I can see that these might well vary from one platform to another.  
(Maybe that's what you mean by saying the enabling is not very
portable.)  But these issues are unavoidable; any scheme will have to
address them.

Alan Stern

_______________________________________________
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