Re: [PATCH v4 0/3] Distinguish between variants of IBPB

From: Sean Christopherson
Date: Mon Sep 30 2024 - 12:19:51 EST


On Fri, Sep 27, 2024, Jim Mattson wrote:
> On Fri, Sep 13, 2024 at 10:32 AM Jim Mattson <jmattson@xxxxxxxxxx> 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.
> >
> > v4: Added "guaranteed" to X86_FEATURE_IBPB comment [Pawan]
> > Changed logic for deducing AMD IBPB features from Intel IBPB features
> > in kvm_set_cpu_caps [Tom]
> > Intel CPUs that suffer from PBRSB can't claim AMD_IBPB_RET [myself]
> >
> > 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 (3):
> > 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
>
> Oops. I forgot to include the v3 responses:
>
> > For the series:
> >
> > Reviewed-by: Tom Lendacky <thomas.lendacky@xxxxxxx>
>
> and
>
> > Assuming this goes through the KVM tree:
> >
> > Reviewed-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
>
> The only substantive change was to patch 3/3.
>
> Sean: Are you willing to take this through KVM/x86?

Yep, and I can fixup the reviews when applying.