All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Roger Pau Monné" <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 2/9] x86/pv: fix emulation of wb{,no}invd to flush all pCPU caches
Date: Mon, 12 May 2025 16:41:52 +0200	[thread overview]
Message-ID: <aCIIsPRB6IFGE46l@macbook.lan> (raw)
In-Reply-To: <7102b188-7abe-47a5-b889-d11db3eda674@suse.com>

On Mon, May 12, 2025 at 04:20:30PM +0200, Jan Beulich wrote:
> On 06.05.2025 10:31, Roger Pau Monne wrote:
> > --- a/xen/arch/x86/pv/emul-priv-op.c
> > +++ b/xen/arch/x86/pv/emul-priv-op.c
> > @@ -1193,17 +1193,18 @@ static int cf_check cache_op(
> >  {
> >      ASSERT(op == x86emul_wbinvd || op == x86emul_wbnoinvd);
> >  
> > -    /* Ignore the instruction if unprivileged. */
> > -    if ( !cache_flush_permitted(current->domain) )
> > +    /*
> > +     * Ignore the instruction if domain doesn't have cache control.
> > +     * Non-physdev domain attempted WBINVD; ignore for now since
> > +     * newer linux uses this in some start-of-day timing loops.
> 
> That's very old comment, and hence I think "newer" isn't quite applicable
> anymore. Either omit the word (if Linux still does so), or say "older"
> instead? Also since you touch the comment, upper-casing the L in Linux
> might be nice.

There's a wbinvd at the beginning of trampoline_start, which is
possibly to what this comment is referring to?

I will just drop the mention of "new" or "old" and capitalize the L in
Linux.

> > +     */
> > +    if ( cache_flush_permitted(current->domain) )
> >          /*
> > -         * Non-physdev domain attempted WBINVD; ignore for now since
> > -         * newer linux uses this in some start-of-day timing loops.
> > +         * Handle wbnoinvd as wbinvd, at the expense of higher cost.  Broadcast
> > +         * the flush to all pCPUs, Xen doesn't track where the vCPU has ran
> > +         * previously.
> >           */
> > -        ;
> > -    else if ( op == x86emul_wbnoinvd /* && cpu_has_wbnoinvd */ )
> > -        wbnoinvd();
> 
> So this goes away altogether, which isn't nice. It was "only" 2 years ago that
> I posted a series where an additional ...
> 
> > -    else
> > -        wbinvd();
> > +        flush_all(FLUSH_CACHE);
> 
> ... FLUSH_CACHE_WRITEBACK is introduced [1]. I really, really think that should
> go in first, for it to then be used here. The more that it's the 1st patch in
> that series.

Saw that series when doing this, I was going to ask about them but you
where away and then I forgot about it.

Let me take a look now.

Thanks, Roger.


  reply	other threads:[~2025-05-12 14:42 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-06  8:31 [PATCH 0/8] xen: cache control improvements Roger Pau Monne
2025-05-06  8:31 ` [PATCH 1/9] x86/pv: fix MMUEXT_FLUSH_CACHE to flush all pCPU caches Roger Pau Monne
2025-05-12 14:09   ` Jan Beulich
2025-05-12 14:27     ` Roger Pau Monné
2025-05-12 14:11   ` Jan Beulich
2025-05-12 14:24     ` Roger Pau Monné
2025-05-06  8:31 ` [PATCH 2/9] x86/pv: fix emulation of wb{,no}invd " Roger Pau Monne
2025-05-12 14:20   ` Jan Beulich
2025-05-12 14:41     ` Roger Pau Monné [this message]
2025-05-06  8:31 ` [PATCH 3/9] xen/gnttab: limit cache flush operation to guests allowed cache control Roger Pau Monne
2025-05-06 10:15   ` Julien Grall
2025-05-06 10:40     ` Roger Pau Monné
2025-05-12 14:23       ` Jan Beulich
2025-05-06  8:31 ` [PATCH 4/9] x86/gnttab: do not implement GNTTABOP_cache_flush Roger Pau Monne
2025-05-12 14:27   ` Jan Beulich
2025-05-06  8:31 ` [PATCH 5/9] x86/mtrr: use memory_type_changed() in hvm_set_mem_pinned_cacheattr() Roger Pau Monne
2025-05-12 15:04   ` Jan Beulich
2025-05-15 10:22     ` Roger Pau Monné
2025-05-16  7:00       ` Jan Beulich
2025-05-16  7:57         ` Roger Pau Monné
2025-05-16  6:58   ` Jan Beulich
2025-05-16  7:48     ` Roger Pau Monné
2025-05-16  8:02       ` Jan Beulich
2025-05-16  8:45         ` Roger Pau Monné
2025-05-06  8:31 ` [PATCH 6/9] x86/p2m: limit cache flush in memory_type_changed() Roger Pau Monne
2025-05-12 15:10   ` Jan Beulich
2025-05-06  8:31 ` [PATCH 7/9] xen/x86: rename cache_flush_permitted() to has_arch_io_resources() Roger Pau Monne
2025-05-12 15:16   ` Jan Beulich
2025-05-15 10:28     ` Roger Pau Monné
2025-05-16  7:07       ` Jan Beulich
2025-05-16  8:02         ` Roger Pau Monné
2025-05-16  8:08           ` Jan Beulich
2025-05-16  8:27             ` Roger Pau Monné
2025-05-16  8:36               ` Jan Beulich
2025-05-16  8:55                 ` Roger Pau Monné
2025-05-06  8:31 ` [PATCH 8/9] xen: introduce flag when a domain requires cache control Roger Pau Monne
2025-05-06 10:20   ` Julien Grall
2025-05-06 10:43     ` Roger Pau Monné
2025-05-12 15:24   ` Jan Beulich
2025-05-15 10:44     ` Roger Pau Monné
2025-05-16  7:16       ` Jan Beulich
2025-05-16  8:05         ` Roger Pau Monné
2025-05-06  8:31 ` [PATCH 9/9] xen/x86: track dirty pCPU caches for a given vCPU Roger Pau Monne
2025-05-06 11:16   ` Andrew Cooper
2025-05-06 12:55     ` Roger Pau Monné
2025-05-12 15:38       ` Jan Beulich
2025-05-15 10:52         ` Roger Pau Monné
2025-05-16  7:25           ` Jan Beulich
2025-05-12 15:33   ` Jan Beulich
2025-05-06  9:32 ` [PATCH 0/8] xen: cache control improvements Christian Lindig

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=aCIIsPRB6IFGE46l@macbook.lan \
    --to=roger.pau@citrix.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=jbeulich@suse.com \
    --cc=xen-devel@lists.xenproject.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.