Message ID | ef0bef56e682bff2aaa04250212bc2c3fd9ed8ce.1579055705.git-series.marmarek@invisiblethingslab.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add support for qemu-xen runnning in a Linux-based stubdomain. | expand |
On Tue, Jan 14, 2020 at 9:41 PM Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> wrote: > > Do not prohibit anymore using stubdomain with qemu-xen. > To help distingushing MiniOS and Linux stubdomain, add helper inline > functions libxl__stubdomain_is_linux() and > libxl__stubdomain_is_linux_running(). Those should be used where really > the difference is about MiniOS/Linux, not qemu-xen/qemu-xen-traditional. > > Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> > > --- > Changes in v3: > - new patch, instead of "libxl: Add "stubdomain_version" to > domain_build_info" > - helper functions as suggested by Ian Jackson > --- <snip> > --- a/tools/libxl/libxl_internal.h > +++ b/tools/libxl/libxl_internal.h > @@ -2299,6 +2299,23 @@ _hidden int libxl__device_model_version_running(libxl__gc *gc, uint32_t domid); > /* Return the system-wide default device model */ > _hidden libxl_device_model_version libxl__default_device_model(libxl__gc *gc); > > +static inline > +bool libxl__stubdomain_is_linux_running(libxl__gc *gc, uint32_t domid) This is unused in the series, as far as I can tell. Regards, Jason
On Mon, Jan 20, 2020 at 01:56:51PM -0500, Jason Andryuk wrote: > On Tue, Jan 14, 2020 at 9:41 PM Marek Marczykowski-Górecki > <marmarek@invisiblethingslab.com> wrote: > > > > Do not prohibit anymore using stubdomain with qemu-xen. > > To help distingushing MiniOS and Linux stubdomain, add helper inline > > functions libxl__stubdomain_is_linux() and > > libxl__stubdomain_is_linux_running(). Those should be used where really > > the difference is about MiniOS/Linux, not qemu-xen/qemu-xen-traditional. > > > > Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> > > > > --- > > Changes in v3: > > - new patch, instead of "libxl: Add "stubdomain_version" to > > domain_build_info" > > - helper functions as suggested by Ian Jackson > > --- > > <snip> > > > --- a/tools/libxl/libxl_internal.h > > +++ b/tools/libxl/libxl_internal.h > > @@ -2299,6 +2299,23 @@ _hidden int libxl__device_model_version_running(libxl__gc *gc, uint32_t domid); > > /* Return the system-wide default device model */ > > _hidden libxl_device_model_version libxl__default_device_model(libxl__gc *gc); > > > > +static inline > > +bool libxl__stubdomain_is_linux_running(libxl__gc *gc, uint32_t domid) > > This is unused in the series, as far as I can tell. Yes, all the calls are commented out, as exact same condition is implied from the context. But I think a canonical function to do that is still useful, if needed anywhere in the codebase in the future.
diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c index 32d45dc..142b960 100644 --- a/tools/libxl/libxl_create.c +++ b/tools/libxl/libxl_create.c @@ -169,15 +169,6 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc, } } - if (b_info->type == LIBXL_DOMAIN_TYPE_HVM && - b_info->device_model_version != - LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL && - libxl_defbool_val(b_info->device_model_stubdomain)) { - LOG(ERROR, - "device model stubdomains require \"qemu-xen-traditional\""); - return ERROR_INVAL; - } - if (!b_info->max_vcpus) b_info->max_vcpus = 1; if (!b_info->avail_vcpus.size) { diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h index ba8c9b4..cc3cf26 100644 --- a/tools/libxl/libxl_internal.h +++ b/tools/libxl/libxl_internal.h @@ -2299,6 +2299,23 @@ _hidden int libxl__device_model_version_running(libxl__gc *gc, uint32_t domid); /* Return the system-wide default device model */ _hidden libxl_device_model_version libxl__default_device_model(libxl__gc *gc); +static inline +bool libxl__stubdomain_is_linux_running(libxl__gc *gc, uint32_t domid) +{ + /* same logic as in libxl__stubdomain_is_linux */ + return libxl__device_model_version_running(gc, domid) + == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN; +} + +static inline +bool libxl__stubdomain_is_linux(libxl_domain_build_info *b_info) +{ + /* right now qemu-tranditional implies MiniOS stubdomain and qemu-xen + * implies Linux stubdomain */ + return libxl_defbool_val(b_info->device_model_stubdomain) && + b_info->device_model_version == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN; +} + #define DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, fmt, _a...) \ libxl__sprintf(gc, "/local/domain/%u/device-model/%u" fmt, dm_domid, \ domid, ##_a)
Do not prohibit anymore using stubdomain with qemu-xen. To help distingushing MiniOS and Linux stubdomain, add helper inline functions libxl__stubdomain_is_linux() and libxl__stubdomain_is_linux_running(). Those should be used where really the difference is about MiniOS/Linux, not qemu-xen/qemu-xen-traditional. Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> --- Changes in v3: - new patch, instead of "libxl: Add "stubdomain_version" to domain_build_info" - helper functions as suggested by Ian Jackson --- tools/libxl/libxl_create.c | 9 --------- tools/libxl/libxl_internal.h | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 9 deletions(-)