* [PATCH] cpufreq/amd-pstate: Bail out early in virtual machines and don't warn
@ 2026-07-15 17:41 Rong Zhang
2026-07-15 17:46 ` Mario Limonciello
0 siblings, 1 reply; 6+ messages in thread
From: Rong Zhang @ 2026-07-15 17:41 UTC (permalink / raw)
To: Huang Rui, Mario Limonciello, Perry Yuan, K Prateek Nayak,
Rafael J. Wysocki, Viresh Kumar, Gautham R. Shenoy
Cc: linux-pm, linux-kernel, Rong Zhang
When booting a virtual machine that simulates or passes-through a
relatively new CPUID, one or two warning messages are printed to kmsg:
amd_pstate: The CPPC feature is supported but currently disabled by the BIOS.
Please enable it if your BIOS has the CPPC option.
amd_pstate: the _CPC object is not present in SBIOS or ACPI disabled
Technically the check is not wrong and acts as a safetynet that prevents
the driver from being registered incorrectly, but the warning messages
are noisy and not really helpful, as virtual machines cannot adjust the
CPU frequency from the very beginning. Moreover, mentioning BIOS here
makes the messages even more confusing.
Fix it by bailing out early when running in virtual machines (excluding
Xen Dom0).
Fixes: cb817ec6673b ("cpufreq: amd-pstate: show CPPC debug message if CPPC is not supported")
Signed-off-by: Rong Zhang <i@rong.moe>
---
drivers/cpufreq/amd-pstate.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
index a74a4cf99d22..f2115f935318 100644
--- a/drivers/cpufreq/amd-pstate.c
+++ b/drivers/cpufreq/amd-pstate.c
@@ -2228,6 +2228,9 @@ static int __init amd_pstate_init(void)
if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD)
return -ENODEV;
+ if (cpu_feature_enabled(X86_FEATURE_HYPERVISOR) && !xen_initial_domain())
+ return -ENODEV;
+
/* show debug message only if CPPC is not supported */
if (!amd_cppc_supported())
return -EOPNOTSUPP;
---
base-commit: 58717b2a1365d06c8c64b72aa948541b53fe31eb
change-id: 1cc24037-amd-pstate-vm-d6ab4c959bd3
Thanks,
Rong
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] cpufreq/amd-pstate: Bail out early in virtual machines and don't warn
2026-07-15 17:41 [PATCH] cpufreq/amd-pstate: Bail out early in virtual machines and don't warn Rong Zhang
@ 2026-07-15 17:46 ` Mario Limonciello
2026-07-15 18:04 ` Borislav Petkov
0 siblings, 1 reply; 6+ messages in thread
From: Mario Limonciello @ 2026-07-15 17:46 UTC (permalink / raw)
To: Rong Zhang, Huang Rui, Perry Yuan, K Prateek Nayak,
Andryuk, Jason, Borislav Petkov
Cc: linux-pm, linux-kernel, Rafael J. Wysocki, Viresh Kumar
+Jason
+Boris
On 7/15/26 12:41, Rong Zhang wrote:
> When booting a virtual machine that simulates or passes-through a
> relatively new CPUID, one or two warning messages are printed to kmsg:
>
> amd_pstate: The CPPC feature is supported but currently disabled by the BIOS.
> Please enable it if your BIOS has the CPPC option.
> amd_pstate: the _CPC object is not present in SBIOS or ACPI disabled
>
> Technically the check is not wrong and acts as a safetynet that prevents
> the driver from being registered incorrectly, but the warning messages
> are noisy and not really helpful, as virtual machines cannot adjust the
> CPU frequency from the very beginning. Moreover, mentioning BIOS here
> makes the messages even more confusing.
>
> Fix it by bailing out early when running in virtual machines (excluding
> Xen Dom0).
Conceptually this makes sense to me, but I would like some comments from
others if this is the right way forward.
Jason, Boris,
comments please?
>
> Fixes: cb817ec6673b ("cpufreq: amd-pstate: show CPPC debug message if CPPC is not supported")
> Signed-off-by: Rong Zhang <i@rong.moe>
> ---
> drivers/cpufreq/amd-pstate.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
> index a74a4cf99d22..f2115f935318 100644
> --- a/drivers/cpufreq/amd-pstate.c
> +++ b/drivers/cpufreq/amd-pstate.c
> @@ -2228,6 +2228,9 @@ static int __init amd_pstate_init(void)
> if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD)
> return -ENODEV;
>
> + if (cpu_feature_enabled(X86_FEATURE_HYPERVISOR) && !xen_initial_domain())
> + return -ENODEV;
> +
> /* show debug message only if CPPC is not supported */
> if (!amd_cppc_supported())
> return -EOPNOTSUPP;
>
> ---
> base-commit: 58717b2a1365d06c8c64b72aa948541b53fe31eb
> change-id: 1cc24037-amd-pstate-vm-d6ab4c959bd3
>
> Thanks,
> Rong
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] cpufreq/amd-pstate: Bail out early in virtual machines and don't warn
2026-07-15 17:46 ` Mario Limonciello
@ 2026-07-15 18:04 ` Borislav Petkov
2026-07-15 19:21 ` Rong Zhang
0 siblings, 1 reply; 6+ messages in thread
From: Borislav Petkov @ 2026-07-15 18:04 UTC (permalink / raw)
To: Mario Limonciello
Cc: Rong Zhang, Huang Rui, Perry Yuan, K Prateek Nayak,
Andryuk, Jason, linux-pm, linux-kernel, Rafael J. Wysocki,
Viresh Kumar
On Wed, Jul 15, 2026 at 12:46:24PM -0500, Mario Limonciello wrote:
> Conceptually this makes sense to me, but I would like some comments from
> others if this is the right way forward.
>
> Jason, Boris,
>
> comments please?
We don't care if someone "passes-through a relatively new CPUID" - I am not
sure what that means - but we won't patch the upstream kernel just because it
dumped an error message in the guest.
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] cpufreq/amd-pstate: Bail out early in virtual machines and don't warn
2026-07-15 18:04 ` Borislav Petkov
@ 2026-07-15 19:21 ` Rong Zhang
2026-07-15 20:32 ` Jason Andryuk
0 siblings, 1 reply; 6+ messages in thread
From: Rong Zhang @ 2026-07-15 19:21 UTC (permalink / raw)
To: Borislav Petkov, Mario Limonciello
Cc: Huang Rui, Perry Yuan, K Prateek Nayak, Andryuk, Jason, linux-pm,
linux-kernel, Rafael J. Wysocki, Viresh Kumar
Hi Borislav,
Thanks for reviewing the patch.
On Wed, 2026-07-15 at 11:04 -0700, Borislav Petkov wrote:
> On Wed, Jul 15, 2026 at 12:46:24PM -0500, Mario Limonciello wrote:
> > Conceptually this makes sense to me, but I would like some comments from
> > others if this is the right way forward.
> >
> > Jason, Boris,
> >
> > comments please?
>
> We don't care if someone "passes-through a relatively new CPUID" - I am not
> sure what that means -
>
Sorry, typo here. I meant CPU model.
I usually boot a KVM with `qemu-system-x86_64 -accel kvm -cpu host
<other_args...>' to test various patches. These messages is a bit
disturbing to me as they are KERN_WARNING messages.
FYI, my device is Zen 5 based and always triggers both messages.
I can also reproduce both messages with `-cpu EPYC-Genoa' and `-cpu
EPYC-Turin'. It's just due to how amd_cppc_supported() is implemented.
> but we won't patch the upstream kernel just because it
> dumped an error message in the guest.
Well, the reason why I decided to send this is not only about how noisy
it is, but also about the correctness.
The first messages says:
The CPPC feature is supported but currently disabled by the BIOS.
Please enable it if your BIOS has the CPPC option.
The CPPC feature is neither supported in a KVM nor disabled by the VM's
BIOS.
IIUC, it's disabled by kvm_cpu_cap_init(CPUID_8000_0008_EBX, ...), so
the upstream kernel both disables it as a hypervisor and warns about it
as a guest. What a paradox!
At least the first message is nonsense in this case and the paradox
should really be fixed. If you prefer preserving the second message
("the _CPC object is not present in SBIOS or ACPI disabled") as an
informative hint anyway, how about moving the virtualization check into
amd_cppc_supported() to only mute the first one? ;-)
Thanks,
Rong
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] cpufreq/amd-pstate: Bail out early in virtual machines and don't warn
2026-07-15 19:21 ` Rong Zhang
@ 2026-07-15 20:32 ` Jason Andryuk
2026-07-15 20:54 ` Mario Limonciello
0 siblings, 1 reply; 6+ messages in thread
From: Jason Andryuk @ 2026-07-15 20:32 UTC (permalink / raw)
To: Rong Zhang, Borislav Petkov, Mario Limonciello
Cc: Huang Rui, Perry Yuan, K Prateek Nayak, linux-pm, linux-kernel,
Rafael J. Wysocki, Viresh Kumar
On 2026-07-15 15:21, Rong Zhang wrote:
> Hi Borislav,
>
> Thanks for reviewing the patch.
>
> On Wed, 2026-07-15 at 11:04 -0700, Borislav Petkov wrote:
>> On Wed, Jul 15, 2026 at 12:46:24PM -0500, Mario Limonciello wrote:
>>> Conceptually this makes sense to me, but I would like some comments from
>>> others if this is the right way forward.
>>>
>>> Jason, Boris,
>>>
>>> comments please?
>>
>> We don't care if someone "passes-through a relatively new CPUID" - I am not
>> sure what that means -
>>
>
> Sorry, typo here. I meant CPU model.
>
> I usually boot a KVM with `qemu-system-x86_64 -accel kvm -cpu host
> <other_args...>' to test various patches. These messages is a bit
> disturbing to me as they are KERN_WARNING messages.
>
> FYI, my device is Zen 5 based and always triggers both messages.
>
> I can also reproduce both messages with `-cpu EPYC-Genoa' and `-cpu
> EPYC-Turin'. It's just due to how amd_cppc_supported() is implemented.
>
>> but we won't patch the upstream kernel just because it
>> dumped an error message in the guest.
>
> Well, the reason why I decided to send this is not only about how noisy
> it is, but also about the correctness.
>
> The first messages says:
>
> The CPPC feature is supported but currently disabled by the BIOS.
> Please enable it if your BIOS has the CPPC option.
>
> The CPPC feature is neither supported in a KVM nor disabled by the VM's
> BIOS.
>
> IIUC, it's disabled by kvm_cpu_cap_init(CPUID_8000_0008_EBX, ...), so
> the upstream kernel both disables it as a hypervisor and warns about it
> as a guest. What a paradox!
>
> At least the first message is nonsense in this case and the paradox
> should really be fixed. If you prefer preserving the second message
> ("the _CPC object is not present in SBIOS or ACPI disabled") as an
> informative hint anyway, how about moving the virtualization check into
> amd_cppc_supported() to only mute the first one? ;-)
I think changing amd_cppc_supported() to return false for
X86_FEATURE_HYPERVISOR makes sense and can remove the message. The
heuristic there doesn't seem relevant when virtualized.
With Xen, the Xen hypervisor itself controls CPPC. dom0
(xen_initial_domain()) doesn't need the amd-pstate driver.
Regards,
Jason
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] cpufreq/amd-pstate: Bail out early in virtual machines and don't warn
2026-07-15 20:32 ` Jason Andryuk
@ 2026-07-15 20:54 ` Mario Limonciello
0 siblings, 0 replies; 6+ messages in thread
From: Mario Limonciello @ 2026-07-15 20:54 UTC (permalink / raw)
To: Jason Andryuk, Rong Zhang, Borislav Petkov
Cc: Huang Rui, Perry Yuan, K Prateek Nayak, linux-pm, linux-kernel,
Rafael J. Wysocki, Viresh Kumar
On 7/15/26 15:32, Jason Andryuk wrote:
> On 2026-07-15 15:21, Rong Zhang wrote:
>> Hi Borislav,
>>
>> Thanks for reviewing the patch.
>>
>> On Wed, 2026-07-15 at 11:04 -0700, Borislav Petkov wrote:
>>> On Wed, Jul 15, 2026 at 12:46:24PM -0500, Mario Limonciello wrote:
>>>> Conceptually this makes sense to me, but I would like some comments
>>>> from
>>>> others if this is the right way forward.
>>>>
>>>> Jason, Boris,
>>>>
>>>> comments please?
>>>
>>> We don't care if someone "passes-through a relatively new CPUID" - I
>>> am not
>>> sure what that means -
>>>
>>
>> Sorry, typo here. I meant CPU model.
>>
>> I usually boot a KVM with `qemu-system-x86_64 -accel kvm -cpu host
>> <other_args...>' to test various patches. These messages is a bit
>> disturbing to me as they are KERN_WARNING messages.
>>
>> FYI, my device is Zen 5 based and always triggers both messages.
>>
>> I can also reproduce both messages with `-cpu EPYC-Genoa' and `-cpu
>> EPYC-Turin'. It's just due to how amd_cppc_supported() is implemented.
>>
>>> but we won't patch the upstream kernel just because it
>>> dumped an error message in the guest.
>>
>> Well, the reason why I decided to send this is not only about how noisy
>> it is, but also about the correctness.
>>
>> The first messages says:
>>
>> The CPPC feature is supported but currently disabled by the BIOS.
>> Please enable it if your BIOS has the CPPC option.
>>
>> The CPPC feature is neither supported in a KVM nor disabled by the VM's
>> BIOS.
>>
>> IIUC, it's disabled by kvm_cpu_cap_init(CPUID_8000_0008_EBX, ...), so
>> the upstream kernel both disables it as a hypervisor and warns about it
>> as a guest. What a paradox!
>>
>> At least the first message is nonsense in this case and the paradox
>> should really be fixed. If you prefer preserving the second message
>> ("the _CPC object is not present in SBIOS or ACPI disabled") as an
>> informative hint anyway, how about moving the virtualization check into
>> amd_cppc_supported() to only mute the first one? ;-)
>
> I think changing amd_cppc_supported() to return false for
> X86_FEATURE_HYPERVISOR makes sense and can remove the message. The
> heuristic there doesn't seem relevant when virtualized.
>
> With Xen, the Xen hypervisor itself controls CPPC. dom0
> (xen_initial_domain()) doesn't need the amd-pstate driver.
>
> Regards,
> Jason
OK, Rong - please send an updated patch.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-07-15 20:54 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-15 17:41 [PATCH] cpufreq/amd-pstate: Bail out early in virtual machines and don't warn Rong Zhang
2026-07-15 17:46 ` Mario Limonciello
2026-07-15 18:04 ` Borislav Petkov
2026-07-15 19:21 ` Rong Zhang
2026-07-15 20:32 ` Jason Andryuk
2026-07-15 20:54 ` Mario Limonciello
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox