f158f55e6a
xen-4.5.2-testing-src.tar.bz2 - Drop the following xen-4.5.1-testing-src.tar.bz2 552d0f49-x86-traps-identify-the-vcpu-in-context-when-dumping-regs.patch 5576f178-kexec-add-more-pages-to-v1-environment.patch 55780be1-x86-EFI-adjust-EFI_MEMORY_WP-handling-for-spec-version-2.5.patch 558bfaa0-x86-traps-avoid-using-current-too-early.patch 5592a116-nested-EPT-fix-the-handling-of-nested-EPT.patch 559b9dd6-x86-p2m-ept-don-t-unmap-in-use-EPT-pagetable.patch 559bc633-x86-cpupool-clear-proper-cpu_valid-bit-on-CPU-teardown.patch 559bc64e-credit1-properly-deal-with-CPUs-not-in-any-pool.patch 559bc87f-x86-hvmloader-avoid-data-corruption-with-xenstore-rw.patch 559bdde5-pull-in-latest-linux-earlycpio.patch 55a62eb0-xl-correct-handling-of-extra_config-in-main_cpupoolcreate.patch 55a66a1e-make-rangeset_report_ranges-report-all-ranges.patch 55a77e4f-dmar-device-scope-mem-leak-fix.patch 55c1d83d-x86-gdt-Drop-write-only-xalloc-d-array.patch 55c3232b-x86-mm-Make-hap-shadow-teardown-preemptible.patch 55dc78e9-x86-amd_ucode-skip-updates-for-final-levels.patch 55df2f76-IOMMU-skip-domains-without-page-tables-when-dumping.patch 55e43fd8-x86-NUMA-fix-setup_node.patch 55e43ff8-x86-NUMA-don-t-account-hotplug-regions.patch 55e593f1-x86-NUMA-make-init_node_heap-respect-Xen-heap-limit.patch 55f2e438-x86-hvm-fix-saved-pmtimer-and-hpet-values.patch 55f9345b-x86-MSI-fail-if-no-hardware-support.patch 5604f2e6-vt-d-fix-IM-bit-mask-and-unmask-of-FECTL_REG.patch 560a4af9-x86-EPT-tighten-conditions-of-IOMMU-mapping-updates.patch 560a7c36-x86-p2m-pt-delay-freeing-of-intermediate-page-tables.patch 560a7c53-x86-p2m-pt-ignore-pt-share-flag-for-shadow-mode-guests.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=384
156 lines
6.3 KiB
Diff
156 lines
6.3 KiB
Diff
commit 161212ef02312c0681d2d809c8ff1e1f0ea6f6f9
|
|
Author: Fabio Fantoni <fabio.fantoni@m2r.biz>
|
|
Date: Wed Apr 29 11:20:28 2015 +0200
|
|
|
|
libxl: Add qxl vga interface support for upstream qemu
|
|
|
|
Usage:
|
|
vga="qxl"
|
|
|
|
Qxl vga support many resolutions that not supported by stdvga,
|
|
mainly the 16:9 ones and other high up to 2560x1600.
|
|
With QXL you can get improved performance and smooth video also
|
|
with high resolutions and high quality.
|
|
Require their drivers installed in the domU and spice used
|
|
otherwise act as a simple stdvga.
|
|
|
|
Signed-off-by: Fabio Fantoni <fabio.fantoni@m2r.biz>
|
|
Signed-off-by: Zhou Peng <zpengxen@gmail.com>
|
|
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
|
|
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
|
|
Acked-by: George Dunlap <george.dunlap@eu.citrix.com>
|
|
|
|
Index: xen-4.5.2-testing/docs/man/xl.cfg.pod.5
|
|
===================================================================
|
|
--- xen-4.5.2-testing.orig/docs/man/xl.cfg.pod.5
|
|
+++ xen-4.5.2-testing/docs/man/xl.cfg.pod.5
|
|
@@ -1294,6 +1294,9 @@ qemu-xen-traditional device-model, the a
|
|
which is sufficient for 1024x768 at 32 bpp. For the upstream qemu-xen
|
|
device-model, the default and minimum is 8 MB.
|
|
|
|
+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
|
|
@@ -1305,9 +1308,14 @@ This option is deprecated, use vga="stdv
|
|
|
|
=item B<vga="STRING">
|
|
|
|
-Selects the emulated video card (none|stdvga|cirrus).
|
|
+Selects the emulated video card (none|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
|
|
Index: xen-4.5.2-testing/tools/libxl/libxl.h
|
|
===================================================================
|
|
--- xen-4.5.2-testing.orig/tools/libxl/libxl.h
|
|
+++ xen-4.5.2-testing/tools/libxl/libxl.h
|
|
@@ -506,6 +506,16 @@ typedef struct libxl__ctx libxl_ctx;
|
|
#define LIBXL_HAVE_DOMINFO_OUTSTANDING_MEMKB 1
|
|
|
|
/*
|
|
+ * LIBXL_HAVE_QXL
|
|
+ *
|
|
+ * If defined, then the libxl_vga_interface_type will contain another value:
|
|
+ * "QXL". This value define if qxl vga is supported.
|
|
+ *
|
|
+ * If this is not defined, the qxl vga support is missed.
|
|
+ */
|
|
+#define LIBXL_HAVE_QXL 1
|
|
+
|
|
+/*
|
|
* LIBXL_HAVE_SPICE_VDAGENT
|
|
*
|
|
* If defined, then the libxl_spice_info structure will contain a boolean type:
|
|
Index: xen-4.5.2-testing/tools/libxl/libxl_create.c
|
|
===================================================================
|
|
--- xen-4.5.2-testing.orig/tools/libxl/libxl_create.c
|
|
+++ xen-4.5.2-testing/tools/libxl/libxl_create.c
|
|
@@ -240,6 +240,10 @@ int libxl__domain_build_info_setdefault(
|
|
if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
|
|
b_info->video_memkb = 0;
|
|
break;
|
|
+ case LIBXL_VGA_INTERFACE_TYPE_QXL:
|
|
+ LOG(ERROR,"qemu upstream required for qxl vga");
|
|
+ return ERROR_INVAL;
|
|
+ break;
|
|
case LIBXL_VGA_INTERFACE_TYPE_STD:
|
|
if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
|
|
b_info->video_memkb = 8 * 1024;
|
|
@@ -264,6 +268,15 @@ int libxl__domain_build_info_setdefault(
|
|
if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
|
|
b_info->video_memkb = 0;
|
|
break;
|
|
+ case LIBXL_VGA_INTERFACE_TYPE_QXL:
|
|
+ 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;
|
|
+ }
|
|
+ break;
|
|
case LIBXL_VGA_INTERFACE_TYPE_STD:
|
|
if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
|
|
b_info->video_memkb = 16 * 1024;
|
|
Index: xen-4.5.2-testing/tools/libxl/libxl_dm.c
|
|
===================================================================
|
|
--- xen-4.5.2-testing.orig/tools/libxl/libxl_dm.c
|
|
+++ xen-4.5.2-testing/tools/libxl/libxl_dm.c
|
|
@@ -253,6 +253,8 @@ static char ** libxl__build_device_model
|
|
case LIBXL_VGA_INTERFACE_TYPE_NONE:
|
|
flexarray_append_pair(dm_args, "-vga", "none");
|
|
break;
|
|
+ case LIBXL_VGA_INTERFACE_TYPE_QXL:
|
|
+ break;
|
|
}
|
|
|
|
if (b_info->u.hvm.boot) {
|
|
@@ -618,6 +620,12 @@ static char ** libxl__build_device_model
|
|
break;
|
|
case LIBXL_VGA_INTERFACE_TYPE_NONE:
|
|
break;
|
|
+ case LIBXL_VGA_INTERFACE_TYPE_QXL:
|
|
+ /* QXL have 2 ram regions, ram and vram */
|
|
+ flexarray_append_pair(dm_args, "-device",
|
|
+ GCSPRINTF("qxl-vga,vram_size_mb=%"PRIu64",ram_size_mb=%"PRIu64,
|
|
+ (b_info->video_memkb/2/1024), (b_info->video_memkb/2/1024) ) );
|
|
+ break;
|
|
}
|
|
|
|
if (b_info->u.hvm.boot) {
|
|
Index: xen-4.5.2-testing/tools/libxl/libxl_types.idl
|
|
===================================================================
|
|
--- xen-4.5.2-testing.orig/tools/libxl/libxl_types.idl
|
|
+++ xen-4.5.2-testing/tools/libxl/libxl_types.idl
|
|
@@ -181,6 +181,7 @@ libxl_vga_interface_type = Enumeration("
|
|
(1, "CIRRUS"),
|
|
(2, "STD"),
|
|
(3, "NONE"),
|
|
+ (4, "QXL"),
|
|
], init_val = "LIBXL_VGA_INTERFACE_TYPE_CIRRUS")
|
|
|
|
libxl_vendor_device = Enumeration("vendor_device", [
|
|
Index: xen-4.5.2-testing/tools/libxl/xl_cmdimpl.c
|
|
===================================================================
|
|
--- xen-4.5.2-testing.orig/tools/libxl/xl_cmdimpl.c
|
|
+++ xen-4.5.2-testing/tools/libxl/xl_cmdimpl.c
|
|
@@ -1910,6 +1910,8 @@ skip_vfb:
|
|
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 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);
|