All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "Penny Zheng" <Penny.Zheng@amd.com>,
	ray.huang@amd.com, "Andrew Cooper" <andrew.cooper3@citrix.com>,
	"Roger Pau Monné" <roger.pau@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3 07/15] xen/cpufreq: fix core frequency calculation for AMD Family 1Ah CPUs
Date: Tue, 25 Mar 2025 11:55:53 +0100	[thread overview]
Message-ID: <d1432802d12ed4fa0ac61c9f7b2cbcc4@bugseng.com> (raw)
In-Reply-To: <0b340303-db4e-4723-b53d-178b2676a36c@suse.com>

On 2025-03-24 16:47, Jan Beulich wrote:
> On 06.03.2025 09:39, Penny Zheng wrote:
>> This commit fixes core frequency calculation for AMD Family 1Ah CPUs, 
>> due to
>> a change in the PStateDef MSR layout in AMD Family 1Ah+.
>> In AMD Family 1Ah+, Core current operating frequency in MHz is 
>> calculated as
>> follows:
> 

[...]

> 
>> @@ -658,19 +670,20 @@ void amd_log_freq(const struct cpuinfo_x86 *c)
>>  	if (!(lo >> 63))
>>  		return;
>> 
>> -#define FREQ(v) (c->x86 < 0x17 ? ((((v) & 0x3f) + 0x10) * 100) >> 
>> (((v) >> 6) & 7) \
>> -		                     : (((v) & 0xff) * 25 * 8) / (((v) >> 8) & 
>> 0x3f))
>>  	if (idx && idx < h &&
>>  	    !rdmsr_safe(0xC0010064 + idx, val) && (val >> 63) &&
>>  	    !rdmsr_safe(0xC0010064, hi) && (hi >> 63))
>>  		printk("CPU%u: %lu (%lu ... %lu) MHz\n",
>> -		       smp_processor_id(), FREQ(val), FREQ(lo), FREQ(hi));
>> +		       smp_processor_id(),
>> +		       amd_parse_freq(c, val),
>> +		       amd_parse_freq(c, lo), amd_parse_freq(c, hi));
> 
> I fear Misra won't like multiple function calls to evaluate the 
> parameters
> to pass to another function. Iirc smp_process_id() has special 
> exception,
> so that's okay here. This may be possible to alleviate by marking the 
> new
> helper pure or even const (see gcc doc as to caveats with passing 
> pointers
> to const functions). Cc-ing Nicola for possible clarification or 
> correction.
> 
> Jan

