x86/cpu: Enable modifying CPU bug flags with '{clear,set}puid='
authorBrendan Jackman <jackmanb@google.com>
Fri, 20 Dec 2024 15:18:33 +0000 (15:18 +0000)
committerIngo Molnar <mingo@kernel.org>
Fri, 28 Feb 2025 09:57:50 +0000 (10:57 +0100)
commitab68d2e36532806b8f86ff2f60861dbb8443f0be
tree61519e55f16487a908cbae448a0e57ef83b43559
parent814165e9fd1f62332b5444d730b8d6e432328463
x86/cpu: Enable modifying CPU bug flags with '{clear,set}puid='

Sometimes it can be very useful to run CPU vulnerability mitigations on
systems where they aren't known to mitigate any real-world
vulnerabilities. This can be handy for mundane reasons like debugging
HW-agnostic logic on whatever machine is to hand, but also for research
reasons: while some mitigations are focused on individual vulns and
uarches, others are fairly general, and it's strategically useful to
have an idea how they'd perform on systems where they aren't currently
needed.

As evidence for this being useful, a flag specifically for Retbleed was
added in:

  5c9a92dec323 ("x86/bugs: Add retbleed=force").

Since CPU bugs are tracked using the same basic mechanism as features,
and there are already parameters for manipulating them by hand, extend
that mechanism to support bug as well as capabilities.

With this patch and setcpuid=srso, a QEMU guest running on an Intel host
will boot with Safe-RET enabled.

Signed-off-by: Brendan Jackman <jackmanb@google.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20241220-force-cpu-bug-v2-3-7dc71bce742a@google.com
arch/x86/include/asm/cpufeature.h
arch/x86/kernel/cpu/common.c