Re: [PATCH 3/4] sched: introduce synchronized idle injection

Jacob Pan
2015-12-02T17:29:10Z

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.