|
[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
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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |