[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: hvmloader - allow_memory_relocate overlaps
On Fri, Dec 22, 2023 at 12:35:57PM +0100, Jan Beulich wrote: > On 21.12.2023 19:08, Neowutran wrote: > > On 2023-12-19 17:12, Jan Beulich wrote: > >> On 16.12.2023 08:01, Neowutran wrote: > >>> I am wondering if the variable "allow_memory_relocate" is still > >>> relevant today and if its default value is still relevant. > >>> Should it be defined to 0 by default instead of 1 (it seems to be a > >>> workaround for qemu-traditional, so maybe an outdated default value ? ) ? > >> > >> So are you saying you use qemu-trad? > > No, I am using "qemu_xen" ( from > > xenstore-read -> 'device-model = > > "qemu_xen"' > > > >> Otherwise isn't libxl suppressing this behavior anyway? > > If by "isn't libxl suppressing this behavior" you means if libxl is setting > > the value of "allow_memory_relocate", then the answer is no. > > > > Following this lead, I checked in what code path > > "allow_memory_relocate" could be defined. > > > > It is only defined in one code path, > > > > In the file "tools/libs/light/libxl_dm.c", > > in the function "void libxl__spawn_local_dm(libxl__egc *egc, > > libxl__dm_spawn_state *dmss)": > > > > ''' > > // ... > > if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) { > > // ... > > > > libxl__xs_printf(gc, XBT_NULL, > > GCSPRINTF("%s/hvmloader/allow-memory-relocate", > > path), > > "%d", > > > > b_info->device_model_version==LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL > > && > > !libxl__vnuma_configured(b_info)); > > // ... > > ''' > > > > However, on QubesOS (my system), "local_dm" is never used, "stub_dm" > > is always used. > > > > In the function "void lib > > xl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss)", > > the value of "allow_memory_relocate" is never defined. > > > > I tried to patch the code to define "allow_memory_relocate" in > > "libxl__spawn_stub_dm": > > > > ''' > > --- a/tools/libs/light/libxl_dm.c > > +++ b/tools/libs/light/libxl_dm.c > > @@ -2431,6 +2431,10 @@ void libxl__spawn_stub_dm(libxl__egc *egc, > > libxl__stub_dm_spawn_state *sdss) > > libxl__xs_get_dompath(gc, > > guest_domid)), > > "%s", > > > > libxl_bios_type_to_string(guest_config->b_info.u.hvm.bios)); > > + libxl__xs_printf(gc, XBT_NULL, > > + libxl__sprintf(gc, > > "%s/hvmloader/allow-memory-relocate", libxl__xs_get_dompath(gc, > > guest_domid)), > > + "%d", > > + 0); > > } > > ret = xc_domain_set_target(ctx->xch, dm_domid, guest_domid); > > if (ret<0) { > > ''' > > > > And it is indeed another way to solve my issue. > > However I do not understand the xen hypervisor enough to known i > > f > > "allow-memory-relocate" should have been defined in > > "libxl__spawn_stub_dm" or if the real issue is somewhere else. > > I think it should be done the same no matter where qemu runs. Back at the > time iirc only qemu-trad could run in a stubdom, which may explain the > omission. Cc-ing the two guys who are likely in the best position to tell > for sure. This indeed looks like a missing piece of qemu-xen support in stubdomain. But also, As Jan pointed out, this would be better fixed at the qemu side so memory relocation could be re-enabled. -- Best Regards, Marek Marczykowski-Górecki Invisible Things Lab Attachment:
signature.asc
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |