• Rik van Riel's avatar
    cpuidle: menu: use high confidence factors only when considering polling · e132b9b3
    Rik van Riel authored
    
    
    The menu governor uses five different factors to pick the
    idle state:
     - the user configured latency_req
     - the time until the next timer (next_timer_us)
     - the typical sleep interval, as measured recently
     - an estimate of sleep time by dividing next_timer_us by an observed factor
     - a load corrected version of the above, divided again by load
    
    Only the first three items are known with enough confidence that
    we can use them to consider polling, instead of an actual CPU
    idle state, because the cost of being wrong about polling can be
    excessive power use.
    
    The latter two are used in the menu governor's main selection
    loop, and can result in choosing a shallower idle state when
    the system is expected to be busy again soon.
    
    This pushes a busy system in the "performance" direction of
    the performance<>power tradeoff, when choosing between idle
    states, but stays more strictly on the "power" state when
    deciding between polling and C1.
    Signed-off-by: default avatarRik van Riel <riel@redhat.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    e132b9b3
menu.c 15.2 KB