On Sun, 26 Aug 2012 11:15:09 +1000 David Seikel <onef...@gmail.com> said:

> I leave my E17 CPUfreq module configured with "Set CPU power policy" on
> "Automatic", "Powersaving behaviour" on "Automatic" and it does what I
> think you want with no issues.
> 
> The difference between what you stated you want and what actually
> happens is that the frequency drops when ever the entire system is
> idle, not just when E17 is idle.  So more power is saved overall.  Most
> of the time I'm using my computer I'm not actually giving E17 anything
> to do, I'm focused on some applications window or another.  So slowing
> down when E17 is idle means it would slow down right when I want to use
> it.  I don't think that's what you want.
> 
> BTW, the ARM in my phone has 18 CPU frequencies it can run at, though I
> suspect that's just the number of entries shown in the app I use and it
> can do more.  I understand that the pegasusq governor (not ondemand) is
> often used on Android phones for keeping the battery life long while
> also being responsive and performant when needed.  It's what I use and
> again, no issues.

indeed this is a kernel cpu governor issue. by having e "work around it" we're
avoiding the real fix. but is there a better way to do this?

as such i almost always use "low power automatic" or "automatic" unless
benchmarking... almost always... except i have definitely noticed speedups to
compiling if i stick it at "maximum speed", and of course benchmarks get
affected heavily by it - i've seen it, so i need maximum power then. this is
probably just a matter of poor responsiveness by the kernel governor (not
clocking up quickly enough) and a new governor that always clocks up to full
speed with a much lower threshold (e.g. watch active timeslices and if any
single cpu core's timeslots are more than 80% full for just 1ms, then clock up
to full - problem. if 2 procs on 2 cores ping-pong then it misses this and the
ping-pongs are too slow. i need to think about that).

now to e's "userspace powersaving features"...

the reason e has the "suspend on blank" feature is it is something that the
kernel doesn't do and it highly affects the user - a suspended machine is
totally inactive and takes a while to wakeup, but it is a much lower power
state.

this isn't a power saving feature, but e also can raise/lower nice value of
processes owning windows based on focus.

if you use ondemand or automatic the cpu should mostly stay clocked down while
blanked unless you leave stuff running (apps doing processing etc.) and it will
clock up and down as needed here while the screen is blank. reality is though...
apps tend not to care and will go do this anyway (leave browser on and it will
happily keep running jquery animations all day long while blanked :)).

so here's the catch. the kernel doesn't have any idea about the user and
responsiveness for the user or if the user is paying attention to performance.
at this stage i know of now way to tell it "responsiveness is the most important
thing right now so do that" vs "responsiveness is irrelevant to focus on saving
power" OTHER than changing governors from userspace.

when the screen is blanked we are in the latter state, and when it's not we are
in the former. reality is that today ondemand and automatic are close to being
fine, but not quite. they don't seem to clock up fast enough to keep things
like compiling fast, and they still clock up even when a user is not there
(since you probably use the same base power load here anyway, it's better to
stay clocked down).

so as i see it, reality is we need to tell the kernel information on what kind
of response scenario a user would expect... and right now the only way is to go
swizzling with governor.

p.s. we ultimately need to do this for mobile purposes. minimized apps (for
illume this means all apps that are not visible) should literally be SIGSTOPed
while in the background (unless they specifically hint that they must keep
running). efl (elm) should also realize the process has no "active" windows and
use ecore_throttle to throttle itself. maybe suspend rendering to
windows/canvases and use the evas_dump infra to free up memory etc. so there is
much more we need to do for resource (power, cpu, memory) saving outside of the
kernel.

-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    ras...@rasterman.com


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
enlightenment-users mailing list
enlightenment-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-users

Reply via email to