From: "Roger Pau Monné" <roger@xenproject.org>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
Andrew Cooper <andrew.cooper3@citrix.com>,
Teddy Astie <teddy.astie@vates.tech>
Subject: Re: [PATCH 07/15] x86/PVH: lift E820 alignment requirement
Date: Tue, 13 Oct 2026 16:59:31 +0200 [thread overview]
Message-ID: <as5HU6-tCy9YPWlM@Mac.lan> (raw)
In-Reply-To: <a28959f9-a832-45ae-9c81-350e43f23c91@suse.com>
On Mon, Oct 12, 2026 at 10:22:28AM +0200, Jan Beulich wrote:
> Before reordering things (to move in particular pvh_steal_ram()
> invocations ahead of the pvh_populate_p2m() one) drop an undue (and as it
> turns out unnecessary) assumption: find_memory() doesn't really depend on
> E820 regions to end on page boundaries.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Really the assumption towards the start of regions doesn't look to be
> relevant either, yet I thought I'd limit the change to the minimum needed.
> (In fact the statement immediately ahead of the assertion arranges for
> page alignment, so the check is dubious altogether.)
>
> We also could consider whether kernel_end really needs rounding up to a
> page boundary: Technically there's no need, but the question is whether it
> would be a good idea to have the tail of the kernel region share a page
> with metadata (or, as things still are at this point of the series, the
> initrd).
I think it would a bad idea to have this kind of page-sharing. The
guest might use NX for metadata page-tables (ie: initrd), so it
sharing a page with the kernel could be problematic.
>
> --- a/xen/arch/x86/hvm/dom0_build.c
> +++ b/xen/arch/x86/hvm/dom0_build.c
> @@ -365,6 +365,9 @@ static __init void pvh_setup_e820(struct
> * that's the minimum granularity of the 2nd stage translation. Since
> * the p2m code uses PAGE_ORDER_4K internally, also use it here in
> * order to prevent this code from getting out of sync.
> + *
> + * Note that this is only for pvh_populate_p2m(). Subsequent uses of
> + * pvh_steal_ram() will break the length part.
Maybe because I'm too familiar with this code, but the previous
comment mentioning the 4K alignment being required for the 2nd stage
translation kind of implies this is the reason for it? I guess you
want to make it clear there is no further logic depending on that
alignment.
> */
> start = ROUNDUP(entry->addr, PAGE_SIZE << PAGE_ORDER_4K);
> end = (entry->addr + entry->size) &
> @@ -506,8 +509,8 @@ static paddr_t __init find_memory(
> unsigned int i;
>
> /*
> - * The memory map is sorted and all RAM regions starts and sizes are
> - * aligned to page boundaries.
> + * The memory map is sorted and all RAM region starts are aligned to
> + * page boundaries.
> */
> for ( i = 0; i < d->arch.nr_e820; i++ )
> {
> @@ -519,7 +522,7 @@ static paddr_t __init find_memory(
>
> start = MAX(ROUNDUP(d->arch.e820[i].addr, PAGE_SIZE), MB(1));
>
> - ASSERT(IS_ALIGNED(start, PAGE_SIZE) && IS_ALIGNED(end, PAGE_SIZE));
> + ASSERT(IS_ALIGNED(start, PAGE_SIZE));
I would remove this altogether - as you noticed start is clearly
aligned by the code in the line just above.
Thanks, Roger.
next prev parent reply other threads:[~2026-10-13 14:59 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-12 8:17 [PATCH 00/15] x86: PVH Dom0 loading rework Jan Beulich
2026-10-12 8:19 ` [PATCH 01/15] x86/EFI: guard against oversized modules Jan Beulich
2026-10-12 10:12 ` George Dunlap
2026-10-12 8:19 ` [PATCH 02/15] x86/PV: make better use of assign_pages() Jan Beulich
2026-10-12 10:16 ` George Dunlap
2026-10-12 8:20 ` [PATCH 03/15] x86/setup: break out E820_RAM accumulation Jan Beulich
2026-10-12 10:20 ` George Dunlap
2026-10-12 10:23 ` Jan Beulich
2026-10-12 11:24 ` George Dunlap
2026-10-13 11:05 ` Roger Pau Monné
2026-10-13 11:39 ` Jan Beulich
2026-10-12 8:20 ` [PATCH 04/15] x86/setup: special treatment of initrd for PVH Dom0 Jan Beulich
2026-10-12 11:23 ` George Dunlap
2026-10-12 11:51 ` Jan Beulich
2026-10-12 18:58 ` George Dunlap
2026-10-12 8:21 ` [PATCH 05/15] x86/PVH: split pvh_load_kernel() Jan Beulich
2026-10-13 6:45 ` Teddy Astie
2026-10-12 8:21 ` [PATCH 06/15] x86/PVH: keep a copy of Dom0's initial E820 map Jan Beulich
2026-10-13 6:57 ` Teddy Astie
2026-10-13 7:56 ` Jan Beulich
2026-10-13 13:48 ` Roger Pau Monné
2026-10-13 14:53 ` Jan Beulich
2026-10-13 15:08 ` Roger Pau Monné
2026-10-12 8:22 ` [PATCH 07/15] x86/PVH: lift E820 alignment requirement Jan Beulich
2026-10-13 14:59 ` Roger Pau Monné [this message]
2026-10-13 15:13 ` Jan Beulich
2026-10-12 8:23 ` [PATCH 08/15] x86/PVH: split pvh_setup_acpi() Jan Beulich
2026-10-13 15:52 ` Roger Pau Monné
2026-10-13 16:04 ` Jan Beulich
2026-10-12 8:24 ` [PATCH 09/15] x86/PVH: split pvh_setup_vmx_realmode_helpers() Jan Beulich
2026-10-12 8:24 ` [PATCH 10/15] x86/PVH: convert find_memory() to using a rangeset Jan Beulich
2026-10-12 8:25 ` [PATCH 11/15] x86/PVH: try to map initrd directly into Dom0 Jan Beulich
2026-10-12 8:25 ` [PATCH 12/15] x86/PVH: heed the kernel in pvh_steal_ram() Jan Beulich
2026-10-12 8:26 ` [PATCH 13/15] x86/PVH: prefer smaller E820 regions for stealing from Jan Beulich
2026-10-12 8:26 ` [PATCH 14/15] x86/PVH: log Dom0's E820 map earlier Jan Beulich
2026-10-12 8:26 ` [PATCH 15/15] x86/PVH: simplify writing of Dom0's RSDP Jan Beulich
2026-10-12 8:29 ` [PATCH 00/15] x86: PVH Dom0 loading rework Jan Beulich
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=as5HU6-tCy9YPWlM@Mac.lan \
--to=roger@xenproject.org \
--cc=andrew.cooper3@citrix.com \
--cc=jbeulich@suse.com \
--cc=teddy.astie@vates.tech \
--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.