NUMA node-specifc memory allocation
From Xen
Jump to navigationJump to search
NUMA node-specific memory allocation in X86 meminit_hvm()
Entry point: xenguest --mode hvm_build
xenguest --mode hvm_build
:
It calls
do_hvm_build()
,
which calls
stub_xc_hvm_build()
.
stub_xc_hvm_build()
It starts the HVM/PVH domain creation by filling out the fields of struct flags
and struct xc_dom_image
and calls hvm_build_setup_mem()
.
hvm_build_setup_mem()
- Gets struct xc_dom_image *dom
, max_mem_mib
, and max_start_mib
.
- Calculates start and size of most parts of the domain’s memory maps
- taking memory holes for I/O into account, e.g.mmio_size
andmmio_start
.
- It then uses those to calculate lowmem_end
and highmem_end
.
- Finally, calls xc_dom_boot_mem_init()
.
xc_dom_boot_mem_init()
In all cases, xc_dom_boot_mem_init()
is called.
It calls the architecture-specific meminit
hook for the domain type:
rc = dom->arch_hooks->meminit(dom);