Re: suspend blockers & Android integration

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

 



On Sat, 5 Jun 2010, Rafael J. Wysocki wrote:
> I kind of agree here, so I'd like to focus a bit on that.
> 
> Here's my idea in the very general terms:
> 
> (1) Use the cgroup freezer to "suspend" the "untrusted" apps (ie. the ones
>     that don't use suspend blockers aka wakelocks in the Android world) at the
>     point Android would normally start opportunistic suspend.

There is an additional benefit to this approach:

     In the current android world a background task (e.g. download
     initiated before the screensaver kicked in) prevents the suspend,
     but that also means that the crapplications can still suck power
     completely unconfined.

     With the cgroup freezer you can "suspend" them right away and
     just keep the trusted background task(s) alive which allows us to
     go into deeper idle states instead of letting the crapplications
     run unconfined until the download finished and the suspend
     blocker goes away.
 
> (2) Allow the cpuidle framework to put CPUs into low-power states after the
>     "trusted" apps (ie. the ones that use suspend blockers in the Android
>     world) have gone idle.
> 
> (3) Teach the cpuidle framework to schedule runtime suspend of I/O devices
>     before idling the last CPU (*).
> 
> (4) Design a mechanism to resume the I/O devices suspended in (3) so that
>     they are not powered up unnecessarily (that's going to be difficult as far
>     as I can see).
> 
> This way, in principle, we should be able to save (at least almost) as much
> energy as the opportunistic suspend currently used by Android, provided that
> things will be capable of staying idle for extended periods of time.
> 
> (*) That may require per-device PM QoS requirements to be used, in which case
>     devices may even be suspended earlier if the PM QoS requirements of all
>     of their users are met.
> 
> I wonder what people think.  Is this realistic and if so, would it be difficult
> to implement?

I think it's realistic and not overly complicated to implement.

Thanks,

	tglx
_______________________________________________
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