[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Cannot boot PVH dom0 with big initrd


  • To: Jan Beulich <jbeulich@xxxxxxxx>, Marek Marczykowski-Górecki <marmarek@xxxxxxxxxxxxxxxxxxxxxx>
  • From: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • Date: Fri, 13 Feb 2026 16:56:39 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ZtwA6J6JnP5kzOs4VxtBq89OBcW3wn9L4AtBgiwkYkE=; b=xycoX5Yc0qbEhvMQoSXA/mp2muuaOIUh4QsdMpA3tBcHlC1HmL/SCnJCBXrXlYrYn3eMrLjD39TnBX+q5EDRdMg0qrRaelG3uPi1NI99yrxo4OoL7b0QHlfZBxmn4gkc6wWaw86gBsZv3zOV2SoBAo5zjtX4PxHrZ0ZZcrN4kJUXCQoErS+jww6isXZByKYhUVeMJ1YXVKnVQVNv8u6UHSVfdzxzhEdGcxCKHsJc5TLKJrUaYFLWBaQwLUHM4AGOkLDNHQqpdxYJwAbAUL00smnbnrsOLGc/S9o737fEsAW+QOoA3WQ6Ovo2rFfhqVK3seer3YfH6fkAnJDfyfJI4g==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Xkks1N7mb4Yb67jdkicJoKzhll2EvoB+zVvpVjpOQvrD9nRh4TmrCuSE8XW4JeDxvXGkuBUPcambPY43hndlg+uDbEYHvYLEGcbtO+Kdm6MbefTA6COlTf5mnN9IIrWKuhp3BsO3AnjR6UdQw7ZnUXb1CM0/BkCX1CsFgcIW6O7D1x91uTWmHGWKqBlMjDV/1MXDwv6VJ0PE6X6WaiAcBMEQ+/6i0naBurNO4zrkZE4HarWAUi+qYZGQlx+6FxPrSoSBdGBYGySgVabhpZa5K6evipLmeI/zpwiEDMmheR6yJPR6qRDoj33St/NQzL2lLOWVpscCLO3RwYEe/L0U1g==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Fri, 13 Feb 2026 15:57:15 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Fri, Feb 13, 2026 at 09:56:42AM +0100, Jan Beulich wrote:
> On 13.02.2026 05:02, Marek Marczykowski-Górecki wrote:
> > Hi,
> > 
> > After fixing the xhci crash, I hit another issue - booting with 236MB
> > initrd doesn't work, I get:
> > 
> >     (XEN) [    3.151856] *** Building a PVH Dom0 ***
> >     ...
> >     (XEN) [    3.593940] Unable to allocate memory with order 0!
> >     (XEN) [    3.597110] Failed to setup Dom0 physical memory map
> >     (XEN) [    3.599884] 
> >     (XEN) [    3.602482] ****************************************
> >     (XEN) [    3.605272] Panic on CPU 0:
> >     (XEN) [    3.607928] Could not construct d0
> >     (XEN) [    3.610692] ****************************************
> >     (XEN) [    3.613463] 
> >     (XEN) [    3.616035] Reboot in five seconds...
> >     (XEN) [    8.626565] Resetting with ACPI MEMORY or I/O RESET_REG.
> > 
> > Full console log: 
> > https://gist.github.com/marmarek/c9dbc87bf07b76f2899781755762f565
> > 
> > If I skip initrd, then it boots just fine (but dom0 is not happy about
> > that). 164MB initrd failed too, but 13MB started ok.
> > Just in case, I tried skipping XHCI console, but it didn't change
> > anything.
> > 
> > Host has 16GB of memory, and there is no dom0_mem= parameter. Xen is
> > started from GRUB, using MB2+EFI.
> 
> Hmm, yes, there's an ordering issue: Of course we free initrd space (as used
> for passing from the boot loader to Xen) only after copying to the designated
> guest area. Yet dom0_compute_nr_pages(), intentionally, includes the space in
> its calculation (adding initial_images_nrpages()'s return value). PV Dom0
> isn't affected because to load huge initrd there, the kernel has to request
> the initrd to not be mapped into the initial allocation.

Right, on PV dom0 we do not copy the image to a new set of pages, we
simply assign the pages where the initrd resides to the domain.  We
can't populate those pages in the p2m as-is, otherwise we would
shatter super pages.

I think the fix below should do it, it's likely the best we can do.
Can you please give it a try Marek?

Thanks, Roger.
---
diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 0b467fd4a4fc..8e3cb5d0db76 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -343,7 +343,7 @@ unsigned long __init dom0_compute_nr_pages(
 
     for_each_node_mask ( node, dom0_nodes )
         avail += avail_domheap_pages_region(node, 0, 0) +
-                 initial_images_nrpages(node);
+                 is_pv_domain(d) ? initial_images_nrpages(node) : 0;
 
     /* Reserve memory for further dom0 vcpu-struct allocations... */
     avail -= (d->max_vcpus - 1UL)




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.