[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 1/2] hw/xen: detect when running inside stubdomain
On Tue, Mar 26, 2024 at 05:06:50PM +0000, Anthony PERARD wrote: > On Tue, Mar 05, 2024 at 08:12:29PM +0100, Marek Marczykowski-Górecki wrote: > > diff --git a/hw/xen/xen-legacy-backend.c b/hw/xen/xen-legacy-backend.c > > index 124dd5f3d6..6bd4e6eb2f 100644 > > --- a/hw/xen/xen-legacy-backend.c > > +++ b/hw/xen/xen-legacy-backend.c > > @@ -603,6 +603,20 @@ static void xen_set_dynamic_sysbus(void) > > machine_class_allow_dynamic_sysbus_dev(mc, TYPE_XENSYSDEV); > > } > > > > +static bool xen_check_stubdomain(void) > > +{ > > + char *dm_path = g_strdup_printf("/local/domain/%d/image", xen_domid); > > + int32_t dm_domid; > > + bool is_stubdom = false; > > + > > + if (!xenstore_read_int(dm_path, "device-model-domid", &dm_domid)) { > > + is_stubdom = dm_domid != 0; > > + } > > + > > + g_free(dm_path); > > + return is_stubdom; > > +} > > + > > void xen_be_init(void) > > { > > xenstore = qemu_xen_xs_open(); > > @@ -616,6 +630,8 @@ void xen_be_init(void) > > exit(1); > > } > > > > + xen_is_stubdomain = xen_check_stubdomain(); > > This isn't really a backend specific information, and xen_be_init() is > all about old backend implementation support. (qdisk which have been the > first to be rewritten doesn't need xen_be_init(), or shouldn't). Could > we move the initialisation elsewhere? I can try to move it, sure. > Is this relevant PV guests? If not, we could move the initialisation to > xen_hvm_init_pc(). > > Also, avoid having xen_check_stubdomain() depending on > "xen-legacy-backend", if possible. > > (In xen_hvm_init_pc(), a call to xen_register_ioreq() opens another > xenstore, as `state->xenstore`.) And xen_register_ioreq() calls xen_be_init() anyway, so it wouldn't change much in practice (at least for now)... > (There's already been effort to build QEMU without legacy backends, that > stubdom check would break in this scenario.) -- Best Regards, Marek Marczykowski-Górecki Invisible Things Lab Attachment:
signature.asc
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |