Commit 26e16174 authored by Mario Limonciello's avatar Mario Limonciello Committed by Shuah Khan
Browse files

cpupower: Don't try to read frequency from hardware when kernel uses aperfmperf

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: default avatarMario Limonciello <mario.limonciello@amd.com>
Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
parent 6d4a2987
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -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");