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: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v2 2/6] x86/HVM: restrict guest-induced WBINVD to cache writeback
Date: Wed, 14 May 2025 16:42:42 +0200	[thread overview]
Message-ID: <aCSr4rfRBj_Yajed@macbook.lan> (raw)
In-Reply-To: <66603689-429b-4bf6-8792-e4feae346a13@suse.com>

On Wed, May 14, 2025 at 02:46:32PM +0200, Jan Beulich wrote:
> On 14.05.2025 13:30, Roger Pau Monné wrote:
> > On Tue, May 13, 2025 at 03:54:56PM +0200, Jan Beulich wrote:
> >> On 13.05.2025 15:41, Roger Pau Monné wrote:
> >>> It's my understanding that the same is possible on native, as the CPU
> >>> might speculatively pull lines into the cache.  So there's no reason
> >>> for an OS to use wbinvd if wbnoinvd is available?
> >>
> >> Speculatively pulling data into the cache is possible only when page
> >> table entries permit caching. Hence after changing all mappings of a
> >> certain page to UC, an OS may have a need to ensure that no data of
> >> this page is left in any cache (and it can't be pulled back in
> >> speculatively then).
> > 
> > Is this realistic taking into account the OS is running virtualized?
> > 
> > At least with Xen there's the direct map, so once context is switched
> > back to Xen (for example to execute the wbinvd itself) there's no
> > guarantee the CPU won't speculatively populate the cache with entries
> > from the direct map.
> 
> Well, we've been knowing for a long time that we're not doing things fully
> correctly there. Once a guest has changed all mappings of a page it owns,
> we ought to make the direct map one follow suit (or simply unmap it from
> there).

Keeping track of guests mappings seems extremely complicated - maybe
doable for PV, but not for HVM with HAP I would think?

Also we would need to do something similar if guest enables CR0.CD and
switch all the direct map entries to uncached?

Address Space Isolation (and the removal of the direct map) might
solve part of this, but still I don't think we can fully guarantee Xen
won't have any mapping of guest pages with a different set of cache
attributes.

Thanks, Roger.


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

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-03  9:43 [PATCH v2 0/6] x86: reduce cache flushing overhead Jan Beulich
2023-05-03  9:44 ` [PATCH v2 1/6] x86: support cache-writeback in flush_area_local() et al Jan Beulich
2025-05-13 13:01   ` Roger Pau Monné
2023-05-03  9:45 ` [PATCH v2 2/6] x86/HVM: restrict guest-induced WBINVD to cache writeback Jan Beulich
2025-05-13 13:12   ` Andrew Cooper
2025-05-13 13:24     ` Jan Beulich
2025-05-13 13:41   ` Roger Pau Monné
2025-05-13 13:54     ` Jan Beulich
2025-05-14 11:30       ` Roger Pau Monné
2025-05-14 12:46         ` Jan Beulich
2025-05-14 14:42           ` Roger Pau Monné [this message]
2025-05-14 14:53             ` Jan Beulich
2023-05-03  9:45 ` [PATCH v2 3/6] x86/PV: restrict guest-induced WBINVD (or alike) " Jan Beulich
2023-05-03  9:46 ` [PATCH v2 4/6] VT-d: restrict iommu_flush_all() " Jan Beulich
2025-05-14 11:40   ` Roger Pau Monné
2025-05-14 12:49     ` Jan Beulich
2025-05-14 14:44   ` Roger Pau Monné
2025-05-14 14:57     ` Jan Beulich
2023-05-03  9:46 ` [PATCH v2 5/6] x86: FLUSH_CACHE -> FLUSH_CACHE_EVICT Jan Beulich
2025-05-14 11:44   ` Roger Pau Monné
2025-05-14 12:52     ` Jan Beulich
2025-05-14 14:45       ` Roger Pau Monné
2025-05-15  6:46         ` Jan Beulich
2023-05-03  9:47 ` [PATCH v2 6/6] x86/HVM: limit cache writeback overhead Jan Beulich
2025-05-14 13:00   ` Roger Pau Monné
2025-05-14 13:20     ` Jan Beulich
2025-05-14 15:12       ` Roger Pau Monné
2025-05-15  6:47         ` Jan Beulich
2025-05-15  8:09           ` Roger Pau Monné

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=aCSr4rfRBj_Yajed@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.