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> >