Re: Attempted summary of suspend-blockers LKML thread, take three

david
2010-08-07T20:36:26Z

On Sat, 7 Aug 2010, Theodore Tso wrote:

> On Aug 7, 2010, at 5:11 AM, Rafael J. Wysocki wrote:
>
>> But in principle that need not mean suspending the entire system.
>> To get applications out of the way, you need to freeze user space.
>> However, that's not sufficient, because in addition to that you need to
>> prevent deactivate the majority of interrupt sources to avoid waking up the
>> CPU (from C-states) too often.

> True, but again, consider the MacBook. If you plug in an iPod, the
> machine will wake up for *just* long enough to let the iTunes sync the
> iPod, but once its done, the machine goes back to sleep again
> immediately. I doubt MacOS has something called a "suspend blocker"
> which prevents the machine from sleeping until iTunes finished, which
> when released, allows the machine to suspend again immediately. But
> neither did I see any evidence that it took 30 seconds for some kludgy
> polling process to decide that iTunes was done, and to allow the MacBook
> to go back to sleep.

nobody has proposed a polling process to decide the system can suspend,
what I proposed was to have idle detection decide the system can suspend,
which would mean that if you don't want the system to suspend you have to
do something to keep it from being idle.

At the time I didn't know that Android always disabled suspend for the
entire time the display was on, so I made the assumption that timouts had
to be long enough for input events to keep the system awake, which would
put them on the order of 30 seconds or longer.

If all that is wanted is to disable the suspend for the entire time the
backlight is on you don't need wakelocks, and you don't need a privilaged
thread waking up, all you need is to tell the power management system not
to suspend through the existing mechanism. you could create a new
mechanism (wakelock) to pass the same information, but what is the
advantage of doing so?

David Lang