Skip to content

Commit

Permalink
tools/power/cpupower: Fix Pstate frequency reporting on AMD Family 1A…
Browse files Browse the repository at this point in the history
…h CPUs

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>
  • Loading branch information
Dhananjay Ugwekar authored and Shuah Khan committed May 28, 2024
1 parent 1613e60 commit 43cad52
Showing 1 changed file with 23 additions and 3 deletions.
26 changes: 23 additions & 3 deletions tools/power/cpupower/utils/helpers/amd.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,27 @@ 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;
};

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)
Expand All @@ -61,12 +75,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;
Expand Down

0 comments on commit 43cad52

Please sign in to comment.