On Mon, Oct 30, 2017 at 8:11 PM, Wei Liu <wei.l...@citrix.com> wrote:

> On Thu, Oct 05, 2017 at 12:07:08PM +0300, Oleksandr Grytsov wrote:
> > From: Oleksandr Grytsov <oleksandr_gryt...@epam.com>
> >
> > 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_gryt...@epam.com>
> > ---
> >  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@lists.xen.org
https://lists.xen.org/xen-devel

Reply via email to