[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] libxl: Allow 4 MB of video RAM for Cirrus graphics on traditional QEMU
On Thu, 24 Oct 2013, Rob Hoes wrote: > VMs using Cirrus graphics have always had 4 MB of video RAM on XenServer, > while > libxl currently does not allow values less than 8 MB. > > Signed-off-by: Rob Hoes <rob.hoes@xxxxxxxxxx> > Tested-by: Fabio Fantoni <fabio.fantoni@xxxxxxx> It looks OK > ---- > v2: Fixed style issues. > --- > docs/man/xl.cfg.pod.5 | 18 ++++++++------- > tools/libxl/libxl_create.c | 53 > ++++++++++++++++++++++++++++++++++---------- > 2 files changed, 51 insertions(+), 20 deletions(-) > > diff --git a/docs/man/xl.cfg.pod.5 b/docs/man/xl.cfg.pod.5 > index 278dba1..d2d8921 100644 > --- a/docs/man/xl.cfg.pod.5 > +++ b/docs/man/xl.cfg.pod.5 > @@ -1028,14 +1028,16 @@ in the B<VFB_SPEC_STRING> for configuring virtual > frame buffer devices > Sets the amount of RAM which the emulated video card will contain, > which in turn limits the resolutions and bit depths which will be > available. > -The default amount of video ram for stdvga is 8MB which is sufficient > -for e.g. 1600x1200 at 32bpp and videoram option is currently working > -only when using the qemu-xen-traditional device-model. > - > -When using the emulated Cirrus graphics card (B<vga="cirrus">) > -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. > + > +When using the qemu-xen-traditional device-model, the default as well as > +minimum amount of video RAM for stdvga is 8 MB, which is sufficient for e.g. > +1600x1200 at 32bpp. For the upstream qemu-xen device-model, the default and > +minimum is 16 MB. > + > +When using the emulated Cirrus graphics card (B<vga="cirrus">) and the > +qemu-xen-traditional device-model, the amount of video RAM is fixed at 4 MB, > +which is sufficient for 1024x768 at 32 bpp. For the upstream qemu-xen > +device-model, the default and minimum is 8 MB. > > =item B<stdvga=BOOLEAN> > > diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c > index 1b320d3..9d793ba 100644 > --- a/tools/libxl/libxl_create.c > +++ b/tools/libxl/libxl_create.c > @@ -216,20 +216,51 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc, > if (b_info->shadow_memkb == LIBXL_MEMKB_DEFAULT) > b_info->shadow_memkb = 0; > > - if (b_info->u.hvm.vga.kind == LIBXL_VGA_INTERFACE_TYPE_STD && > - b_info->device_model_version == > - LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN) { > + if (!b_info->u.hvm.vga.kind) > + b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_CIRRUS; > + > + switch (b_info->device_model_version) { > + case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: > + switch (b_info->u.hvm.vga.kind) { > + case LIBXL_VGA_INTERFACE_TYPE_STD: > + if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT) > + b_info->video_memkb = 8 * 1024; > + if (b_info->video_memkb < 8 * 1024) { > + LOG(ERROR, "videoram must be at least 8 MB for STDVGA on > QEMU_XEN_TRADITIONAL"); > + return ERROR_INVAL; > + } > + break; > + case LIBXL_VGA_INTERFACE_TYPE_CIRRUS: > + default: > + if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT) > + b_info->video_memkb = 4 * 1024; > + if (b_info->video_memkb != 4 * 1024) > + LOG(WARN, "ignoring videoram other than 4 MB for CIRRUS > on QEMU_XEN_TRADITIONAL"); > + break; > + } > + break; > + case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN: > + default: > + switch (b_info->u.hvm.vga.kind) { > + case LIBXL_VGA_INTERFACE_TYPE_STD: > if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT) > b_info->video_memkb = 16 * 1024; > - else if (b_info->video_memkb < (16 * 1024) ){ > - LOG(ERROR, "videoram must be at least 16 mb with > stdvga"); > + if (b_info->video_memkb < 16 * 1024) { > + LOG(ERROR, "videoram must be at least 16 MB for STDVGA > on QEMU_XEN"); > + return ERROR_INVAL; > + } > + break; > + case LIBXL_VGA_INTERFACE_TYPE_CIRRUS: > + default: > + if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT) > + b_info->video_memkb = 8 * 1024; > + if (b_info->video_memkb < 8 * 1024) { > + LOG(ERROR, "videoram must be at least 8 MB for CIRRUS on > QEMU_XEN"); > return ERROR_INVAL; > } > - } else if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT) > - b_info->video_memkb = 8 * 1024; > - else if (b_info->video_memkb < (8 * 1024) ){ > - LOG(ERROR,"videoram must be at least 8 mb"); > - return ERROR_INVAL; > + break; > + } > + break; > } > > if (b_info->u.hvm.timer_mode == LIBXL_TIMER_MODE_DEFAULT) > @@ -254,8 +285,6 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc, > if (!b_info->u.hvm.boot) return ERROR_NOMEM; > } > > - if (!b_info->u.hvm.vga.kind) > - b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_CIRRUS; > libxl_defbool_setdefault(&b_info->u.hvm.vnc.enable, true); > if (libxl_defbool_val(b_info->u.hvm.vnc.enable)) { > libxl_defbool_setdefault(&b_info->u.hvm.vnc.findunused, true); > -- > 1.7.10.4 > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |