[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 00/11] Add support for exact-node memory claims
The Xen toolstack supports claiming memory ahead of allocating it with the intent of assisting bootstorms of massive VMs. This works ok for general VMs, but falls appart miserably whenever the toolstack attempts to force placement of specific NUMA nodes. This series extends the in-hypervisor claim infrastructure to support per-node claims, and propagates the knob all the way to xl.cfg. A worthy future goal is the support of multi-node claims per domain, but the objective of this series is far more modest and merely intends to enable claiming memory on a single node for specific domains. This solves a real-world use case of bundling many small VMs in a single NUMA machine. The feature specifically allows combining domains with exact-node claims, general claims and no claims at all in a consistent fashion. Alejandro Vallejo (11): xen/memory: Mask XENMEMF_node() to 8 bits xen/page_alloc: Remove `claim` from domain_set_outstanding_pages() xen/page_alloc: Add static per-node counts of free pages xen: Add node argument to domain_{adjust_tot_pages,set_outstanding_pages}() xen: Create per-node outstanding claims xen/page_alloc: Hook per-node claims to alloc_heap_pages() xen/page_alloc: Set node affinity when claiming pages from an exact node xen/memory: Enable parsing NUMA node argument in XENMEM_claim_pages tools/xc: Add `node` argument to xc_domain_claim_pages() tools/xl: Expose a "claim_on_node" setting in xl.cfg docs/man: Document the new claim_on_node option docs/man/xl-numa-placement.7.pod | 8 ++ docs/man/xl.1.pod.in | 2 +- docs/man/xl.cfg.5.pod.in | 14 +++ tools/golang/xenlight/helpers.gen.go | 2 + tools/golang/xenlight/types.gen.go | 1 + tools/include/xenctrl.h | 1 + tools/include/xenguest.h | 7 ++ tools/libs/ctrl/xc_domain.c | 13 ++- tools/libs/guest/xg_dom_core.c | 1 + tools/libs/guest/xg_dom_x86.c | 22 ++--- tools/libs/light/libxl_dom.c | 2 + tools/libs/light/libxl_types.idl | 3 +- tools/xl/xl_parse.c | 11 +++ xen/arch/x86/mm.c | 3 +- xen/arch/x86/mm/mem_sharing.c | 4 +- xen/common/domain.c | 2 +- xen/common/grant_table.c | 4 +- xen/common/memory.c | 25 +++++- xen/common/page_alloc.c | 125 ++++++++++++++++++++++----- xen/include/public/memory.h | 5 +- xen/include/xen/mm.h | 6 +- xen/include/xen/sched.h | 3 + 22 files changed, 216 insertions(+), 48 deletions(-) -- 2.48.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |