[libvirt] [PATCH] Revert "qemu: Use heads parameter for QXL driver"

This reverts commit 7b401c3bdacdf8367a0070e625d73eafb802045d. Until libvirt is able to differentiate whether heads='1' is just a leftover from previous libvirt or whether that's added by user on purpose and also whether the domain was started with the support for qxl's max_outputs, we cannot incorporate this patch into the tree due to compatibility reasons. Signed-off-by: Martin Kletzander <mkletzan@redhat.com> --- The discussion about this can be found in this thread: https://www.redhat.com/archives/libvir-list/2015-July/msg00808.html src/qemu/qemu_capabilities.c | 2 -- src/qemu/qemu_capabilities.h | 1 - src/qemu/qemu_command.c | 5 ---- .../qemuxml2argv-video-qxl-device-max-outputs.args | 7 ------ .../qemuxml2argv-video-qxl-device-max-outputs.xml | 29 ---------------------- tests/qemuxml2argvtest.c | 3 --- 6 files changed, 47 deletions(-) delete mode 100644 tests/qemuxml2argvdata/qemuxml2argv-video-qxl-device-max-outputs.args delete mode 100644 tests/qemuxml2argvdata/qemuxml2argv-video-qxl-device-max-outputs.xml diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 0769316fe999..d8cb32d77761 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -288,7 +288,6 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST, "vhost-user-multiqueue", /* 190 */ "migration-event", - "qxl-vga.max_outputs", ); @@ -1652,7 +1651,6 @@ static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsQxl[] = { static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsQxlVga[] = { { "vgamem_mb", QEMU_CAPS_QXL_VGA_VGAMEM }, - { "max_outputs", QEMU_CAPS_QXL_VGA_MAX_OUTPUTS }, }; struct virQEMUCapsObjectTypeProps { diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 88116afc4dab..f77bd06ec38d 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -231,7 +231,6 @@ typedef enum { QEMU_CAPS_CPU_AARCH64_OFF = 189, /* -cpu ...,aarch64=off */ QEMU_CAPS_VHOSTUSER_MULTIQUEUE = 190, /* vhost-user with -netdev queues= */ QEMU_CAPS_MIGRATION_EVENT = 191, /* MIGRATION event */ - QEMU_CAPS_QXL_VGA_MAX_OUTPUTS = 192, /* qxl-vga.max_outputs */ QEMU_CAPS_LAST, /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 34a0574be294..42906a898b36 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -5684,11 +5684,6 @@ qemuBuildDeviceVideoStr(virDomainDefPtr def, /* QEMU accepts mebibytes for vgamem_mb. */ virBufferAsprintf(&buf, ",vgamem_mb=%u", video->vgamem / 1024); } - - if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_QXL_VGA_MAX_OUTPUTS) && - video->heads > 0) { - virBufferAsprintf(&buf, ",max_outputs=%u", video->heads); - } } else if (video->vram && ((video->type == VIR_DOMAIN_VIDEO_TYPE_VGA && virQEMUCapsGet(qemuCaps, QEMU_CAPS_VGA_VGAMEM)) || diff --git a/tests/qemuxml2argvdata/qemuxml2argv-video-qxl-device-max-outputs.args b/tests/qemuxml2argvdata/qemuxml2argv-video-qxl-device-max-outputs.args deleted file mode 100644 index bb477a9b4a5f..000000000000 --- a/tests/qemuxml2argvdata/qemuxml2argv-video-qxl-device-max-outputs.args +++ /dev/null @@ -1,7 +0,0 @@ -LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ -/usr/bin/qemu -S -M pc -m 1024 -smp 1 -nographic -nodefaults \ --monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -usb \ --hda /var/lib/libvirt/images/QEMUGuest1 \ --device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vgamem_mb=16\ -,max_outputs=3,bus=pci.0,addr=0x2 -device virtio-balloon-pci,id=balloon0\ -,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/qemuxml2argv-video-qxl-device-max-outputs.xml b/tests/qemuxml2argvdata/qemuxml2argv-video-qxl-device-max-outputs.xml deleted file mode 100644 index 9426efc917d4..000000000000 --- a/tests/qemuxml2argvdata/qemuxml2argv-video-qxl-device-max-outputs.xml +++ /dev/null @@ -1,29 +0,0 @@ -<domain type='qemu'> - <name>QEMUGuest1</name> - <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> - <memory unit='KiB'>1048576</memory> - <currentMemory unit='KiB'>1048576</currentMemory> - <vcpu>1</vcpu> - <os> - <type arch='i686' machine='pc'>hvm</type> - <boot dev='hd'/> - </os> - <clock offset='utc'/> - <on_poweroff>destroy</on_poweroff> - <on_reboot>restart</on_reboot> - <on_crash>destroy</on_crash> - <devices> - <emulator>/usr/bin/qemu</emulator> - <disk type='file' device='disk'> - <driver name='qemu' type='qcow2' cache='none'/> - <source file='/var/lib/libvirt/images/QEMUGuest1'/> - <target dev='hda' bus='ide'/> - <address type='drive' controller='0' bus='0' target='0' unit='0'/> - </disk> - <controller type='ide' index='0'/> - <video> - <model type='qxl' heads='3'/> - </video> - <memballoon model='virtio'/> - </devices> -</domain> diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 4cd6892fe0de..f9b30d978171 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -1441,9 +1441,6 @@ mymain(void) DO_TEST("video-qxl-device-vgamem", QEMU_CAPS_DEVICE, QEMU_CAPS_DEVICE_QXL_VGA, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_QXL_VGA_VGAMEM); - DO_TEST("video-qxl-device-max-outputs", QEMU_CAPS_DEVICE, - QEMU_CAPS_DEVICE_QXL_VGA, QEMU_CAPS_DEVICE_VIDEO_PRIMARY, - QEMU_CAPS_QXL_VGA_VGAMEM, QEMU_CAPS_QXL_VGA_MAX_OUTPUTS); DO_TEST_FAILURE("video-qxl-sec-nodevice", QEMU_CAPS_VGA, QEMU_CAPS_VGA_QXL); DO_TEST("video-qxl-sec-device", QEMU_CAPS_DEVICE, QEMU_CAPS_DEVICE_QXL_VGA, QEMU_CAPS_DEVICE_QXL, QEMU_CAPS_DEVICE_VIDEO_PRIMARY); -- 2.4.6

