Re: [PATCH v3 0/4] Distinguish between variants of IBPB
From: Tom Lendacky
Date: Fri Aug 23 2024 - 15:41:46 EST
On 8/23/24 13:53, Jim Mattson wrote:
> Prior to Zen4, AMD's IBPB did not flush the RAS (or, in Intel
> terminology, the RSB). Hence, the older version of AMD's IBPB was not
> equivalent to Intel's IBPB. However, KVM has been treating them as
> equivalent, synthesizing Intel's CPUID.(EAX=7,ECX=0):EDX[bit 26] on any
> platform that supports the synthetic features X86_FEATURE_IBPB and
> X86_FEATURE_IBRS.
>
> Equivalence also requires a previously ignored feature on the AMD side,
> CPUID Fn8000_0008_EBX[IBPB_RET], which is enumerated on Zen4.
>
> v3: Pass through IBPB_RET from hardware to userspace. [Tom]
> Derive AMD_IBPB from X86_FEATURE_SPEC_CTRL rather than
> X86_FEATURE_IBPB. [Tom]
> Clarify semantics of X86_FEATURE_IBPB.
>
> v2: Use IBPB_RET to identify semantic equality. [Venkatesh]
>
> Jim Mattson (4):
> x86/cpufeatures: Clarify semantics of X86_FEATURE_IBPB
> x86/cpufeatures: Define X86_FEATURE_AMD_IBPB_RET
> KVM: x86: Advertise AMD_IBPB_RET to userspace
> KVM: x86: AMD's IBPB is not equivalent to Intel's IBPB
>
> arch/x86/include/asm/cpufeatures.h | 3 ++-
> arch/x86/kvm/cpuid.c | 8 ++++++--
> 2 files changed, 8 insertions(+), 3 deletions(-)
For the series:
Reviewed-by: Tom Lendacky <thomas.lendacky@xxxxxxx>
>