• T
    cpuidle: Ensure menu coefficients stay within domain · 7ac26436
    tuukka.tikkanen@linaro.org 提交于
    The menu governor uses coefficients as one method of actual idle
    period length estimation. The coefficients are, as detailed below,
    multipliers giving expected idle period length from time until next
    timer expiry. The multipliers are supposed to have domain of (0..1].
    
    The coefficients are fractions where only the numerators are stored
    and denominators are a shared constant RESOLUTION*DECAY. Since the
    value of the coefficient should always be greater than 0 and less
    than or equal to 1, the numerator must have a value greater than
    0 and less than or equal to RESOLUTION*DECAY.
    
    If the coefficients are updated with measured idle durations exceeding
    timer length, the multiplier may reach values exceeding unity (i.e.
    the stored numerator exceeds RESOLUTION*DECAY). This patch ensures that
    the multipliers are updated with durations capped to timer length.
    Signed-off-by: NTuukka Tikkanen <tuukka.tikkanen@linaro.org>
    Acked-by: NNicolas Pitre <nico@linaro.org>
    Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
    7ac26436
menu.c 14.3 KB