From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [vNUMA v2][PATCH 0/8] VM memory mgmt for NUMA Date: Mon, 2 Aug 2010 12:16:38 -0400 Message-ID: <20100802161638.GB6961@phenom.dumpdata.com> References: <1BEA8649F0C00540AB2811D7922ECB6C933256EA@orsmsx507.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Dulloor , Andre Przywara Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On Sun, Aug 01, 2010 at 03:00:31PM -0700, Dulloor wrote: > Sorry for the delay. I have been busy with other things. Np. Can you CC these patches in the future to Andre? His email is Andre Przywara In the meantime, I am CC-ing him here. >=20 >=20 > Summary of the patches : > In this patch series, we implement the following ~ >=20 > [1] Memory allocation schemes for VMs on NUMA platforms : The specific > allocation allocation strategies available as configuration parameters = are - >=20 > =A0=A0=A0=A0=A0=A0=A0 * CONFINE - Confine the VM memory to a single NUM= A node. > =A0=A0=A0=A0=A0=A0=A0=A0=A0 [config] > =A0=A0=A0=A0=A0=A0=A0=A0=A0 strategy =3D "confine" >=20 > =A0=A0=A0=A0=A0=A0=A0 * STRIPE - Stripe the VM memory across a specifie= d number of nodes. > =A0=A0=A0=A0=A0=A0=A0=A0=A0 [config] > =A0=A0=A0=A0=A0=A0=A0=A0=A0 strategy =3D "stripe" > =A0=A0=A0=A0=A0=A0=A0=A0=A0 vnodes =3D > =A0=A0=A0=A0=A0=A0=A0=A0=A0 stripesz =3D >=20 > =A0=A0=A0=A0=A0=A0=A0 * SPLIT - Split the VM memory across a specified = number of nodes > =A0=A0=A0=A0=A0=A0=A0=A0=A0 to construct virtual nodes, which are then = exposed to the VM. > =A0=A0=A0=A0=A0=A0=A0=A0=A0 For now, we require the number of vnodes an= d number of vcpus to > =A0=A0=A0=A0=A0=A0=A0=A0=A0 be powers of 2 (for symmetric distribution)= , as opposed to using > =A0=A0=A0=A0=A0=A0=A0=A0=A0 multiples. > =A0=A0=A0=A0=A0=A0=A0=A0=A0 [config] > =A0=A0=A0=A0=A0=A0=A0=A0=A0 strategy =3D "split" > =A0=A0=A0=A0=A0=A0=A0=A0=A0 vnodes =3D >=20 > =A0=A0=A0=A0=A0=A0=A0 * AUTO - Choose a scheme automatically, based on = memory distribution > =A0=A0=A0=A0=A0=A0=A0=A0=A0 across the nodes. The strategy attempts CON= FINE and STRIPE(by > =A0=A0=A0=A0=A0=A0=A0=A0=A0 dividing memory in equal parts) in that ord= er. If both fail, then > =A0=A0=A0=A0=A0=A0=A0=A0=A0 it reverts to the existing non-numa allocat= ion. > [config] > strategy =3D "auto" >=20 > =A0=A0=A0=A0=A0=A0=A0 * No Configuration - No change from existing beha= viour. >=20 > [2] HVM NUMA guests : If the user specifies "split" strategy, we expose= the > virtual nodes to the HVM (SRAT/SLIT). >=20 > [3] Disable migration : For now, the allocation information is not pres= erved > across migration, so we just disable migration. We will address this in= the next > patch series. >=20 > [4] PoD (Populate on Demand) : For now, PoD is disabled internally if a= NUMA > allocation strategy is specified and applied to a VM. We will address > this in the > next patch series. >=20 > Changes from previous version : > [1] The guest interface structure has been modified per Keir's suggesti= ons. > Most changes from previous version are due to this. > [2] Cleaned up debug code in setup_guest (spotted by George). >=20 >=20 > -Dulloor >=20 > Signed-off-by: Dulloor >=20 > -- > tools/firmware/hvmloader/acpi/acpi2_0.h | 64 ++++++ > tools/firmware/hvmloader/acpi/build.c | 122 ++++++++++++ > tools/libxc/Makefile | 2 + > tools/libxc/ia64/xc_ia64_hvm_build.c | 1 + > tools/libxc/xc_cpumap.c | 88 +++++++++ > tools/libxc/xc_cpumap.h | 113 +++++++++++ > tools/libxc/xc_dom_numa.c | 901 > +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++= ++++++++++++++++++++++ > tools/libxc/xc_dom_numa.h | 73 +++++++ > tools/libxc/xc_hvm_build.c | 574 > ++++++++++++++++++++++++++++++++++++++++------------------ > tools/libxc/xenctrl.h | 19 + > tools/libxc/xenguest.h | 1 + > tools/libxl/libxl.h | 1 + > tools/libxl/libxl_dom.c | 1 + > tools/libxl/xl_cmdimpl.c | 44 ++++ > tools/python/xen/lowlevel/xc/xc.c | 2 +- > xen/include/public/arch-x86/dom_numa.h | 91 +++++++++ > xen/include/public/dom_numa.h | 33 +++ > xen/include/public/hvm/hvm_info_table.h | 10 +- > 18 files changed, 1954 insertions(+), 186 deletions(-) >=20 > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel