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

Re: [PATCH v5 14/18] xen/cpufreq: introduce GET_CPUFREQ_CPPC sub-cmd


  • To: "Penny, Zheng" <penny.zheng@xxxxxxx>, Jason Andryuk <jason.andryuk@xxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Fri, 4 Jul 2025 10:32:45 +0200
  • Autocrypt: addr=jbeulich@xxxxxxxx; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL
  • Cc: "Huang, Ray" <Ray.Huang@xxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>, Andrew Cooper <andrew.cooper3@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: Fri, 04 Jul 2025 08:33:01 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 04.07.2025 10:13, Penny, Zheng wrote:
> [Public]
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@xxxxxxxx>
>> Sent: Tuesday, June 17, 2025 6:08 PM
>> To: Penny, Zheng <penny.zheng@xxxxxxx>
>> Cc: Huang, Ray <Ray.Huang@xxxxxxx>; Anthony PERARD
>> <anthony.perard@xxxxxxxxxx>; Juergen Gross <jgross@xxxxxxxx>; Andrew
>> Cooper <andrew.cooper3@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 v5 14/18] xen/cpufreq: introduce GET_CPUFREQ_CPPC sub-
>> cmd
>>
>> On 27.05.2025 10:48, Penny Zheng wrote:
>>> --- a/tools/misc/xenpm.c
>>> +++ b/tools/misc/xenpm.c
>>> @@ -69,6 +69,7 @@ void show_help(void)
>>>              " set-max-cstate        <num>|'unlimited' 
>>> [<num2>|'unlimited']\n"
>>>              "                                     set the C-State 
>>> limitation (<num> >= 0) and\n"
>>>              "                                     optionally the 
>>> C-sub-state limitation
>> (<num2> >= 0)\n"
>>> +            " get-cpufreq-cppc      [cpuid]       list cpu cppc parameter 
>>> of CPU
>> <cpuid> or all\n"
>>>              " set-cpufreq-cppc      [cpuid] [balance|performance|powersave]
>> <param:val>*\n"
>>>              "                                     set Hardware P-State 
>>> (HWP) parameters\n"
>>>              "                                     on CPU <cpuid> or all if 
>>> omitted.\n"
>>> @@ -812,33 +813,7 @@ static void print_cpufreq_para(int cpuid, struct
>>> xc_get_cpufreq_para *p_cpufreq)
>>>
>>>      printf("scaling_driver       : %s\n", p_cpufreq->scaling_driver);
>>>
>>> -    if ( hwp )
>>> -    {
>>> -        const xc_cppc_para_t *cppc = &p_cpufreq->u.cppc_para;
>>> -
>>> -        printf("cppc variables       :\n");
>>> -        printf("  hardware limits    : lowest [%"PRIu32"] lowest nonlinear
>> [%"PRIu32"]\n",
>>> -               cppc->lowest, cppc->lowest_nonlinear);
>>> -        printf("                     : nominal [%"PRIu32"] highest 
>>> [%"PRIu32"]\n",
>>> -               cppc->nominal, cppc->highest);
>>> -        printf("  configured limits  : min [%"PRIu32"] max [%"PRIu32"] 
>>> energy perf
>> [%"PRIu32"]\n",
>>> -               cppc->minimum, cppc->maximum, cppc->energy_perf);
>>> -
>>> -        if ( cppc->features & XEN_SYSCTL_CPPC_FEAT_ACT_WINDOW )
>>> -        {
>>> -            unsigned int activity_window;
>>> -            const char *units;
>>> -
>>> -            activity_window = calculate_activity_window(cppc, &units);
>>> -            printf("                     : activity_window [%"PRIu32" 
>>> %s]\n",
>>> -                   activity_window, units);
>>> -        }
>>> -
>>> -        printf("                     : desired [%"PRIu32"%s]\n",
>>> -               cppc->desired,
>>> -               cppc->desired ? "" : " hw autonomous");
>>> -    }
>>> -    else
>>> +    if ( !hwp )
>>>      {
>>>          if ( p_cpufreq->gov_num )
>>>              printf("scaling_avail_gov    : %s\n",
>>
>> I'm not sure it is a good idea to alter what is being output for 
>> get-cpufreq-para.
>> People may simply miss that output then, without having any indication where 
>> it
>> went.
> 
> Hwp is more like amd-cppc in active mode. It also does not rely on Xen 
> governor to do performance tuning, so in previous design, we could borrow 
> governor filed to output cppc info
> However after introducing amd-cppc passive mode, we have request to output 
> both governor and CPPC info. And if continuing expanding get-cpufreq-para to 
> include CPPC info, it will make the parent stuct xen_sysctl.u exceed exceed 
> 128 bytes.

How is the xenpm command "get-cpufreq-para" related to the sysctl interface 
struct
size? If you need to invoke two sysctl sub-ops to produce all relevant
"get-cpufreq-para" output, so be it I would say.

> So I'm left to create a new subcmd to specifically deal with CPPC info
> I could leave above output for get-cpufreq-para unchanged. Then we will have 
> duplicate CPPC info in two commands. Or is it fine to do that?

Duplicate information (in distinct commands) isn't a problem either, imo.

Jason, you did the HWP work here - any thoughts?

Jan



 


Rackspace

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