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 v2 3/4] x86/setup: remove bootstrap_map_addr() usage of destroy_xen_mappings()
Date: Thu, 7 Nov 2024 12:54:49 +0100	[thread overview]
Message-ID: <ZyyqibpW2dFg5hOQ@macbook> (raw)
In-Reply-To: <c8620982-37b5-4556-9061-5dbf5778a43a@suse.com>

On Thu, Nov 07, 2024 at 12:23:51PM +0100, Jan Beulich wrote:
> On 06.11.2024 13:29, Roger Pau Monne wrote:
> > bootstrap_map_addr() top level comment states that it doesn't indented to
> > remove the L2 tables, as the same L2 will be re-used to create further 2MB
> > mappings.
> 
> With that I assume you refer to the 2nd sentence in the comment immediately
> ahead of the function. According to my reading, it may imply what you say,
> but it certainly doesn't "state" this. Imo the problem was latent already
> before, if BOOTSTRAP_MAP_{BASE,LIMIT} were changed to cover at least one
> full L3E range. Which isn't to say that ...

Hm, maybe I've implied too much from that comment.  What about
replacing the first paragraph with:

"bootstrap_map_addr() needs to be careful to not remove existing
page-table structures when tearing down mappings, as such pagetable
structures might be needed to fulfill subsequent mappings requests.
The comment ahead of the function already notes that pagetable memory
shouldn't be allocated."

> >  It's incorrect for the function to use destroy_xen_mappings() which
> > will free empty L2 tables.
> > 
> > Fix this by using map_pages_to_xen(), which does zap the page-table entries,
> > but does not free page-table structures even when empty.
> > 
> > Fixes: 4376c05c3113 ('x86-64: use 1GB pages in 1:1 mapping if available')
> > Signed-off-by: Roger Pau Monné <roger.pau@ctrix.com>
> > ---
> > The fixes tag reflects the fact that if 4376c05c3113 freed the L2 correctly
> > when empty, it would have become obvious that bootstrap_map_addr() shouldn't be
> > using it if it wants to keep the L2.  4376c05c3113 should have switched
> > bootstrap_map_addr() to not use destroy_xen_mappings().
> 
> ... I mind the commit you name to be blamed. It was clearly something I
> missed back then.
> 
> With the 1st sentence of the description re-worded some:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks, Roger.


  reply	other threads:[~2024-11-07 11:55 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-06 12:29 [PATCH v2 0/4] x86/mm: miscellaneous fixes Roger Pau Monne
2024-11-06 12:29 ` [PATCH v2 1/4] x86/mm: introduce helpers to detect super page alignment Roger Pau Monne
2024-11-07 10:42   ` Jan Beulich
2024-11-07 16:07     ` Roger Pau Monné
2024-11-07 17:19       ` Roger Pau Monné
2024-11-08  7:36         ` Jan Beulich
2024-11-06 12:29 ` [PATCH v2 2/4] x86/mm: special case super page alignment detection for INVALID_MFN Roger Pau Monne
2024-11-07 11:06   ` Jan Beulich
2024-11-07 15:52     ` Roger Pau Monné
2024-11-08  7:44       ` Jan Beulich
2024-11-06 12:29 ` [PATCH v2 3/4] x86/setup: remove bootstrap_map_addr() usage of destroy_xen_mappings() Roger Pau Monne
2024-11-07 11:23   ` Jan Beulich
2024-11-07 11:54     ` Roger Pau Monné [this message]
2024-11-07 11:59       ` Jan Beulich
2024-11-08  9:41   ` Andrew Cooper
2024-11-08  9:45     ` Jan Beulich
2024-11-08  9:49     ` Roger Pau Monné
2024-11-06 12:29 ` [PATCH v2 4/4] x86/mm: ensure L2 is always freed if empty Roger Pau Monne
2024-11-07 11:28 ` [PATCH v2 0/4] x86/mm: miscellaneous fixes Jan Beulich
2024-11-07 11:48   ` Roger Pau Monné
  -- strict thread matches above, loose matches on Subject: below --
2024-11-08 11:31 Roger Pau Monne
2024-11-08 11:31 ` [PATCH v2 3/4] x86/setup: remove bootstrap_map_addr() usage of destroy_xen_mappings() Roger Pau Monne

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=ZyyqibpW2dFg5hOQ@macbook \
    --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.