• Alexey Starikovskiy's avatar
    [CPUFREQ][2/2] ondemand: updated add powersave_bias tunable · 05ca0350
    Alexey Starikovskiy authored
    ondemand selects the minimum frequency that can retire
    a workload with negligible idle time -- ideally resulting in the highest
    performance/power efficiency with negligible performance impact.
    
    But on some systems and some workloads, this algorithm
    is more performance biased than necessary, and
    de-tuning it a bit to allow some performance impact
    can save measurable power.
    
    This patch adds a "powersave_bias" tunable to ondemand
    to allow it to reduce its target frequency by a specified percent.
    
    By default, the powersave_bias is 0 and has no effect.
    powersave_bias is in units of 0.1%, so it has an effective range
    of 1 through 1000, resulting in 0.1% to 100% impact.
    
    In practice, users will not be able to detect a difference between
    0.1% increments, but 1.0% increments turned out to be too large.
    Also, the max value of 1000 (100%) would simply peg the system
    in its deepest power saving P-state, unless the processor really has
    a hardware P-state at 0Hz:-)
    
    For example, If ondemand requests 2.0GHz based on utilization,
    and powersave_bias=100, this code will knock 10% off the target
    and seek  a target of 1.8GHz instead of 2.0GHz until the
    next sampling.  If 1.8 is an exact match with an hardware frequency
    we use it, otherwise we average our time between the frequency
    next higher than 1.8 and next lower than 1.8.
    
    Note that a user or administrative program can change powersave_bias
    at run-time depending on how they expect the system to be used.
    
    Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi at intel.com>
    Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy at intel.com>
    Signed-off-by: default avatarDave Jones <davej@redhat.com>
    05ca0350
cpufreq_ondemand.c 16.2 KB