[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 11/24] tools/libxl: Fix vNUMA memory allocation algorithm to support ARM
- To: xen-devel@xxxxxxxxxxxxxxxxxxxx
- From: Hirokazu Takahashi <taka@xxxxxxxxxxxxx>
- Date: Mon, 1 Jun 2026 07:47:41 +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=v3KGkmY7p7M2J6F4vJvqKMYA8FFzPtk9uty5vUDLtT0=; b=SPZ++2yAIdA3BUUYXLcAofOTV6BX0b0Xu8aor5ed2Bb1MGjq7LeYLlRjECrAejudof764+zYm1jVMT09e2n+j17IrJoU1qysKzk4/w6V1K2qpa/xrjUPoOcRIxiH+5C4/xMGD84ODE6v5jVkfS7UCB2I7aF+fWLGP2PfjYUr4iuglOKOmDM+dsHkoelQrzpz188SMfnBiMPayT4ivH1WYeSmSWpFbjwVfklsFO1EQ/mQkA2PuV1ZuthY5PriVll++MEdsaSbZDB1rJ3RDIs6vkjeBVkJ3cTTq0avUXHZUmm445tswiqLQfJD1VDXboKreKcyKRIGbdzdSwixSfRBKg==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=x9Q85AIugoR2y7uVk1WDWnAcwvbC00HJ7aixSJwGKT+7A5MAQ8avH1x/7GaKC7u3iGDzFX/8ysNiGgdSvW7JxPIIPKJOjkwNQmqsPMR78xCK7rcRZDMAZtBgpURfguPhhwd0pGS9eeTDE0gIRumxJs2xb5qcXv9z26iMHIw7pDffueXeHA+mtln/oN2mleO2eg+S/JPrPyW5cgGoubgeI6Ba2yZ9gQzEDvrVnA86V8iwvT5SHvehnHOB1pfnriwsPlcTneYEE8FKQxtjsDm22SVhRrYlj+os33X8day4JYyqDH0pVgR3YETKxRtsx5cZmeDgx0OIYjl+GzOBqDGk0g==
- 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: Sun, 31 May 2026 22:48:27 +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.
---
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
|