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

From: Rafael J. Wysocki
Date: Mon Nov 28 2016 - 17:23:03 EST


On Mon, Nov 28, 2016 at 10:46 PM, Jacob Pan
<jacob.jun.pan@xxxxxxxxxxxxxxx> wrote:
> On Mon, 28 Nov 2016 22:39:07 +0100
> "Rafael J. Wysocki" <rafael@xxxxxxxxxx> wrote:
>
>> 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?
> No changes made to Peter's patch. I just rebased to v4.9-rc7 and tested
> it.

OK, thanks!