> Subject: Re: Attempted summary of suspend-blockers LKML thread
>
> On Tue, 3 Aug 2010 21:55:07 -0700 (PDT)
>
david@lang.hm wrote:
>
>> On Tue, 3 Aug 2010, Arjan van de Ven wrote:
>>
>>> On Tue, 3 Aug 2010 17:10:15 -0700
>>> "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> wrote:
>>>>
>>>> OK, I'll bite...
>>>>
>>>>> From an Android perspective, the differences are as follows:
>>>>
>>>> 1. Deep idle states are entered only if there are no runnable
>>>> tasks. In contrast, opportunistic suspend can happen even when there
>>>> are tasks that are ready, willing, and able to run.
>>>
>>> for "system suspend", this is an absolutely valid statement.
>>> for "use suspend as idle state", it's not so clearly valid.
>>> (but this is sort of a separate problem, basically the "when do we
>>> freeze the tasks that we don't like for power reasons" problem,
>>> which in first order is independent on what kind of idle power state
>>> you pick, and discussed extensively elsewhere in this thread)
>>
>> note that what I'm speculating about would never freeze some of the tasks,
>> it would run everything if anything is run, but it would not consider the
>> actions of some of the programs when deciding if it can shutdown.
>>
>> so if you have all your privilaged applications in long sleeps, but still
>> have your bouncing cows running, peggng the CPU, making noise, and
>> updating the screen, the system would decide the system is 'idle' and go
>> into the 'suspend' low power state until there is a wake activity.
>>
>> but if you have a privilaged application doing other stuff (say you are
>> talking on the phone, have a GPS mapping program running and giving you
>> directions, etc), the bouncing cows would continue to run and there would
>> never be an attempt to freeze them while leaving the other stuff active.
>>
>> David Lang
>
> I think the only difference between your proposition and the
> current android practice is that in your scheme the partition is along
> the process/task boundary (i.e. good apps vs bad apps) whereas the
> android looks at actions or events or ... let's call it "stuff" and
> blocks suspend whenever "stuff" needs to be done.