Yes, it would help. Currently there is only a property for 
smp_processor_id(), though there has been some discussion in the past 
about adding a formal deviation. Not a big problem either way since 
currently the rule is non-blocking, but definitely an attribute would 
help any future work on making that clean.

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


  reply	other threads:[~2025-03-25 10:56 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-06  8:39 [PATCH v3 00/15] amd-cppc CPU Performance Scaling Driver Penny Zheng
2025-03-06  8:39 ` [PATCH v3 01/15] xen/cpufreq: introduces XEN_PM_PSD for solely delivery of _PSD Penny Zheng
2025-03-24 14:08   ` Jan Beulich
2025-04-01  3:25     ` Penny, Zheng
2025-03-06  8:39 ` [PATCH v3 02/15] xen/x86: introduce new sub-hypercall to propagate CPPC data Penny Zheng
2025-03-24 14:28   ` Jan Beulich
2025-03-25  4:12     ` Penny, Zheng
2025-03-25  7:53       ` Jan Beulich
2025-03-28  8:27         ` Penny, Zheng
2025-03-28  8:36           ` Jan Beulich
2025-03-06  8:39 ` [PATCH v3 03/15] xen/cpufreq: refactor cmdline "cpufreq=xxx" Penny Zheng
2025-03-24 15:00   ` Jan Beulich
2025-03-26  7:20     ` Penny, Zheng
2025-03-26 10:43       ` Jan Beulich
2025-04-01  5:44         ` Penny, Zheng
2025-04-01  6:38           ` Jan Beulich
2025-04-01  6:56             ` Penny, Zheng
2025-03-06  8:39 ` [PATCH v3 04/15] xen/cpufreq: move XEN_PROCESSOR_PM_xxx to internal header Penny Zheng
2025-03-24 15:11   ` Jan Beulich
2025-03-26  7:48     ` Penny, Zheng
2025-03-06  8:39 ` [PATCH v3 05/15] xen/x86: introduce "cpufreq=amd-cppc" xen cmdline Penny Zheng
2025-03-24 15:26   ` Jan Beulich
2025-03-26  8:35     ` Penny, Zheng
2025-03-26 10:55       ` Jan Beulich
2025-03-27  3:12         ` Penny, Zheng
2025-03-27  7:48           ` Jan Beulich
2025-03-28  4:43             ` Penny, Zheng
2025-03-25 10:00   ` Jan Beulich
2025-03-06  8:39 ` [PATCH v3 06/15] xen/cpufreq: disable px statistic info in amd-cppc mode Penny Zheng
2025-03-24 15:34   ` Jan Beulich
2025-03-06  8:39 ` [PATCH v3 07/15] xen/cpufreq: fix core frequency calculation for AMD Family 1Ah CPUs Penny Zheng
2025-03-24 15:47   ` Jan Beulich
2025-03-25 10:55     ` Nicola Vetrini [this message]
2025-03-26  9:54     ` Penny, Zheng
2025-03-26 10:14       ` Nicola Vetrini
2025-03-26 10:19         ` Jan Beulich
2025-03-06  8:39 ` [PATCH v3 08/15] xen/amd: export processor max frequency value Penny Zheng
2025-03-24 15:52   ` Jan Beulich
2025-03-27  8:38     ` Penny, Zheng
2025-03-06  8:39 ` [PATCH v3 09/15] xen/x86: introduce a new amd cppc driver for cpufreq scaling Penny Zheng
2025-03-25  9:57   ` Jan Beulich
2025-03-25 13:58     ` Jason Andryuk
2025-04-03  7:40     ` Penny, Zheng
2025-04-03  7:54       ` Jan Beulich
2025-03-06  8:39 ` [PATCH v3 10/15] xen/cpufreq: only set gov NULL when cpufreq_driver.setpolicy is NULL Penny Zheng
2025-03-24 16:32   ` Jan Beulich
2025-03-06  8:39 ` [PATCH v3 11/15] xen/cpufreq: abstract Energy Performance Preference value Penny Zheng
2025-03-25 10:13   ` Jan Beulich
2025-03-06  8:39 ` [PATCH v3 12/15] xen/x86: implement EPP support for the amd-cppc driver in active mode Penny Zheng
2025-03-25 10:48   ` Jan Beulich
2025-03-28  4:07     ` Penny, Zheng
2025-03-28  7:18       ` Jan Beulich
2025-04-08 10:32         ` Penny, Zheng
2025-03-06  8:39 ` [PATCH v3 13/15] tools/xenpm: Print CPPC parameters for amd-cppc driver Penny Zheng
2025-03-06  8:39 ` [PATCH v3 14/15] xen/xenpm: Adapt cpu frequency monitor in xenpm Penny Zheng
2025-03-25 11:26   ` Jan Beulich
2025-03-25 16:37     ` Jason Andryuk
2025-03-26 15:45     ` Anthony PERARD
2025-03-06  8:39 ` [PATCH v3 15/15] xen/cpufreq: Adapt SET/GET_CPUFREQ_CPPC xen_sysctl_pm_op for amd-cppc driver Penny Zheng
2025-03-25 16:59   ` Jan Beulich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d1432802d12ed4fa0ac61c9f7b2cbcc4@bugseng.com \
    --to=nicola.vetrini@bugseng.com \
    --cc=Penny.Zheng@amd.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=jbeulich@suse.com \
    --cc=ray.huang@amd.com \
    --cc=roger.pau@citrix.com \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.