From xen-devel-bounces@lists.xen.org Fri May 24 16:23:03 2013 Received: (at maildrop) by bugs.xenproject.org; 24 May 2013 15:23:03 +0000 Received: from lists.xen.org ([50.57.142.19]) by bugs.xenproject.org with esmtp (Exim 4.72) (envelope-from ) id 1Uftpf-0001zr-Bf for xen-devel-maildrop-Eithu9ie@bugs.xenproject.org; Fri, 24 May 2013 16:23:03 +0100 Received: from localhost ([127.0.0.1] helo=lists.xen.org) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1Uftnr-0003yz-8g; Fri, 24 May 2013 15:21:11 +0000 Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1Uftnp-0003yr-FG for xen-devel@lists.xen.org; Fri, 24 May 2013 15:21:09 +0000 Received: from [85.158.139.83:59373] by server-12.bemta-5.messagelabs.com id F6/48-16465-4658F915; Fri, 24 May 2013 15:21:08 +0000 X-Env-Sender: George.Dunlap@eu.citrix.com X-Msg-Ref: server-14.tower-182.messagelabs.com!1369408863!24656804!1 X-Originating-IP: [66.165.176.63] X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n X-StarScan-Received: X-StarScan-Version: 6.9.6; banners=-,-,- X-VirusChecked: Checked Received: (qmail 20683 invoked from network); 24 May 2013 15:21:05 -0000 Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63) by server-14.tower-182.messagelabs.com with RC4-SHA encrypted SMTP; 24 May 2013 15:21:05 -0000 X-IronPort-AV: E=Sophos;i="4.87,736,1363132800"; d="scan'208";a="26031950" Received: from accessns.citrite.net (HELO FTLPEX01CL02.citrite.net) ([10.9.154.239]) by FTLPIPO02.CITRIX.COM with ESMTP/TLS/AES128-SHA; 24 May 2013 15:21:02 +0000 Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com (10.13.107.79) with Microsoft SMTP Server id 14.2.342.3; Fri, 24 May 2013 11:21:02 -0400 Received: from elijah.uk.xensource.com ([10.80.2.24]) by ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from ) id 1Uftni-00024b-6x; Fri, 24 May 2013 16:21:02 +0100 From: George Dunlap To: Date: Fri, 24 May 2013 16:20:59 +0100 Message-ID: <1369408859-2929-1-git-send-email-george.dunlap@eu.citrix.com> X-Mailer: git-send-email 1.7.9.5 MIME-Version: 1.0 Cc: George Dunlap , Ian Jackson , Fabio Fantoni , Ian Campbell Subject: [Xen-devel] [PATCH] libxl: Remove qxl support for the 4.3 release X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org The qxl drivers for Windows and Linux end up calling instructions that cannot be used for MMIO at the moment. Just for the 4.3 release, remove qxl support. This patch should be reverted as soon as the 4.4 development window opens. The issue in question: (XEN) emulate.c:88:d18 bad mmio size 16 (XEN) io.c:201:d18 MMIO emulation failed @ 0033:7fd2de390430: f3 0f 6f 19 41 83 e8 403 The instruction in question is "movdqu (%rcx),%xmm3". Xen knows how to emulate it, but unfortunately %xmm3 is 16 bytes long, and the interface between Xen and qemu at the moment would appear to only allow MMIO accesses of 8 bytes. It's too late in the release cycle to find a fix or a workaround. Signed-off-by: George Dunlap CC: Ian Jackson CC: Ian Campbell CC: Fabio Fantoni --- docs/man/xl.cfg.pod.5 | 10 +--------- tools/libxl/libxl_create.c | 16 ---------------- tools/libxl/libxl_dm.c | 13 ------------- tools/libxl/libxl_types.idl | 1 - tools/libxl/xl_cmdimpl.c | 2 -- 5 files changed, 1 insertion(+), 41 deletions(-) diff --git a/docs/man/xl.cfg.pod.5 b/docs/man/xl.cfg.pod.5 index e0c3bb2..a0c7430 100644 --- a/docs/man/xl.cfg.pod.5 +++ b/docs/man/xl.cfg.pod.5 @@ -1005,9 +1005,6 @@ 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 vga, the default is both default and minimal 128MB. -If B is set less than 128MB, an error will be triggered. - =item B Select a standard VGA card with VBE (VESA BIOS Extensions) as the @@ -1019,14 +1016,9 @@ This option is deprecated, use vga="stdvga" instead. =item B -Selects the emulated video card (stdvga|cirrus|qxl). +Selects the emulated video card (stdvga|cirrus). 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 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 cb9c822..0c32d0b 100644 --- a/tools/libxl/libxl_create.c +++ b/tools/libxl/libxl_create.c @@ -213,22 +213,6 @@ 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_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->u.hvm.vga.kind == LIBXL_VGA_INTERFACE_TYPE_STD && b_info->device_model_version == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN) { diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c index d10a58f..4e56ffa 100644 --- a/tools/libxl/libxl_dm.c +++ b/tools/libxl/libxl_dm.c @@ -191,8 +191,6 @@ 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) { @@ -479,17 +477,6 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc, libxl__sizekb_to_mb(b_info->video_memkb)), 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", - GCSPRINTF("qxl-vga.vram_size_mb=%"PRIu64, - (b_info->video_memkb/2/1024)), "-global", - GCSPRINTF("qxl-vga.ram_size_mb=%"PRIu64, - (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 8262cba..d218a2d 100644 --- a/tools/libxl/libxl_types.idl +++ b/tools/libxl/libxl_types.idl @@ -130,7 +130,6 @@ 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 e13a64e..148320c 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -1456,8 +1456,6 @@ 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, "qxl")) { - b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_QXL; } else { fprintf(stderr, "Unknown vga \"%s\" specified\n", buf); exit(1); -- 1.7.9.5 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel