Re: [PATCH] nohz1: Documentation

From: Paul E. McKenney
Date: Thu Mar 21 2013 - 13:26:38 EST


On Thu, Mar 21, 2013 at 08:45:07AM -0700, Arjan van de Ven wrote:
> On 3/20/2013 5:27 PM, Steven Rostedt wrote:
> >I'm not sure I would recommend idle=poll either. It would certainly
> >work, but it goes to the other extreme. You think NO_HZ=n drains a
> >battery? Try idle=poll.
>
>
> do not ever use idle=poll on anything production.. really bad idea.
>
> if you temporary cannot cope with the latency, you can use the PMQOS system
> to limit (including going all the way to idle=poll).
> but using idle=poll completely is very nasty for the hardware.
>
> In addition we should document that idle=poll will cost you peak performance,
> possibly quite a bit.
>
> the same is true for the kernel paramter to some extend; it's there to work around
> broken bioses/hardware/etc; if you have a latency/runtime requirement, it's much better
> to use PMQOS for this from userspace.

Thank you for the info, Arjan! Does the following capture the tradeoffs?

o Dyntick-idle slows transitions to and from idle slightly.
In practice, this has not been a problem except for the most
aggressive real-time workloads, which have the option of disabling
dyntick-idle mode, an option that most of them take. However,
some workloads will no doubt want to use adaptive ticks to
eliminate scheduling-clock-tick latencies. Here are some
options for these workloads:

o Use PMQOS from userspace to inform the kernel of your
latency requirements (preferred).

o Use the "idle=mwait" boot parameter.

o Use the "intel_idle.max_cstate=" to limit the maximum
depth C-state depth.

o Use the "idle=poll" boot parameter. However, please note
that use of this parameter can cause your CPU to overheat,
which may cause thermal throttling to degrade your
latencies --and that this degradation can be even worse
than that of dyntick-idle.

Thanx, Paul

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/