pmstat: Limit hypercalls under HWP

When HWP is active, the cpufreq P-state information is not updated.  In
that case, return -EOPNOTSUPP instead of bogus, incomplete info.

Similarly, set_cpufreq_para() is not applicable when HWP is active.
Many of the options already checked the governor and were inaccessible,
but SCALING_MIN/MAX_FREQ was still accessible (though it would do
nothing).  Add an ealier HWP check to handle all cases.

Signed-off-by: Jason Andryuk <jandryuk@gmail.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
Jason Andryuk authored and Jan Beulich committed 2024-01-25 16:11:49 +01:00
1 parent e047b8d0fa
commit 052d78fbec
1 file changed
+5
+5
View File
@@ -66,6 +66,8 @@ int do_get_pm_info(struct xen_sysctl_get_pmstat *op)
return -ENODEV;
if ( !cpufreq_driver.init )
return -ENODEV;
if ( hwp_active() )
return -EOPNOTSUPP;
if ( !pmpt || !(pmpt->perf.init & XEN_PX_INIT) )
return -EINVAL;
break;
@@ -330,6 +332,9 @@ static int set_cpufreq_para(struct xen_sysctl_pm_op *op)
if ( !policy || !policy->governor )
return -EINVAL;
if ( hwp_active() )
return -EOPNOTSUPP;
switch(op->u.set_para.ctrl_type)
{
case SCALING_MAX_FREQ:
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.