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

RE: [PATCH v4 05/15] xen/x86: introduce "cpufreq=amd-cppc" xen cmdline


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: "Penny, Zheng" <penny.zheng@xxxxxxx>
  • Date: Wed, 7 May 2025 05:27:24 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none
  • 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=XF7zXImdY1hbj3LxkfgEZU3aKT8tV5xHPOr87Te/Rzs=; b=R9XXJUwci6WDBEAROeqQeVsXp27TaOO4x47kLAUzVqtlm2JPNxoxgbNrKpyQj6PJmVjLf4zLdmUbShivwWoUd3/1cjtuGH3EPOipLDaBXWqaBKuJiIuYboyamghgOuauV6Vf2XMd5JALK9hZ8wGckw7QGk6UPGSPwewWGy5ompSmaZ+NL60dCEnSnkEWodrvkqJiXvX0fTKthWWkNxyW4PofEm0EzRgegTQe0WEBgj9o4ujD6OO0mGP5wqv5q0yw9LZYywXdFfIivWiAZlvJIxZlTWjbbFR+c4EewfY/R+mpeh9r8easglBkHgCJrtDRasl8LOjummbmpTiCPl3pTA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lQOPxk82f8TLDqFj2UUBuSG0xb73M30omoTL6EZdw/yb7U1IE1EDC6rVWDlnLsQw1WVJrBVHXnXrd/30j+pb/ne2P7UqYIA/lO5GETUyHvT2oveKMVIWGFLsgXw4dKFvZmzifs9lRsYRcvpLzt3nIahVYAnySWCx5jAKVpSLKRFek6C/HKVR4+dVEawPCd+TMHUeLE1lNIvd+J186gzMLWwlCZowm4Az8id8NRpLnWygt2Ub3lbSI/Y4cTrAUMsOlqkTsdJzLsl1RGKYqEZihzZbrVloXC3O6JVs/YpcQbL+3Vl6SAAL83/XfA+t09eFBXh/7yW167oAc2ZBOYXnKQ==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com;
  • Cc: "Huang, Ray" <Ray.Huang@xxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, "Orzel, Michal" <Michal.Orzel@xxxxxxx>, Julien Grall <julien@xxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Wed, 07 May 2025 05:27:35 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Msip_labels: MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ActionId=e5bd0894-797d-44c3-a227-8ec4b52f72c8;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=0;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=true;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open Source;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-05-07T05:27:14Z;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d;MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Tag=10, 0, 1, 1;
  • Thread-index: AQHbrRCmtZ7pr/knH02upOrsNIOYE7O6sNeAgAvz/ZA=
  • Thread-topic: [PATCH v4 05/15] xen/x86: introduce "cpufreq=amd-cppc" xen cmdline

[Public]

Hi,

> -----Original Message-----
> From: Jan Beulich <jbeulich@xxxxxxxx>
> Sent: Tuesday, April 29, 2025 8:52 PM
> To: Penny, Zheng <penny.zheng@xxxxxxx>
> Cc: Huang, Ray <Ray.Huang@xxxxxxx>; Andrew Cooper
> <andrew.cooper3@xxxxxxxxxx>; Anthony PERARD <anthony.perard@xxxxxxxxxx>;
> Orzel, Michal <Michal.Orzel@xxxxxxx>; Julien Grall <julien@xxxxxxx>; Roger
> Pau Monné <roger.pau@xxxxxxxxxx>; Stefano Stabellini <sstabellini@xxxxxxxxxx>;
> xen-devel@xxxxxxxxxxxxxxxxxxxx
> Subject: Re: [PATCH v4 05/15] xen/x86: introduce "cpufreq=amd-cppc" xen
> cmdline
>
> On 14.04.2025 09:40, Penny Zheng wrote:
> > @@ -514,5 +515,16 @@ acpi_cpufreq_driver = {
> >
> >  int __init acpi_cpufreq_register(void)  {
> > -    return cpufreq_register_driver(&acpi_cpufreq_driver);
> > +    int ret;
> > +
> > +    ret = cpufreq_register_driver(&acpi_cpufreq_driver);
> > +    if ( ret )
> > +        return ret;
> > +    /*
> > +     * After cpufreq driver registeration, XEN_PROCESSOR_PM_CPPC
> > +     * and XEN_PROCESSOR_PM_PX shall become exclusive flags
> > +     */
> > +    xen_processor_pmbits &= ~XEN_PROCESSOR_PM_CPPC;
> > +
> > +    return ret;
> >  }
>
> Why is no similar adjustment needed in powernow_register_driver()? In 
> principle I
> would have expected that it's not each individual driver which needs to care 
> about
> this aspect, but that the framework is taking care of this.
>

Then maybe we shall add this here, to extract the codes from each specific 
driver:
```
diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c 
b/xen/arch/x86/acpi/cpufreq/cpufreq.c
index eac1c125a3..9276241291 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -190,6 +190,25 @@ static int __init cf_check cpufreq_driver_init(void)
                 if ( ret != -ENODEV )
                     break;
             }
+
+            if ( !ret && i < cpufreq_xen_cnt )
+            {
+                switch ( cpufreq_xen_opts[i] )
+                {
+                case CPUFREQ_amd_cppc:
+                    xen_processor_pmbits &= ~XEN_PROCESSOR_PM_XEN;
+                    break;
+
+                case CPUFREQ_xen:
+                    xen_processor_pmbits &= ~XEN_PROCESSOR_PM_CPPC;
+                    break;
+
+                case CPUFREQ_none:
+                default:
+                    break;
+                }
+            }
+
             break;
         }
     }
```

> > @@ -573,6 +576,14 @@ ret_t do_platform_op(
> >          }
> >
> >          case XEN_PM_CPPC:
> > +            if ( !(xen_processor_pmbits & XEN_PROCESSOR_PM_CPPC) )
> > +            {
> > +                ret = -EOPNOTSUPP;
> > +                break;
> > +            }
>
> While at least you no longer use -ENOSYS here, I question this behavior, 
> including
> that for the pre-existing cases: How is the caller supposed to know whether to
> invoke this sub-op? Ignoring errors is generally not a good idea, so it would 
> be
> better if the caller could blindly issue this request, getting back success 
> unless
> there really was an issue with the data provided.
>

Understood.
I will change it to ret = 0. Do you think we shall add warning info here?
Dom0 will send the CPPC data whenever it could. XEN_PROCESSOR_PM_CPPC
is not set could largely be users choosing not to. In such case, silently 
getting back success
shall be enough.


> Jan

 


Rackspace

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