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

[PATCH v7 10/13] xen/cpufreq: get performance policy from governor set via xenpm


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Penny Zheng <Penny.Zheng@xxxxxxx>
  • Date: Fri, 22 Aug 2025 18:52:15 +0800
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=SLTbYK1njhhPAZqsErsutbiJeSbgNEMnbaN3ecpHBeU=; b=XSs/pRnEB1ZplZHrUxN90x0k+dNwwkPc2XbQo7L1R3x7QpfQxA/7zUO+f040weV5ZK4aaTJo6LGZ5t5lG/mMBK3B9MaJvFid2ij2wEvKTjo8Y2lrQhy8clNncFBftt4Ezued8cO/t2cIWKY1Q1nKhShaFnq+EPniMLmMQ6ztVQZdw1hj5KmtiybnBzqIiJKEHnpC86CceXuzPIS9Z3T7UJI8B43nAhnBF6rqueLoT1CrRRWqXMZzEFuvgGOFlv/l21zk/eGCF/iJrW8drp55MBOrqE5puJEVa0nlV7V9IDrGy6cl5zplTWJDWk2z1WGAZbXl4KaLEzJ1gw/4q4LtXw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=o93tv/iZkBAB/LD1lXmxm58CvE3bkuDJl/OzKKNRuxeiIOP0coFKgpoDl+TKfWm9n0TSwGmGnAANHFRAcz7saPdPuW7kaAbU0Cm4M8U/sxE5MraCm1AyS4nNXLadWcBXppITMHkLJMmOgxKO+0/6huDk8+RaCTGV9qbl/2kAGXoV2ZjVE4m9+IqIrPX7SY/2YwGtSDkmBwe9wiw30A1qXD2f4D2TN/ZrfS6yj8Fgz44XbZblyScQf0dxFE56HtCZCmtvWbVG5TaenPOGmKS0beEUmR4l3Fx88kMiB112s+28lDujnUOT4h6m113GdQzNk96Pmblc1kSMkNYkm8e+oA==
  • Cc: <ray.huang@xxxxxxx>, Penny Zheng <Penny.Zheng@xxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>
  • Delivery-date: Fri, 22 Aug 2025 10:53:06 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

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 are forbidden choices, and if users specify such options, 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@xxxxxxx>
---
v4 -> v5:
- new commit
---
v5 -> v6:
- refactor warning message
---
v6 -> v7:
- move policy->policy set where it firstly gets introduced
- refactor commit message
---
 xen/drivers/acpi/pm-op.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/xen/drivers/acpi/pm-op.c b/xen/drivers/acpi/pm-op.c
index 427656c48c..6991616c1d 100644
--- a/xen/drivers/acpi/pm-op.c
+++ b/xen/drivers/acpi/pm-op.c
@@ -206,6 +206,14 @@ static int set_cpufreq_gov(struct xen_sysctl_pm_op *op)
     if ( new_policy.governor == NULL )
         return -EINVAL;
 
+    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);
 }
 
-- 
2.34.1




 


Rackspace

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