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

Re: [Xen-devel] [PATCH v3 RESEND] libxl: Add none to vga parameter



Il 11/03/2014 16:09, Paul Durrant ha scritto:
-----Original Message-----
From: xen-devel-bounces@xxxxxxxxxxxxx [mailto:xen-devel-
bounces@xxxxxxxxxxxxx] On Behalf Of Fabio Fantoni
Sent: 22 February 2014 10:37
To: xen-devel@xxxxxxxxxxxxxxxxxxx
Cc: Anthony Perard; Fabio Fantoni; Ian Jackson; Ian Campbell; Stefano
Stabellini
Subject: [Xen-devel] [PATCH v3 RESEND] libxl: Add none to vga parameter

Usage:
   vga="none"

Make possible to not have an emulated vga on hvm domUs.

Signed-off-by: Fabio Fantoni <fabio.fantoni@xxxxxxx>

---

Changes in v3:
- set video_memkb to 0 if vga is none.
- remove a check on one condition no more needed.

Changes in v2:
- libxl_dm.c:
  if vga is none, on qemu traditional:
   - add -vga none parameter.
   - do not add -videoram parameter.

---
  docs/man/xl.cfg.pod.5       |    2 +-
  tools/libxl/libxl_create.c  |    6 ++++++
  tools/libxl/libxl_dm.c      |    5 +++++
  tools/libxl/libxl_types.idl |    1 +
  tools/libxl/xl_cmdimpl.c    |    2 ++
  5 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/docs/man/xl.cfg.pod.5 b/docs/man/xl.cfg.pod.5
index e15a49f..2f36143 100644
--- a/docs/man/xl.cfg.pod.5
+++ b/docs/man/xl.cfg.pod.5
@@ -1082,7 +1082,7 @@ This option is deprecated, use vga="stdvga"
instead.

  =item B<vga="STRING">

-Selects the emulated video card (stdvga|cirrus).
+Selects the emulated video card (none|stdvga|cirrus).
  The default is cirrus.

  =item B<vnc=BOOLEAN>
diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
index a604cd8..9110394 100644
--- a/tools/libxl/libxl_create.c
+++ b/tools/libxl/libxl_create.c
@@ -226,6 +226,9 @@ int libxl__domain_build_info_setdefault(libxl__gc
*gc,
          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_NONE:
+                b_info->video_memkb = 0;
I've just been testing this patch in conjunction with my secondary emulator 
series and this zeroing of the video memory is problematic. I've implemented a 
secondary console emulator and so still need a vram allocation, so can we still 
allow a specified videoram value even if the default is zero?

   Paul

If I remember correctly video_memkb is set with xl parameter "videoram" before setdefault of libxl_create.c, therefore the video_memkb will be 0 anyway.
I added zeroing of video_memkb after advice of anthony perard:
http://lists.xen.org/archives/html/xen-devel/2013-11/msg03692.html
The patch v2 didn't set videoram to zero and it works. If zeroing of videoram is not needed for something else we could just revert the change made in v3, otherwise we need to make "videoram" xl parameter work despite the zeroing. Can Anthony perard or someone else tell me if it is necessary to set to zero the videoram if an emulated video card is not present?

Thanks for any reply.


+                break;
              case LIBXL_VGA_INTERFACE_TYPE_STD:
                  if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
                      b_info->video_memkb = 8 * 1024;
@@ -246,6 +249,9 @@ int libxl__domain_build_info_setdefault(libxl__gc
*gc,
          case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
          default:
              switch (b_info->u.hvm.vga.kind) {
+            case LIBXL_VGA_INTERFACE_TYPE_NONE:
+                b_info->video_memkb = 0;
+                break;
              case LIBXL_VGA_INTERFACE_TYPE_STD:
                  if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
                      b_info->video_memkb = 16 * 1024;
diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
index f6f7bbd..761bb61 100644
--- a/tools/libxl/libxl_dm.c
+++ b/tools/libxl/libxl_dm.c
@@ -217,6 +217,9 @@ static char **
libxl__build_device_model_args_old(libxl__gc *gc,
              break;
          case LIBXL_VGA_INTERFACE_TYPE_CIRRUS:
              break;
+        case LIBXL_VGA_INTERFACE_TYPE_NONE:
+            flexarray_append_pair(dm_args, "-vga", "none");
+            break;
          }

          if (b_info->u.hvm.boot) {
@@ -515,6 +518,8 @@ static char **
libxl__build_device_model_args_new(libxl__gc *gc,
                  GCSPRINTF("vga.vram_size_mb=%d",
                  libxl__sizekb_to_mb(b_info->video_memkb)));
              break;
+        case LIBXL_VGA_INTERFACE_TYPE_NONE:
+            break;
          }

          if (b_info->u.hvm.boot) {
diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
index 649ce50..b5a8387 100644
--- a/tools/libxl/libxl_types.idl
+++ b/tools/libxl/libxl_types.idl
@@ -153,6 +153,7 @@ libxl_shutdown_reason =
Enumeration("shutdown_reason", [
  libxl_vga_interface_type = Enumeration("vga_interface_type", [
      (1, "CIRRUS"),
      (2, "STD"),
+    (3, "NONE"),
      ], init_val = 1)

  libxl_vendor_device = Enumeration("vendor_device", [
diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
index 4fc46eb..4d720b4 100644
--- a/tools/libxl/xl_cmdimpl.c
+++ b/tools/libxl/xl_cmdimpl.c
@@ -1667,6 +1667,8 @@ skip_vfb:
                  b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_STD;
              } else if (!strcmp(buf, "cirrus")) {
                  b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_CIRRUS;
+            } else if (!strcmp(buf, "none")) {
+                b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_NONE;
              } else {
                  fprintf(stderr, "Unknown vga \"%s\" specified\n", buf);
                  exit(1);
--
1.7.9.5


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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