Before, user would change turbo status but this had no effect: boolean was set but policy wasn't reevaluated. Policy must be reevaluated so that CPU frequency is chosen according to the turbo status and the current governor.
Therefore, add __cpufreq_governor() in cpufreq_update_turbo(). Reported-by: <edvin.to...@citrix.com> Signed-off-by: <jane.malal...@citrix.com> --- CC: Jan Beulich <jbeul...@suse.com> CC: Ian Jackson <i...@xenproject.org> --- Release rationale: Not taking this patch means that turbo status is misleading. Taking this patch is low-risk as it only uses a function that already exists and is already used for setting the chosen scaling governor. Essentially, this change is equivalent to running 'xenpm en/disable-turbo-mode' and, subsequently, running 'xenpm set-scaling-governor <current governor>'. --- xen/drivers/cpufreq/utility.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/xen/drivers/cpufreq/utility.c b/xen/drivers/cpufreq/utility.c index b93895d4dd..5f200ff3ee 100644 --- a/xen/drivers/cpufreq/utility.c +++ b/xen/drivers/cpufreq/utility.c @@ -417,10 +417,14 @@ int cpufreq_update_turbo(int cpuid, int new_state) { ret = cpufreq_driver.update(cpuid, policy); if (ret) + { policy->turbo = curr_state; + return ret; + } } - return ret; + /* Reevaluate current CPU policy. */ + return __cpufreq_governor(policy, CPUFREQ_GOV_LIMITS); } -- 2.11.0