• Ionela Voinescu's avatar
    cpufreq: report whether cpufreq supports Frequency Invariance (FI) · 874f6353
    Ionela Voinescu authored
    Now that the update of the FI scale factor is done in cpufreq core for
    selected functions - target(), target_index() and fast_switch(),
    we can provide feedback to the task scheduler and architecture code
    on whether cpufreq supports FI.
    
    For this purpose provide an external function to expose whether the
    cpufreq drivers support FI, by using a static key.
    
    The logic behind the enablement of cpufreq-based invariance is as
    follows:
     - cpufreq-based invariance is disabled by default
     - cpufreq-based invariance is enabled if any of the callbacks
       above is implemented while the unsupported setpolicy() is not
    
    The cpufreq_supports_freq_invariance() function only returns whether
    cpufreq is instrumented with the arch_set_freq_scale() calls that
    result in support for frequency invariance. Due to the lack of knowledge
    on whether the implementation of arch_set_freq_scale() actually results
    in the setting of a scale factor based on cpufreq information, it is up
    to the architecture code to ensure the setting and provision of the
    scale factor to the scheduler.
    Signed-off-by: default avatarIonela Voinescu <ionela.voinescu@arm.com>
    Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    874f6353
cpufreq.c 73 KB