• Rafael J. Wysocki's avatar
    cpufreq: ACPI: Update arch scale-invariance max perf ratio if CPPC is not there · d11a1d08
    Rafael J. Wysocki authored
    If the maximum performance level taken for computing the
    arch_max_freq_ratio value used in the x86 scale-invariance code is
    higher than the one corresponding to the cpuinfo.max_freq value
    coming from the acpi_cpufreq driver, the scale-invariant utilization
    falls below 100% even if the CPU runs at cpuinfo.max_freq or slightly
    faster, which causes the schedutil governor to select a frequency
    below cpuinfo.max_freq.  That frequency corresponds to a frequency
    table entry below the maximum performance level necessary to get to
    the "boost" range of CPU frequencies which prevents "boost"
    frequencies from being used in some workloads.
    
    While this issue is related to scale-invariance, it may be amplified
    by commit db865272 ("cpufreq: Avoid configuring old governors as
    default with intel_pstate") from the 5.10 development cycle which
    made it extremely easy to default to schedutil even if the preferred
    driver is acpi_cpufreq as long as intel_pstate is built too, because
    the mere presence of the latter effectively removes the ondemand
    governor from the defaults.  Distro kernels are likely to include
    both intel_pstate and acpi_cpufreq on x86, so their users who cannot
    use intel_pstate or choose to use acpi_cpufreq may easily be
    affectecd by this issue.
    
    If CPPC is available, it can be used to address this issue by
    extending the frequency tables created by acpi_cpufreq to cover the
    entire available frequency range (including "boost" frequencies) for
    each CPU, but if CPPC is not there, acpi_cpufreq has no idea what
    the maximum "boost" frequency is and the frequency tables created by
    it cannot be extended in a meaningful way, so in that case make it
    ask the arch scale-invariance code to to use the "nominal" performance
    level for CPU utilization scaling in order to avoid the issue at hand.
    
    Fixes: db865272 ("cpufreq: Avoid configuring old governors as default with intel_pstate")
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Reviewed-by: default avatarGiovanni Gherdovich <ggherdovich@suse.cz>
    Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    d11a1d08
smpboot.c 53.3 KB