On Wed, Jul 22, 2015 at 10:05:48AM +0200, Martin Kletzander wrote:
This reverts commit 7b401c3bdacdf8367a0070e625d73eafb802045d.
Until libvirt is able to differentiate whether heads='1' is just a leftover from previous libvirt or whether that's added by user on purpose and also whether the domain was started with the support for qxl's max_outputs, we cannot incorporate this patch into the tree due to compatibility reasons.
Signed-off-by: Martin Kletzander <mkletzan@redhat.com> --- The discussion about this can be found in this thread: https://www.redhat.com/archives/libvir-list/2015-July/msg00808.html
src/qemu/qemu_capabilities.c | 2 -- src/qemu/qemu_capabilities.h | 1 - src/qemu/qemu_command.c | 5 ---- .../qemuxml2argv-video-qxl-device-max-outputs.args | 7 ------ .../qemuxml2argv-video-qxl-device-max-outputs.xml | 29 ---------------------- tests/qemuxml2argvtest.c | 3 --- 6 files changed, 47 deletions(-) delete mode 100644 tests/qemuxml2argvdata/qemuxml2argv-video-qxl-device-max-outputs.args delete mode 100644 tests/qemuxml2argvdata/qemuxml2argv-video-qxl-device-max-outputs.xml
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 0769316fe999..d8cb32d77761 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -288,7 +288,6 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
"vhost-user-multiqueue", /* 190 */ "migration-event", - "qxl-vga.max_outputs", );
Removing the capability will cause libvirt to fail to load any running QEMU guests which had that capability, even if they were not using it. We must keep the capability detection and only revert the addition to qemu_command.c Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

On Wed, Jul 22, 2015 at 10:12:02AM +0100, Daniel P. Berrange wrote:
On Wed, Jul 22, 2015 at 10:05:48AM +0200, Martin Kletzander wrote:
This reverts commit 7b401c3bdacdf8367a0070e625d73eafb802045d.
Until libvirt is able to differentiate whether heads='1' is just a leftover from previous libvirt or whether that's added by user on purpose and also whether the domain was started with the support for qxl's max_outputs, we cannot incorporate this patch into the tree due to compatibility reasons.
Signed-off-by: Martin Kletzander <mkletzan@redhat.com> --- The discussion about this can be found in this thread: https://www.redhat.com/archives/libvir-list/2015-July/msg00808.html
src/qemu/qemu_capabilities.c | 2 -- src/qemu/qemu_capabilities.h | 1 - src/qemu/qemu_command.c | 5 ---- .../qemuxml2argv-video-qxl-device-max-outputs.args | 7 ------ .../qemuxml2argv-video-qxl-device-max-outputs.xml | 29 ---------------------- tests/qemuxml2argvtest.c | 3 --- 6 files changed, 47 deletions(-) delete mode 100644 tests/qemuxml2argvdata/qemuxml2argv-video-qxl-device-max-outputs.args delete mode 100644 tests/qemuxml2argvdata/qemuxml2argv-video-qxl-device-max-outputs.xml
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 0769316fe999..d8cb32d77761 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -288,7 +288,6 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
"vhost-user-multiqueue", /* 190 */ "migration-event", - "qxl-vga.max_outputs", );
Removing the capability will cause libvirt to fail to load any running QEMU guests which had that capability, even if they were not using it.
We must keep the capability detection and only revert the addition to qemu_command.c
We had no release with this commit yet, it is in only for two days now.
Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
participants (2)
-
Daniel P. Berrange
-
Martin Kletzander