public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Dhananjay Ugwekar <Dhananjay.Ugwekar@amd.com>,
	Ananth Narayan <Ananth.Narayan@amd.com>,
	Mario Limonciello <mario.limonciello@amd.com>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Sasha Levin <sashal@kernel.org>,
	trenn@suse.com, shuah@kernel.org, linux-pm@vger.kernel.org
Subject: [PATCH AUTOSEL 5.15 07/21] tools/power/cpupower: Fix Pstate frequency reporting on AMD Family 1Ah CPUs
Date: Mon, 17 Jun 2024 09:25:44 -0400	[thread overview]
Message-ID: <20240617132617.2589631-7-sashal@kernel.org> (raw)
In-Reply-To: <20240617132617.2589631-1-sashal@kernel.org>

From: Dhananjay Ugwekar <Dhananjay.Ugwekar@amd.com>

[ Upstream commit 43cad521c6d228ea0c51e248f8e5b3a6295a2849 ]

Update cpupower's P-State frequency calculation and reporting with AMD
Family 1Ah+ processors, when using the acpi-cpufreq driver. This is due
to a change in the PStateDef MSR layout in AMD Family 1Ah+.

Tested on 4th and 5th Gen AMD EPYC system

Signed-off-by: Ananth Narayan <Ananth.Narayan@amd.com>
Signed-off-by: Dhananjay Ugwekar <Dhananjay.Ugwekar@amd.com>
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 tools/power/cpupower/utils/helpers/amd.c | 26 +++++++++++++++++++++---
 1 file changed, 23 insertions(+), 3 deletions(-)

diff --git a/tools/power/cpupower/utils/helpers/amd.c b/tools/power/cpupower/utils/helpers/amd.c
index 97f2c857048e1..e0a7a9b1f6d69 100644
--- a/tools/power/cpupower/utils/helpers/amd.c
+++ b/tools/power/cpupower/utils/helpers/amd.c
@@ -38,6 +38,16 @@ union core_pstate {
 		unsigned res1:31;
 		unsigned en:1;
 	} pstatedef;
+	/* since fam 1Ah: */
+	struct {
+		unsigned fid:12;
+		unsigned res1:2;
+		unsigned vid:8;
+		unsigned iddval:8;
+		unsigned idddiv:2;
+		unsigned res2:31;
+		unsigned en:1;
+	} pstatedef2;
 	unsigned long long val;
 };
 
