Messages in this thread | | | Date | Thu, 21 Mar 2013 10:18:06 -0700 | From | "Paul E. McKenney" <> | Subject | Re: [PATCH] nohz1: Documentation |
| |
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
| |