Re: Attempted summary of suspend-blockers LKML thread

From: david
Date: Wed Aug 04 2010 - 18:44:03 EST


On Wed, 4 Aug 2010, Florian Mickler wrote:

On Wed, 4 Aug 2010 23:15:13 +0200
Pavel Machek <pavel@xxxxxx> 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@xxxxxxxxxxxxxx>

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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/