@@ -45,6 +55,10 @@ static int get_did(union core_pstate pstate)
 {
 	int t;
 
+	/* Fam 1Ah onward do not use did */
+	if (cpupower_cpu_info.family >= 0x1A)
+		return 0;
+
 	if (cpupower_cpu_info.caps & CPUPOWER_CAP_AMD_PSTATEDEF)
 		t = pstate.pstatedef.did;
 	else if (cpupower_cpu_info.family == 0x12)
@@ -58,12 +72,18 @@ static int get_did(union core_pstate pstate)
 static int get_cof(union core_pstate pstate)
 {
 	int t;
-	int fid, did, cof;
+	int fid, did, cof = 0;
 
 	did = get_did(pstate);
 	if (cpupower_cpu_info.caps & CPUPOWER_CAP_AMD_PSTATEDEF) {
-		fid = pstate.pstatedef.fid;
-		cof = 200 * fid / did;
+		if (cpupower_cpu_info.family >= 0x1A) {
+			fid = pstate.pstatedef2.fid;
+			if (fid > 0x0f)
+				cof = (fid * 5);
+		} else {
+			fid = pstate.pstatedef.fid;
+			cof = 200 * fid / did;
+		}
 	} else {
 		t = 0x10;
 		fid = pstate.pstate.fid;
-- 
2.43.0


  parent reply	other threads:[~2024-06-17 13:26 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-17 13:25 [PATCH AUTOSEL 5.15 01/21] scsi: core: alua: I/O errors for ALUA state transitions Sasha Levin
2024-06-17 13:25 ` [PATCH AUTOSEL 5.15 02/21] scsi: qedf: Don't process stag work during unload and recovery Sasha Levin
2024-06-17 13:25 ` [PATCH AUTOSEL 5.15 03/21] scsi: qedf: Wait for stag work during unload Sasha Levin
2024-06-17 13:25 ` [PATCH AUTOSEL 5.15 04/21] scsi: qedf: Set qed_slowpath_params to zero before use Sasha Levin
2024-06-17 13:25 ` [PATCH AUTOSEL 5.15 05/21] ACPI: EC: Abort address space access upon error Sasha Levin
2024-06-17 13:25 ` [PATCH AUTOSEL 5.15 06/21] ACPI: EC: Avoid returning AE_OK on errors in address space handler Sasha Levin
2024-06-17 13:25 ` Sasha Levin [this message]
2024-06-17 13:25 ` [PATCH AUTOSEL 5.15 08/21] wifi: mac80211: mesh: init nonpeer_pm to active by default in mesh sdata Sasha Levin
2024-06-17 13:25 ` [PATCH AUTOSEL 5.15 09/21] wifi: mac80211: handle tasklet frames before stopping Sasha Levin
2024-06-17 13:25 ` [PATCH AUTOSEL 5.15 10/21] wifi: iwlwifi: mvm: d3: fix WoWLAN command version lookup Sasha Levin
2024-06-17 13:25 ` [PATCH AUTOSEL 5.15 11/21] wifi: iwlwifi: mvm: Handle BIGTK cipher in kek_kck cmd Sasha Levin
2024-06-17 13:25 ` [PATCH AUTOSEL 5.15 12/21] wifi: iwlwifi: mvm: properly set 6 GHz channel direct probe option Sasha Levin
2024-06-17 13:25 ` [PATCH AUTOSEL 5.15 13/21] wifi: mac80211: fix UBSAN noise in ieee80211_prep_hw_scan() Sasha Levin
2024-06-17 13:25 ` [PATCH AUTOSEL 5.15 14/21] selftests/openat2: Fix build warnings on ppc64 Sasha Levin
2024-06-17 13:25 ` [PATCH AUTOSEL 5.15 15/21] Input: silead - Always support 10 fingers Sasha Levin
2024-06-17 13:25 ` [PATCH AUTOSEL 5.15 16/21] net: ipv6: rpl_iptunnel: block BH in rpl_output() and rpl_input() Sasha Levin
2024-06-17 13:25 ` [PATCH AUTOSEL 5.15 17/21] ila: block BH in ila_output() Sasha Levin
2024-06-17 13:25 ` [PATCH AUTOSEL 5.15 18/21] arm64: armv8_deprecated: Fix warning in isndep cpuhp starting process Sasha Levin
2024-06-17 13:25 ` [PATCH AUTOSEL 5.15 19/21] null_blk: fix validation of block size Sasha Levin
2024-06-17 13:25 ` [PATCH AUTOSEL 5.15 20/21] kconfig: gconf: give a proper initial state to the Save button Sasha Levin
2024-06-17 13:25 ` [PATCH AUTOSEL 5.15 21/21] kconfig: remove wrong expr_trans_bool() Sasha Levin
  -- strict thread matches above, loose matches on Subject: below --
2024-06-18 12:41 [PATCH AUTOSEL 5.15 01/21] scsi: core: alua: I/O errors for ALUA state transitions Sasha Levin
2024-06-18 12:41 ` [PATCH AUTOSEL 5.15 07/21] tools/power/cpupower: Fix Pstate frequency reporting on AMD Family 1Ah CPUs Sasha Levin

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=20240617132617.2589631-7-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=Ananth.Narayan@amd.com \
    --cc=Dhananjay.Ugwekar@amd.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mario.limonciello@amd.com \
    --cc=shuah@kernel.org \
    --cc=skhan@linuxfoundation.org \
    --cc=stable@vger.kernel.org \
    --cc=trenn@suse.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox