From e45215a3fe22c63f9a7d13dd1a73020e10a9e6de Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Wed, 2 Dec 2009 08:51:12 +0000 Subject: xend: Memory pool for pv guest on systems with >128G memory The main idea of this patch is: 1) The admin sets aside some memory below 128G for 32-bit paravirtual domain creation (via dom0_mem=- in kernel comand line). 2) The admin also explicitly states to the tools (i..e xend) how much memory is supposed to be left untouched by 64-bit domains 3) If a 32-bit pv DomU gets created, no ballooning ought to be necessary (since if it is, no guarantee can be made about the address range of the memory ballooned out), and memory gets allocated from the reserved range. 4) Upon 64-bit (or 32-bit HVM or HVM) DomU creation, the tools determine the amount of memory to be ballooned out of Dom0 by adding the amount needed for the new guest and the amount still in the reserved pool (and then of course subtracting the total amount of memory the hypervisor has available for guest use). Signed-off-by: james song (wei) --- tools/examples/xend-config.sxp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'tools/examples') diff --git a/tools/examples/xend-config.sxp b/tools/examples/xend-config.sxp index 6c6dd2e253..6c056d4e05 100644 --- a/tools/examples/xend-config.sxp +++ b/tools/examples/xend-config.sxp @@ -192,6 +192,16 @@ # If enable-dom0-ballooning = no, dom0 will never balloon out. (enable-dom0-ballooning yes) +# 32-bit paravirtual domains can only consume physical +# memory below 168GB. On systems with memory beyond that address, +# they'll be confined to memory below 128GB. +# Using total_available_memory (in GB) to specify the amount of memory reserved +# in the memory pool exclusively for 32-bit paravirtual domains. +# Additionally you should use dom0_mem = <-Value> as a parameter in +# xen kernel to reserve the memory for 32-bit paravirtual domains, default +# is "0" (0GB). +(total_available_memory 0) + # In SMP system, dom0 will use dom0-cpus # of CPUS # If dom0-cpus = 0, dom0 will take all cpus available (dom0-cpus 0) -- cgit v1.2.3