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

From: Jim Mattson
Date: Fri Sep 27 2024 - 14:52:30 EST


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?