[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 3/6] libxl: add backend type to vkb



On Mon, Oct 30, 2017 at 8:11 PM, Wei Liu <wei.liu2@xxxxxxxxxx> wrote:
On Thu, Oct 05, 2017 at 12:07:08PM +0300, Oleksandr Grytsov wrote:
> From: Oleksandr Grytsov <oleksandr_grytsov@xxxxxxxx>
>
> New field backend_type is added to vkb device
> in order to have QEMU and user space backend
> simultaneously. Each vkb backend shall read
> appropriate XS entry and service only own
> frontends.
>
> Signed-off-by: Oleksandr Grytsov <oleksandr_grytsov@xxxxxxxx>
> ---
>  tools/libxl/libxl_create.c  |  4 ++++
>  tools/libxl/libxl_dm.c      |  2 ++
>  tools/libxl/libxl_types.idl |  7 +++++++
>  tools/libxl/libxl_vkb.c     | 10 +++++++++-
>  tools/xl/xl_parse.c         |  4 ++++
>  5 files changed, 26 insertions(+), 1 deletion(-)
>
> diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
> index f813114..7268f7f 100644
> --- a/tools/libxl/libxl_create.c
> +++ b/tools/libxl/libxl_create.c
> @@ -1349,6 +1349,7 @@ static void domcreate_launch_dm(libxl__egc *egc, libxl__multidev *multidev,
>          }
>
>          libxl_device_vkb_init(&vkb);
> +        vkb.backend_type = LIBXL_VKB_BACKEND_QEMU;

Hmm... See below.

>          libxl__device_add(gc, domid, &libxl__vkb_devtype, &vkb);
>          libxl_device_vkb_dispose(&vkb);
>
> @@ -1376,6 +1377,9 @@ static void domcreate_launch_dm(libxl__egc *egc, libxl__multidev *multidev,
>          for (i = 0; i < d_config->num_vfbs; i++) {
>              libxl__device_add(gc, domid, &libxl__vfb_devtype,
>                                &d_config->vfbs[i]);
> +        }
> +
> +        for (i = 0; i < d_config->num_vkbs; i++) {
>              libxl__device_add(gc, domid, &libxl__vkb_devtype,
>                                &d_config->vkbs[i]);
>          }
> diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
> index 98f89a9..d8b0ee7 100644
> --- a/tools/libxl/libxl_dm.c
> +++ b/tools/libxl/libxl_dm.c
> @@ -1728,6 +1728,8 @@ static int libxl__vfb_and_vkb_from_hvm_guest_config(libxl__gc *gc,
>
>      vkb->backend_domid = 0;
>      vkb->devid = 0;
> +    vkb->backend_type = LIBXL_VKB_BACKEND_QEMU;
> +
>      return 0;
>  }
>
> diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
> index cd0c06f..65cd81a 100644
> --- a/tools/libxl/libxl_types.idl
> +++ b/tools/libxl/libxl_types.idl
> @@ -240,6 +240,12 @@ libxl_checkpointed_stream = Enumeration("checkpointed_stream", [
>      (2, "COLO"),
>      ])
>
> +libxl_vkb_backend = Enumeration("vkb_backend", [
> +    (0, "UNKNOWN"),
> +    (1, "QEMU"),
> +    (2, "LINUX")
> +    ])

Originally this is only internal detail, but now you want to expose
this.  You need to set the default value for this; otherwise you could
break migration.

Yes, I will set default to QEMU.
 

And then you also need to provide a setdefault function for
libxl_device_vkb.

Also I'm a bit confused because the LINUX type is not used in this
series.

LINUX type will be used by the linux backend. libxl just set the xenstore entry.
The linux backend will service only frontend which has LINUX type.

--
Best Regards,
Oleksandr Grytsov.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.