[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v3 17/22] tools/libxl: Fix vNUMA memory allocation algorithm to support ARM


  • To: xen-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Hirokazu Takahashi <taka@xxxxxxxxxxxxx>
  • Date: Fri, 19 Jun 2026 16:50:05 +0900
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=NnnrNnjtKFwE173RdNIYBVM2GKwC3Mi9fLxil7K6r04=; b=Q7K54iL2zxlnBkacIPfisFeDe8tkyQZFUXluCXAGB14gpIf7aUlFMSlTnwh1GFLKccj+tPSFEH+Qn+NoeJsMPRAYiHjPlqM84H8/XupmUSrdGtkF6xMhkYQ47P4WmFglYKZEHyKt8+IdDDWDGsvWxRvSkQm0jaLlH/ZKnuJZJD/2OPDCwLeJRKoYAurRXJM2zgJyYKuEZmXq3HnQy+1+jhNBaGtSgXFUkHHBZ8kQ4YAQ56HP+HXMXUt3BSr+VeBLmaD0BBfyl6TCrtvXxjm0h88RpCO+rUMCLWv+rfrQrFaIGWeF+rDBaQ1L/Kdfg6ooLL1e6p+W7xsqOAbkGEO6Cg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fLbfDZ7t62norsXxMyEkgvHmr/DBpT1YKmqLrukBtA1Fbxk/qREke6yoDcYXmARoEV8hWwfRA29Nqu2mcxABBuHFngWiQUC0hTaS6BDkx4F0W+xnNZIP5GunvD6AurLm5dn+WH+LLByJLjSXitta5IakBuNdV2kTQPJWIJl8I//d1WephQy7HbpnBSjIRRl9bd0gwvVqwOr2tfMFpCy5kYosV5ovUN5toV5JNmwim35uR6T4Rtqa7j/fmovcAQHWgHyP7vQn+nU6UXjQArrSSmdNR5j+3Gz0xhObaF2S1Bl2CzMlqrViv+Ypj/Ri2p1edQyFKbqXH03eGu+APpaaaw==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp;
  • Cc: Hirokazu Takahashi <taka@xxxxxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>
  • Delivery-date: Fri, 19 Jun 2026 07:50:52 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

When creating a domU with vNUMA enabled, the memory allocation
algorithm was dependent on x86. Fix this logic to make it
usable on ARM as well.

Signed-off-by: Hirokazu Takahashi <taka@xxxxxxxxxxxxx>
---
 tools/libs/light/libxl_vnuma.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/tools/libs/light/libxl_vnuma.c b/tools/libs/light/libxl_vnuma.c
index d181574782..70a92a7598 100644
--- a/tools/libs/light/libxl_vnuma.c
+++ b/tools/libs/light/libxl_vnuma.c
@@ -259,8 +259,12 @@ int libxl__vnuma_build_vmemrange_hvm(libxl__gc *gc,
     xen_vmemrange_t *vmemranges;
     int rc;
 
-    /* Derive vmemranges from vnode size and memory hole.
-     *
+    /* Derive vmemranges from vnode size and memory hole. */
+#if defined (__arm__) || defined(__aarch64__)
+    hole_start = GUEST_RAM0_BASE + GUEST_RAM0_SIZE;
+    hole_end = GUEST_RAM1_BASE;
+#else
+    /*
      * Guest physical address space layout:
      * [0, hole_start) [hole_start, hole_end) [hole_end, highmem_end)
      */
@@ -268,10 +272,15 @@ int libxl__vnuma_build_vmemrange_hvm(libxl__gc *gc,
         dom->lowmem_end : dom->mmio_start;
     hole_end = (dom->mmio_start + dom->mmio_size) > (1ULL << 32) ?
         (dom->mmio_start + dom->mmio_size) : (1ULL << 32);
+#endif
 
     assert(state->vmemranges == NULL);
 
+#if defined (__arm__) || defined(__aarch64__)
+    next = GUEST_RAM0_BASE;
+#else
     next = 0;
+#endif
     nr_vmemrange = 0;
     vmemranges = NULL;
     for (nid = 0; nid < b_info->num_vnuma_nodes; nid++) {
-- 
2.43.0




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.