aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxl
diff options
context:
space:
mode:
authorGeorge Dunlap <george.dunlap@eu.citrix.com>2013-05-24 16:20:59 +0100
committerIan Campbell <ian.campbell@citrix.com>2013-05-30 09:35:34 +0100
commit5479961ab55e118b8c80db7724721e78743363c7 (patch)
tree42a26238728b3c740b1678800b1cc16cf4fc0065 /tools/libxl
parent9da60855040d480d7269ac7717e27bd9e8106bf0 (diff)
downloadxen-5479961ab55e118b8c80db7724721e78743363c7.tar.gz
xen-5479961ab55e118b8c80db7724721e78743363c7.tar.bz2
xen-5479961ab55e118b8c80db7724721e78743363c7.zip
libxl: Remove qxl support for the 4.3 release
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 <george.dunlap@eu.citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com>
Diffstat (limited to 'tools/libxl')
-rw-r--r--tools/libxl/libxl_create.c16
-rw-r--r--tools/libxl/libxl_dm.c13
-rw-r--r--tools/libxl/libxl_types.idl1
-rw-r--r--tools/libxl/xl_cmdimpl.c2
4 files changed, 0 insertions, 32 deletions
diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
index cb9c822785..0c32d0b143 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 1e3a9f4db8..ac1f90e531 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 8262cba623..d218a2d3d1 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 c5292f40f7..8a478ba610 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);