lkml.org 
[lkml]   [2018]   [Apr]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v8 02/10] sched: idle: Do not stop the tick upfront in the idle loop
On Thu, Mar 29, 2018 at 02:01:14PM +0200, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>
> Push the decision whether or not to stop the tick somewhat deeper
> into the idle loop.
>
> Stopping the tick upfront leads to unpleasant outcomes in case the
> idle governor doesn't agree with the nohz code on the duration of the
> upcoming idle period. Specifically, if the tick has been stopped and
> the idle governor predicts short idle, the situation is bad regardless
> of whether or not the prediction is accurate. If it is accurate, the
> tick has been stopped unnecessarily which means excessive overhead.
> If it is not accurate, the CPU is likely to spend too much time in
> the (shallow, because short idle has been predicted) idle state
> selected by the governor [1].
>
> As the first step towards addressing this problem, change the code
> to make the tick stopping decision inside of the loop in do_idle().
> In particular, do not stop the tick in the cpu_idle_poll() code path.
> Also don't do that in tick_nohz_irq_exit() which doesn't really have
> enough information on whether or not to stop the tick.
>
> Link: https://marc.info/?l=linux-pm&m=150116085925208&w=2 # [1]
> Link: https://tu-dresden.de/zih/forschung/ressourcen/dateien/projekte/haec/powernightmares.pdf
> Suggested-by: Frederic Weisbecker <frederic@kernel.org>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Reviewed-by: Frederic Weisbecker <frederic@kernel.org>

\
 
 \ /
  Last update: 2018-04-02 22:37    [W:0.288 / U:0.312 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site