Messages in this thread | | | Date | Wed, 2 Dec 2015 09:28:04 -0800 | From | Jacob Pan <> | Subject | Re: [PATCH 3/4] sched: introduce synchronized idle injection |
| |
On Fri, 27 Nov 2015 10:17:02 +0100 Ingo Molnar <mingo@kernel.org> wrote:
> > > > Two sysctl knobs are given to the userspace for selecting the > > > > percentage of idle time as well as the forced idle duration for > > > > each idle period injected. > > > > > > What's the purpose of these knobs? Just testing, or will some > > > user-space daemon set them dynamically? > > > > > yes, it is to be used by userspace daemon such as thermal daemon. > > Though there are interests from in kernel thermal governor but that > > is another story. > > Yeah, so let me make this very clear: for a kernel scheduling feature > to be self-sufficient is not 'another story', but a must-have aspect > for this feature to become upstream acceptable. > > We don't add scheduler features that rely on pushing 'policy' to > user-space. That's poor design with many disadvantages. This feature > should offer a reasonable and automatic in-kernel default behavior > with numbers that prove that it works. > Sorry about the late response, have been sick all this time.
So my intention here are two folds and two steps.
1. for system under thermal/power limit but still want to operate at optimal energy efficiency point
2. synchronize idle time for better energy efficiency (runtime identify suitable workload)
This patchset is intended for #1. Lay ground work for #2.
The knobs in #1 can be used by in kernel thermal-aware scheduling as some early discussion pointed out. Thus not pushing policy to userspace.
For #2, my plan is to have a PM QoS like knob with sensible default to specify scheduler latency tolerance w.r.t. idle synchronization.
Similar to timer slack (where default 5ms slack is used), we can give a default tolerance in the forms of two parameters: - forced_idle_duration (default 5ms) - forced_to_natural_idle_ratio (default 50%)
e.g. when playing a online game with 40% natural idle time, idle injection code will try to 20% synchronized idle time.
> Keeping an essential part of the feature in user-space earns a NAK > from me. I agree this should be self contained. My intension is to have the essential part used in kernel by thermal aware scheduling or PM QoS with clear intuitive mode of operation.
| |