From b9745280736ee526374873aa3c4142596e2ba10b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Tue, 27 Feb 2024 14:09:19 +0100 Subject: [PATCH 16/67] libxl: Disable relocating memory for qemu-xen in stubdomain too MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit According to comments (and experiments) qemu-xen cannot handle memory reolcation done by hvmloader. The code was already disabled when running qemu-xen in dom0 (see libxl__spawn_local_dm()), but it was missed when adding qemu-xen support to stubdomain. Adjust libxl__spawn_stub_dm() to be consistent in this regard. Reported-by: Neowutran Signed-off-by: Marek Marczykowski-Górecki Reviewed-by: Jason Andryuk Acked-by: Anthony PERARD master commit: 97883aa269f6745a6ded232be3a855abb1297e0d master date: 2024-02-22 11:48:22 +0100 --- tools/libs/light/libxl_dm.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tools/libs/light/libxl_dm.c b/tools/libs/light/libxl_dm.c index 14b593110f..ed620a9d8e 100644 --- a/tools/libs/light/libxl_dm.c +++ b/tools/libs/light/libxl_dm.c @@ -2432,6 +2432,16 @@ void libxl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss) "%s", libxl_bios_type_to_string(guest_config->b_info.u.hvm.bios)); } + /* Disable relocating memory to make the MMIO hole larger + * unless we're running qemu-traditional and vNUMA is not + * configured. */ + libxl__xs_printf(gc, XBT_NULL, + libxl__sprintf(gc, "%s/hvmloader/allow-memory-relocate", + libxl__xs_get_dompath(gc, guest_domid)), + "%d", + guest_config->b_info.device_model_version + == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL && + !libxl__vnuma_configured(&guest_config->b_info)); ret = xc_domain_set_target(ctx->xch, dm_domid, guest_domid); if (ret<0) { LOGED(ERROR, guest_domid, "setting target domain %d -> %d", -- 2.44.0