All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Sean Christopherson <seanjc@google.com>
Cc: Borislav Petkov <bp@alien8.de>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org, Paolo Bonzini <pbonzini@redhat.com>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
	linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
	dri-devel@lists.freedesktop.org,
	Kevin Loughlin <kevinloughlin@google.com>,
	Tom Lendacky <thomas.lendacky@amd.com>,
	Kai Huang <kai.huang@intel.com>, Ingo Molnar <mingo@kernel.org>,
	Zheyun Shen <szy0127@sjtu.edu.cn>,
	Mingwei Zhang <mizhang@google.com>,
	Francesco Lavra <francescolavra.fl@gmail.com>
Subject: Re: [PATCH v3 3/8] x86, lib: Add WBNOINVD helper functions
Date: Thu, 10 Jul 2025 17:58:24 +0200	[thread overview]
Message-ID: <20250710155824.GA905792@noisy.programming.kicks-ass.net> (raw)
In-Reply-To: <aG_iVqMkeIUELiTX@google.com>

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.



  reply	other threads:[~2025-07-10 15:58 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-22 23:37 [PATCH v3 0/8] x86, KVM: Optimize SEV cache flushing Sean Christopherson
2025-05-22 23:37 ` [PATCH v3 1/8] drm/gpu: Remove dead checks on wbinvd_on_all_cpus()'s return value Sean Christopherson
2025-07-10 14:47   ` [tip: x86/core] " tip-bot2 for Sean Christopherson
2025-07-11  8:52   ` [PATCH v3 1/8] " Simona Vetter
2025-05-22 23:37 ` [PATCH v3 2/8] x86, lib: Drop the unused return value from wbinvd_on_all_cpus() Sean Christopherson
2025-07-10 14:47   ` [tip: x86/core] x86/lib: " tip-bot2 for Sean Christopherson
2025-05-22 23:37 ` [PATCH v3 3/8] x86, lib: Add WBNOINVD helper functions Sean Christopherson
2025-07-10 11:29   ` Borislav Petkov
2025-07-10 13:56     ` Sean Christopherson
2025-07-10 14:38       ` Borislav Petkov
2025-07-10 14:37     ` Peter Zijlstra
2025-07-10 15:47       ` Peter Zijlstra
2025-07-10 15:55         ` Sean Christopherson
2025-07-10 15:58           ` Peter Zijlstra [this message]
2025-07-11  8:51         ` Simona Vetter
2025-07-11  8:52         ` Peter Zijlstra
2025-07-10 14:47   ` [tip: x86/core] x86/lib: " tip-bot2 for Kevin Loughlin
2025-05-22 23:37 ` [PATCH v3 4/8] x86, lib: Add wbinvd and wbnoinvd helpers to target multiple CPUs Sean Christopherson
2025-07-10 14:47   ` [tip: x86/core] x86/lib: Add WBINVD and WBNOINVD " tip-bot2 for Zheyun Shen
2025-05-22 23:37 ` [PATCH v3 5/8] KVM: x86: Use wbinvd_on_cpu() instead of an open-coded equivalent Sean Christopherson
2025-05-22 23:37 ` [PATCH v3 6/8] KVM: SVM: Remove wbinvd in sev_vm_destroy() Sean Christopherson
2025-05-22 23:37 ` [PATCH v3 7/8] KVM: SEV: Prefer WBNOINVD over WBINVD for cache maintenance efficiency Sean Christopherson
2025-05-22 23:37 ` [PATCH v3 8/8] KVM: SVM: Flush cache only on CPUs running SEV guest Sean Christopherson
2025-07-09 16:25 ` [PATCH v3 0/8] x86, KVM: Optimize SEV cache flushing Sean Christopherson
2025-07-09 18:57   ` Borislav Petkov
2025-07-09 21:36     ` Sean Christopherson
2025-07-10 23:08 ` Sean Christopherson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250710155824.GA905792@noisy.programming.kicks-ass.net \
    --to=peterz@infradead.org \
    --cc=airlied@gmail.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=francescolavra.fl@gmail.com \
    --cc=kai.huang@intel.com \
    --cc=kevinloughlin@google.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mingo@kernel.org \
    --cc=mingo@redhat.com \
    --cc=mizhang@google.com \
    --cc=mripard@kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=seanjc@google.com \
    --cc=simona@ffwll.ch \
    --cc=szy0127@sjtu.edu.cn \
    --cc=tglx@linutronix.de \
    --cc=thomas.lendacky@amd.com \
    --cc=tzimmermann@suse.de \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.