[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xen master] pmstat: Limit hypercalls under HWP



commit 052d78fbec6a3163281df1b4204d6d606507c4c8
Author:     Jason Andryuk <jandryuk@xxxxxxxxx>
AuthorDate: Thu Jan 25 16:11:49 2024 +0100
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Thu Jan 25 16:11:49 2024 +0100

    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@xxxxxxxxx>
    Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
---
 xen/drivers/acpi/pmstat.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c
index 803971bdb0..998d2e3c65 100644
--- a/xen/drivers/acpi/pmstat.c
+++ b/xen/drivers/acpi/pmstat.c
@@ -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:
--
generated by git-patchbot for /home/xen/git/xen.git#master



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.