[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [XEN][vNUMA][PATCH 0/9] VM memory mgmt for NUMA
This series of patches implements the following ~ [1] Memory allocation schemes for VMs on NUMA platforms : The specific allocation allocation strategies available as configuration parameters are - * CONFINE - Confine the VM memory to a single NUMA node. [config] strategy = "confine" * STRIPE - Stripe the VM memory across a specified number of nodes. [config] strategy = "stripe" vnodes = <num> stripesz = <in pages> * SPLIT - Split the VM memory across a specified number of nodes to construct virtual nodes, which are then exposed to the VM. For now, we require the number of vnodes and number of vcpus to be powers of 2 (for symmetric distribution), as opposed to using multiples. [config] strategy = "split" vnodes = <num> * AUTO - Choose a scheme automatically, based on memory distribution across the nodes. The strategy attempts CONFINE and STRIPE(by dividing memory in equal parts) in that order. If both fail, then it reverts to the existing non-numa allocation. * No Configuration - No change from existing behaviour. [2] HVM NUMA guests : If the user specifies "split" strategy, we expose the virtual nodes to the HVM (SRAT/SLIT). [3] Disable migration : For now, the allocation information is not preserved across migration. We set disable_migrate for documentation, although it doesn't really stop one from migrating VMs(?). -Dulloor Signed-off-by: Dulloor <dulloor@xxxxxxxxx> -- xen/common/memory.c | 2 + xen/common/page_alloc.c | 9 + xen/include/public/memory.h | 3 + xen/include/xen/mm.h | 2 + tools/libxc/xenctrl.h | 19 + tools/libxl/libxl.h | 1 + tools/libxl/xl_cmdimpl.c | 50 +- xen/include/public/dom_numa.h | 71 ++ tools/libxc/Makefile | 1 + tools/libxc/xc_cpumap.c | 88 +++ tools/libxc/xc_cpumap.h | 113 +++ tools/libxc/Makefile | 1 + tools/libxc/xc_dom_numa.c | 909 +++++++++++++++++++++++++++++++ tools/libxc/xc_dom_numa.h | 49 + tools/libxc/xc_hvm_build.c | 320 ++++++----- tools/libxc/ia64/xc_ia64_hvm_build.c | 1 + tools/libxc/xc_dom_numa.c | 2 +- tools/libxc/xc_dom_numa.h | 2 +- tools/libxc/xc_hvm_build.c | 298 +++++++--- tools/libxc/xenguest.h | 1 + tools/libxl/libxl_dom.c | 5 +- tools/python/xen/lowlevel/xc/xc.c | 2 +- tools/firmware/hvmloader/acpi/acpi2_0.h | 64 ++ tools/firmware/hvmloader/acpi/build.c | 118 ++++ tools/libxc/xc_hvm_build.c | 49 +- xen/include/public/hvm/hvm_info_table.h | 8 +- tools/libxc/xc_hvm_build.c | 2 + 27 files changed, 1939 insertions(+), 251 deletions(-) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |