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