On 03.09.2025 20:17, Jason Andryuk wrote:
> On 2025-09-02 23:14, Penny, Zheng wrote:
>> [Public]
>>
>>> -----Original Message-----
>>> From: Jan Beulich <jbeul...@suse.com>
>>> Sent: Thursday, August 28, 2025 7:07 PM
>>> To: Penny, Zheng <penny.zh...@amd.com>
>>> Cc: Huang, Ray <ray.hu...@amd.com>; Anthony PERARD
>>> <anthony.per...@vates.tech>; Andrew Cooper <andrew.coop...@citrix.com>;
>>> Roger Pau Monné <roger....@citrix.com>; xen-devel@lists.xenproject.org
>>> Subject: Re: [PATCH v8 8/8] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC
>>> xen_sysctl_pm_op for amd-cppc driver
>>>
>>> On 28.08.2025 12:06, Penny Zheng wrote:
>>>> @@ -154,6 +156,17 @@ static int get_cpufreq_para(struct xen_sysctl_pm_op
>>> *op)
>>>>       else
>>>>           strlcpy(op->u.get_para.scaling_driver, "Unknown",
>>>> CPUFREQ_NAME_LEN);
>>>>
>>>> +    /*
>>>> +     * In CPPC active mode, we are borrowing governor field to indicate
>>>> +     * policy info.
>>>> +     */
>>>> +    if ( policy->governor->name[0] )
>>>> +        strlcpy(op->u.get_para.u.s.scaling_governor,
>>>> +                policy->governor->name, CPUFREQ_NAME_LEN);
>>>> +    else
>>>> +        strlcpy(op->u.get_para.u.s.scaling_governor, "Unknown",
>>>> +                CPUFREQ_NAME_LEN);
>>>
>>> Isn't pulling this ...
>>>
>>>>       if ( !cpufreq_is_governorless(op->cpuid) )
>>>>       {
>>>>           if ( !(scaling_available_governors =
>>>
>>> ... out of this if()'s body going to affect HWP? It's not clear to me 
>>> whether that would
>>> be entirely benign.
>>>
>>
>> HWP has its own unique "hwp" governor. So, imo, it may not affect.
> 
> get_hwp_para() writes into the same union:
> op->u.get_para.u.cppc_para
> op->u.get_para.u.s.scaling_governor

Not anymore as of "tools/cpufreq: extract CPPC para from cpufreq para".

> Which is why I avoided it for hwp.
> 
> I guess writing scaling_governor first and then overwriting it still 
> ends up with the same data in cppc_para.  Seems a little messy though.
> 
> Penny, I'm confused by this comment:
> +    /*
> +     * In CPPC active mode, we are borrowing governor field to indicate
> +     * policy info.
> +     */
> 
> You have CPPC active and passive modes - which uses a governor and which 
> uses get_cppc?
> 
> It seems like only writing the scaling governor inside
> if ( !cpufreq_is_governorless )
> 
> should be correct since it's using the union.  Am I missing something?

The union is now fake; it has just a single member, and hence would better
be dropped. I've commented correspondingly on v9.

Jan

Reply via email to