Messages in this thread | | | Date | Wed, 15 Aug 2012 21:14:27 -0400 | From | Rik van Riel <> | Subject | Re: [discussion]sched: a rough proposal to enable power saving in scheduler |
| |
On 08/15/2012 10:43 AM, Arjan van de Ven wrote:
> The easy cop-out is provide the sysadmin a slider. > The slightly less easy one is to (and we're taking this approach > in the new P state code we're working on) say "in the default > setting, we're going to sacrifice up to 5% performance from peak > to give you the best power savings within that performance loss budget" > (with a slider that can give you 0%, 2 1/2% 5% and 10%)
On a related note, I am looking at the c-state menu governor.
We seem to have issues there, with Linux often going into a much deeper C state than warranted, which can lead to a fairly steep performance penalty for some workloads.
One of the issues we identified is that detect_repeating_patterns would deal quite poorly with patterns that have a short pause, followed by a long pause, followed by another short pause. For example, pinging a virtual machine :)
The idea Matthew and I have is simply planning for a shorter sleep period (discarding the outliers to the high end in the function once known as detect_repeating_patterns), and going to a deeper C state if we have significantly overslept.
The new estimation code is easy, but for the past days I have been looking through the timer code to figure out how such a timer could fire, and how we could recognize it without it looking like a normal wakeup, if we do not end up accidentally waking up another CPU, etc...
I guess I should probably post what I have and kick off a debate between people who know that code much better than I do :)
-- All rights reversed
| |