On 7/18/2017 8:20 AM, Paul E. McKenney wrote:
3.2) how to determine if the idle is short or long. My current proposal is to
use a tunable value via /sys, while Peter prefers an auto-adjust mechanism. I
didn't get the details of an auto-adjust mechanism yet


the most obvious way to do this (for me, maybe I'm naive) is to add another
C state, lets call it "C1-lite" with its own thresholds and power levels etc,
and just let that be picked naturally based on the heuristics.
(if we want to improve the heuristics, that's fine and always welcome but that
is completely orthogonal in my mind)

this C1-lite would then skip some of the idle steps like the nohz logic. How we
plumb that ... might end up being a flag or whatever, we'll figure that out 
easily.

as long as "real C1" has a break even time that is appropriate compared to 
C1-lite,
we'll only pick C1-lite for very very short idles like is desired...
but we don't end up creating a parallel infra for picking states, that part 
just does
not make sense to me tbh.... I have yet to see any reason why C1-lite couldn't 
be just
another C-state for everything except the actual place where we do the "go 
idle" last
bit of logic.

(Also note that for extreme short idles, today we just spinloop (C0), so by 
this argument
we should also do a C0-lite.. or make this C0 always the lite variant)




Reply via email to