Re: [PATCH v4 1/2] idle: add support for tasks that inject idle

From: Rafael J. Wysocki
Date: Mon Nov 28 2016 - 16:39:21 EST


On Mon, Nov 28, 2016 at 10:33 PM, Jacob Pan
<jacob.jun.pan@xxxxxxxxxxxxxxx> wrote:
> From: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
>
> Idle injection drivers such as Intel powerclamp and ACPI PAD drivers use
> realtime tasks to take control of CPU then inject idle. There are two
> issues with this approach:
>
> 1. Low efficiency: injected idle task is treated as busy so sched ticks
> do not stop during injected idle period, the result of these
> unwanted wakeups can be ~20% loss in power savings.
>
> 2. Idle accounting: injected idle time is presented to user as busy.
>
> This patch addresses the issues by introducing a new PF_IDLE flag which
> allows any given task to be treated as idle task while the flag is set.
> Therefore, idle injection tasks can run through the normal flow of NOHZ
> idle enter/exit to get the correct accounting as well as tick stop when
> possible.
>
> The implication is that idle task is then no longer limited to PID == 0.
>
> Acked-by: Ingo Molnar <mingo@xxxxxxxxxx>
> Signed-off-by: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Signed-off-by: Jacob Pan <jacob.jun.pan@xxxxxxxxxxxxxxx>

Have you made any changes to the original Peter's patch, or is this
just a resend of that?

Thanks,
Rafael