Re: [PATCH V3 2/2] sched: idle: IRQ based next prediction for idle period

From: Daniel Lezcano
Date: Fri Feb 19 2016 - 10:01:16 EST


On 02/18/2016 07:57 PM, Rafael J. Wysocki wrote:
On Thu, Feb 18, 2016 at 11:25 AM, Daniel Lezcano
<daniel.lezcano@xxxxxxxxxx> wrote:
On 02/17/2016 11:21 PM, Rafael J. Wysocki wrote:

[ ... ]

Reviewed-by: Nicolas Pitre <nico@xxxxxxxxxx>


Well, I'm likely overlooking something, but how is this going to be
hooked up to the code in idle.c?


My somewhat educated guess is that sched_idle() in your patch is
intended to replace cpuidle_idle_call(), right?


Well, no. I was planning to first have it to use a different code path as
experimental code in order to focus improving the accuracy of the prediction
and then merge or replace cpuidle_idle_call() with sched_idle().

In that case, what about making it a proper cpuidle governor that
people can test and play with in a usual way? Then it may potentially
benefit everybody and not just your experimental setup and you may get
coverage on systems you have no access to normally.

There is some boilerplate code to add for this purpose, but that's not
that bad IMO.

Hi Rafael,

sorry for the delay in the responses.

Actually, adding a new governor is precisely what I would like to avoid because the objective is the scheduler acts as the governor. Here, it is the 'predictor' and the API to enter an idle state conforming the idle duration and the latency constraint.

Concerning the testing, it is quite easy to switch from idle_sched to 'menu' via on sched_debug or whatever option we want to add.


So I'm still unsure why you want to replace cpuidle_idle_call() with
sched_idle(). Is there anything wrong with it that it needs to be
replaced?

I don't want to replace cpuidle_idle_call() with sched_idle(). How we integrate the API is something I would like to discuss with another patchset focused in this integration only.

For reference: https://lkml.org/lkml/2016/1/12/530

-- Daniel





--
<http://www.linaro.org/> Linaro.org â Open source software for ARM SoCs

Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog