Re: [patch v5 09/15] sched: add power aware scheduling in fork/exec/wake

Alex Shi
2013-02-25T09:53:14Z

On 02/25/2013 11:23 AM, Mike Galbraith wrote:
> On Mon, 2013-02-25 at 10:23 +0800, Alex Shi wrote:
>
>> One of problem is the how to decide the criteria of the burst? If we set
>> 5 waking up/ms is burst, we will lose 4 waking up/ms.
>> another problem is the burst detection cost, we need tracking a period
>> history info of the waking up, better on whole group. but that give the
>> extra cost in burst.
>>
>> solution candidates:
>> https://lkml.org/lkml/2013/1/21/316
>> After talk with MikeG, I remove the runnable load avg in performance
>> load balance.
>
> One thing you could try is to make criteria depend on avg_idle. It will
> slam to 2*migration_cost when a wakeup arrives after an ~extended idle.
> You could perhaps extend it to cover new task wakeup as well, and use
> that transition to invalidate history, switch to instantaneous until
> fresh history can accumulate.

Sorry for can not get your points, would you like to goes to details?

And still don't understand of the idle_stamp setting, idle_stamp was set
in idle_balance(), if idle_balance doesn't pulled task, idle_stamp value
kept. then even the cpu get tasks from another balancing, like periodic
balance, fork/exec/wake balancing, the idle_stamp is still kept.

So, when the cpu goes to next idle_balance(), it's highly possible to
meet the avg_idle > migration_cost condition, and start try to pull
tasks, nearly unconditionally.

Does the idle_balance was designed to this? or we still should reset
idle_stamp whichever we pulled a task?

>
> -Mike
>

--
Thanks Alex