This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[xen-devel][vNUMA v2][PATCH 0/8] VM memory mgmt for NUMA

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [xen-devel][vNUMA v2][PATCH 0/8] VM memory mgmt for NUMA
From: Dulloor <dulloor@xxxxxxxxx>
Date: Sun, 1 Aug 2010 15:00:31 -0700
Delivery-date: Sun, 01 Aug 2010 15:01:25 -0700
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=z2CbHBu+0ZflU2Ej2dmq2r5rFyHy8WsGwnR/yggPcYw=; b=mW3pEX0tc7Qk8heBp5XdyZ9U6FPa2wwcbIgjtxm0nX8+v992DLkDqX8mnm/kFAx2HX XJf4TCo4COYxdX6ngIbyN+ziR8Ft2U8hf4xuGn5MYzKv6dGTBJpl7rArzF2dG07OOM4w +oCBZKi5s8XqFq73CTDOGgF4zH8J7PDiqwzrI=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=JbLMrBgYKoosp1fyAmh/r4jYpIadX686iWOYtrlvXPdPfVg2+fvqZkBHVEDLh5fyF4 0V0sOffdmHtCr6qxjWnNTE2EtwIJ+YYJd6QW/YsVJ9u3vHzhB+w+mpRxly33Eojv03dm tlHOzoWSSjdAKEzqDwnNJuTOxJnJY8KCSF0dw=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <AANLkTikE8wyERGfVcpkhYhxjtvjaYUSiARmSGQuiykM8@xxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <1BEA8649F0C00540AB2811D7922ECB6C933256EA@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> <AANLkTikE8wyERGfVcpkhYhxjtvjaYUSiARmSGQuiykM8@xxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Sorry for the delay. I have been busy with other things.

Summary of the patches :
In this patch series, we implement 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.
          strategy = "confine"

        * STRIPE - Stripe the VM memory across a specified number of nodes.
          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
          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.
          strategy = "auto"

        * 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, so we just disable migration. We will address this in the next
patch series.

[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.

Changes from previous version :
[1] The guest interface structure has been modified per Keir's suggestions.
Most changes from previous version are due to this.
[2] Cleaned up debug code in setup_guest (spotted by George).


Signed-off-by: Dulloor <dulloor@xxxxxxxxx>

 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(-)

Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>