Re: Attempted summary of suspend-blockers LKML thread

david
2010-08-04T22:42:12Z

On Wed, 4 Aug 2010, Florian Mickler wrote:

> On Wed, 4 Aug 2010 23:15:13 +0200
> Pavel Machek <pavel@ucw.cz> wrote:
>
>> Hi!
>>
>>>>>> If this doesn't work for the Android folks for whatever reason, another
>>>>>> approach would be to do the freeze in user code, which could track
>>>>>> whether any user-level resources (pthread mutexes, SysV semas, whatever)
>>>>>> where held, and do the freeze on a thread-by-thread basis within each
>>>>>> "victim" application as the threads reach safe points.
>>>>>
>>>>> The main problem I see with the cgroups solution is that it doesn't seem
>>>>> to do anything to handle avoiding loss of wakeup events.
>>>>
>>>> In different message, Arve said they are actually using low-power idle
>>>> to emulate suspend on Android.
>>>
>>> Hello, Pavel,
>>>
>>> Could you please point me at this message?
>>
>> AFAICT, this tells us that idle and suspend is the same hardware state
>> on current Android hardware:
>> Pavel
>>
>> Message-ID: <AANLkTinjH0C0bSK=Y2wKASnbJFsR2BN303xBXkaHbmRC@mail.gmail.com>
>>
>> Arve said:
>>
>> If you just program the alarm you will wake up see that the monotonic
>> clock has not advanced and set the alarm another n seconds into the
>> future. Or are proposing that suspend should be changed to keep the
>> monotonic clock running? If you are, why? We can enter the same
>> hardware states from idle, and modifying suspend to wake up more often
>> would increase the average power consumption in suspend, not improve
>> it for idle. In other words, if suspend wakes up as often as idle, why
>> use suspend?
>>
>>
>
> They always told us from the beginning, that on the msm platform they
> reach the same powerlevel from suspend and idle. They still get gains
> from using opportunistic suspend.

Yes, you will always get gains if you shutdown while there is still work
to do.

the question I am raising is.

If, instead of doing opportunistic suspend (with wakelocks to keep things
awake, requiring explicit application code changes to implement), how
close would you be able to get if instead you just were able to tell the
system to ignore some processes when considering if the system can sleep
or not?

With badly written 'trusted' apps you will have poor power useage, but
with badly written apps grabbing wakelocks inappropriately you will have
poor power useage.

David Lang