Messages in this thread |  | | Date | Mon, 5 Mar 2018 14:46:09 +0100 | From | Peter Zijlstra <> | Subject | Re: [RFC/RFT][PATCH 6/7] sched: idle: Predict idle duration before stopping the tick |
| |
On Mon, Mar 05, 2018 at 02:37:25PM +0100, Peter Zijlstra wrote: > On Mon, Mar 05, 2018 at 08:19:15AM -0500, Rik van Riel wrote:
> > > Also, I think that at this point you've introduced a problem; by not > > > disabling the tick unconditionally, we'll have extra wakeups due to > > > the (now still running) tick, which will bias the estimation, as per > > > reflect(), downwards. > > > > > > We should effectively discard tick wakeups when we could have > > > entered nohz but didn't, accumulating the idle period in reflect and > > > only commit once we get a !tick wakeup. > > > > How much of a problem would that actually be? > > > > Don't all but the very deepest C-states have > > target residencies that are orders of magnitude > > smaller than the tick period? > > > > In other words, if our sleeps end up getting > > "cut short" to 600us, we will still select C6, > > and it will not result in picking C3 by mistake. > > > > This only seems to affect C7 states and deeper. > > On modern Intel, what about other platforms? This is something that > should work across the board.
Look at this for example:
arch/arm64/boot/dts/hisilicon/hi3660.dtsi: min-residency-us = <20000>;
That's 20ms right there..
But on average, considering ARM64 defaults to HZ=250, most of them are <TICK_USEC.
|  |