[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v9] tools/libxl: Add qxl vga interface support for upstream qemu
On Mon, 11 Feb 2013, fantonifabio@xxxxxxxxxx wrote: > From: Fabio Fantoni <fabio.fantoni@xxxxxxxxxx> > > Usage: > vga="qxl" > > Changes from v8: > - vga=qxl instead of qxl=1 to use it. > - Show an error and exit if vga="qxl" without qemu upstream. > - Other small improvements. > > Required patches: > - Improve videoram setting v5 > - Added vga parameter for hvm domUs > > Signed-off-by: Fabio Fantoni <fabio.fantoni@xxxxxxxxxx> > Signed-off-by: Zhou Peng <zpengxen@xxxxxxxxx> Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> > docs/man/xl.cfg.pod.5 | 10 +++++++++- > tools/libxl/libxl_create.c | 17 +++++++++++++++++ > tools/libxl/libxl_dm.c | 13 +++++++++++++ > tools/libxl/libxl_types.idl | 1 + > tools/libxl/xl_cmdimpl.c | 3 +++ > 5 files changed, 43 insertions(+), 1 deletion(-) > > diff --git a/docs/man/xl.cfg.pod.5 b/docs/man/xl.cfg.pod.5 > index 9862842..a3b3645 100644 > --- a/docs/man/xl.cfg.pod.5 > +++ b/docs/man/xl.cfg.pod.5 > @@ -984,6 +984,9 @@ the amount of video ram is fixed at 4MB which is > sufficient > for 1024x768 at 32 bpp and videoram option is currently working > only when using the upstream qemu-xen device-model. > > +For B<qxl> vga, the default is both default and minimal 128MB. > +If B<videoram> is set less than 128MB, an error will be triggered. > + > =item B<stdvga=BOOLEAN> > > Select a standard VGA card with VBE (VESA BIOS Extensions) as the > @@ -995,9 +998,14 @@ This option is deprecated, use vga="stdvga" instead. > > =item B<vga="STRING"> > > -Selects the emulated video card (stdvga|cirrus). > +Selects the emulated video card (stdvga|cirrus|qxl). > The default is cirrus. > > +In general, QXL should work with the Spice remote display protocol > +for acceleration, and QXL driver is necessary in guest in this case. > +QXL can also work with the VNC protocol, but it will be like a standard > +VGA without acceleration. > + > =item B<vnc=BOOLEAN> > > Allow access to the display via the VNC protocol. This enables the > diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c > index cf545ef..67b5e6e 100644 > --- a/tools/libxl/libxl_create.c > +++ b/tools/libxl/libxl_create.c > @@ -197,6 +197,23 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc, > case LIBXL_DOMAIN_TYPE_HVM: > if (b_info->shadow_memkb == LIBXL_MEMKB_DEFAULT) > b_info->shadow_memkb = 0; > + > + if (b_info->u.hvm.vga.kind == LIBXL_VGA_INTERFACE_TYPE_QXL) { > + if (b_info->device_model_version == > + LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN) { > + if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT) { > + b_info->video_memkb = (128 * 1024); > + }else if (b_info->video_memkb < (128 * 1024)) { > + LOG(ERROR, > + "128 Mib videoram is the minimum for qxl default"); > + return ERROR_INVAL; > + } > + } else { > + LOG(ERROR,"qemu upstream required for qxl vga"); > + return ERROR_INVAL; > + } > + } > + > if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT) > b_info->video_memkb = 8 * 1024; > else if (b_info->video_memkb < 8192){ > diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c > index a2c99bd..59fc86a 100644 > --- a/tools/libxl/libxl_dm.c > +++ b/tools/libxl/libxl_dm.c > @@ -181,6 +181,8 @@ static char ** > libxl__build_device_model_args_old(libxl__gc *gc, > break; > case LIBXL_VGA_INTERFACE_TYPE_CIRRUS: > break; > + case LIBXL_VGA_INTERFACE_TYPE_QXL: > + break; > } > > if (b_info->u.hvm.boot) { > @@ -440,6 +442,17 @@ static char ** > libxl__build_device_model_args_new(libxl__gc *gc, > NULL); > } > break; > + case LIBXL_VGA_INTERFACE_TYPE_QXL: > + /*QXL have 2 ram regions, ram and vram*/ > + flexarray_vappend(dm_args, "-vga", "qxl", NULL); > + if (b_info->video_memkb) { > + flexarray_vappend(dm_args, "-global", > + libxl__sprintf(gc, "qxl-vga.vram_size_mb=%lu", > + (b_info->video_memkb/2/1024)), "-global", > + libxl__sprintf(gc, "qxl-vga.ram_size_mb=%lu", > + (b_info->video_memkb/2/1024)), NULL); > + } > + break; > } > > if (b_info->u.hvm.boot) { > diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl > index acc4bc9..3f90f12 100644 > --- a/tools/libxl/libxl_types.idl > +++ b/tools/libxl/libxl_types.idl > @@ -130,6 +130,7 @@ libxl_shutdown_reason = Enumeration("shutdown_reason", [ > libxl_vga_interface_type = Enumeration("vga_interface_type", [ > (1, "CIRRUS"), > (2, "STD"), > + (3, "QXL"), > ], init_val = 0) > > # > diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c > index f9101ba..b20c185 100644 > --- a/tools/libxl/xl_cmdimpl.c > +++ b/tools/libxl/xl_cmdimpl.c > @@ -1476,6 +1476,9 @@ skip_vfb: > } else if (!strcmp(buf, "cirrus")) { > b_info->u.hvm.vga.kind > = LIBXL_VGA_INTERFACE_TYPE_CIRRUS; > + }else if (!strcmp(buf, "qxl")) { > + b_info->u.hvm.vga.kind > + = LIBXL_VGA_INTERFACE_TYPE_QXL; > } else { > fprintf(stderr, > "Unknown vga \"%s\" specified\n", buf); > -- > 1.7.9.5 > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |