mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
xen/cpufreq: get performance policy from governor set via xenpm
Even if Xen governor is not used in amd-cppc active mode, we could somehow deduce which performance policy (CPUFREQ_POLICY_xxx) user wants to apply through which governor they choose, such as: If user chooses performance governor, they want maximum performance, then the policy shall be CPUFREQ_POLICY_PERFORMANCE If user chooses powersave governor, they want the least power consumption, then the policy shall be CPUFREQ_POLICY_POWERSAVE Function cpufreq_policy_from_governor() is responsible for above transition, and it shall be also effective when users setting new governor through xenpm. Userspace is a forbidden choice, and if users specify such option, we shall not only give warning message to suggest using "xenpm set-cpufreq-cppc", but also error out. Signed-off-by: Penny Zheng <Penny.Zheng@amd.com> Acked-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
1 parent
94411808fb
commit
983a15a36e
1 file changed
+11
@@ -207,6 +207,17 @@ static int set_cpufreq_gov(struct xen_sysctl_pm_op *op)
|
||||
if ( new_policy.governor == NULL )
|
||||
return -EINVAL;
|
||||
|
||||
if ( processor_pminfo[op->cpuid]->init & XEN_CPPC_INIT )
|
||||
{
|
||||
new_policy.policy = cpufreq_policy_from_governor(new_policy.governor);
|
||||
if ( new_policy.policy == CPUFREQ_POLICY_UNKNOWN )
|
||||
{
|
||||
printk("Failed to get performance policy from %s, Try \"xenpm set-cpufreq-cppc\"\n",
|
||||
new_policy.governor->name);
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
return __cpufreq_set_policy(old_policy, &new_policy);
|
||||
}
|
||||
|
||||
|
||||