]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
cpupower: Don't try to read frequency from hardware when kernel uses aperfmperf
authorMario Limonciello <mario.limonciello@amd.com>
Wed, 18 Dec 2024 19:09:53 +0000 (13:09 -0600)
committerShuah Khan <skhan@linuxfoundation.org>
Fri, 20 Dec 2024 16:12:07 +0000 (09:12 -0700)
When the amd-pstate is in use frequency is set by the hardware and
measured by the kernel through using the aperf and mperf registers.

There is no direct call to the hardware to indicate current frequency.

Detect that this feature is in use and skip the check.

Link: https://lore.kernel.org/r/20241218191144.3440854-5-superm1@kernel.org
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/power/cpupower/utils/cpufreq-info.c

index 5f092f3c729e7e9c51378cd9f93d5848b064dbdc..3df28e45be4210893ec3289fe369c4e989f70c9b 100644 (file)
@@ -254,7 +254,12 @@ static int get_freq_kernel(unsigned int cpu, unsigned int human)
 
 static int get_freq_hardware(unsigned int cpu, unsigned int human)
 {
-       unsigned long freq = cpufreq_get_freq_hardware(cpu);
+       unsigned long freq;
+
+       if (cpupower_cpu_info.caps & CPUPOWER_CAP_APERF)
+               return -EINVAL;
+
+       freq = cpufreq_get_freq_hardware(cpu);
        printf(_("  current CPU frequency: "));
        if (!freq) {
                printf("Unable to call hardware\n");