The Xen hypervisor supports starting a dom0 with large memory (up to the TB range) by not including the initrd and p2m list in the initial kernel mapping. Especially the p2m list can grow larger than the available virtual space in the initial mapping.
The started kernel is indicating the support of each feature via elf notes. This series enables the domain builder in libxc to do the same as the hypervisor. This enables starting of huge pv-domUs via xl. Unmapped initrd is supported for 64 and 32 bit domains, omitting the p2m from initial kernel mapping is possible for 64 bit domains only. Tested with: - 32 bit domU (kernel not supporting unmapped initrd) - 32 bit domU (kernel supporting unmapped initrd) - 1 GB 64 bit domU (kernel supporting unmapped initrd, not p2m) - 1 GB 64 bit domU (kernel supporting unmapped initrd and p2m) - 900GB 64 bit domU (kernel supporting unmapped initrd and p2m) Changes in v2: - patch 2 has been removed as it has been applied already - introduced new patch 2 as suggested by Ian Campbell: add a flag indicating support of an unmapped initrd to the parsed elf data of the elf_dom_parms structure - updated patch description of patch 3 as requested by Ian Campbell Juergen Gross (5): libxc: remove allocate member from struct xc_dom_image xen: add generic flag to elf_dom_parms indicating support of unmapped initrd libxc: create unmapped initrd in domain builder if supported libxc: split p2m allocation in domain builder from other magic pages libxc: create p2m list outside of kernel mapping if supported tools/libxc/include/xc_dom.h | 4 +- tools/libxc/xc_dom_core.c | 44 ++++++++++++-- tools/libxc/xc_dom_x86.c | 120 ++++++++++++++++++++++++++++++++++++- xen/arch/x86/domain_build.c | 4 +- xen/common/libelf/libelf-dominfo.c | 3 + xen/include/xen/libelf.h | 1 + 6 files changed, 165 insertions(+), 11 deletions(-) -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel