[PATCH v3 3/8] x86, lib: Add WBNOINVD helper functions
Peter Zijlstra
peterz at infradead.org
Thu Jul 10 15:58:24 UTC 2025
On Thu, Jul 10, 2025 at 08:55:02AM -0700, Sean Christopherson wrote:
> > So kvm-amd is the SEV stuff, AGPGART is the ancient crap nobody cares
> > about, CCP is more SEV stuff, DRM actually does CLFLUSH loops, but has a
> > WBINVD fallback. i915 is rude and actually does WBINVD. Could they
> > pretty please also do CLFLUSH loops?
>
> FWIW, doing CLFLUSH in KVM isn't feasible. In multiple flows, KVM doesn't have
> a valid virtual mapping, and hardware *requires* a WBINVD for at least one of the
> SEV paths.
Yeah, I know. We should give the hardware folks more grief about this
though. If we ever get into the situation of requiring WBINVD, they've
messed up.
> > Anyway, the below seems to survive an allmodconfig.
> >
> > ---
> > diff --git a/arch/x86/lib/cache-smp.c b/arch/x86/lib/cache-smp.c
> > index c5c60d07308c..ac3cc32a4054 100644
> > --- a/arch/x86/lib/cache-smp.c
> > +++ b/arch/x86/lib/cache-smp.c
> > @@ -12,19 +12,19 @@ void wbinvd_on_cpu(int cpu)
> > {
> > smp_call_function_single(cpu, __wbinvd, NULL, 1);
> > }
> > -EXPORT_SYMBOL(wbinvd_on_cpu);
> > +EXPORT_SYMBOL_GPL_FOR_MODULES(wbinvd_on_cpu, "kvm-amd,agpgart,ccp,drm,i915");
>
> Patch 5 of this series drops KVM's homebrewed version of WBINVD-on-CPU, so this
> one at least would need to export the symbol for "kvm" as well.
Ah, sure. At the same time, cpumask_of(cpu) is very cheap.
More information about the dri-devel
mailing list