Re: [PATCH v6 2/2] qemu: Add support to QXL's max_outputs parameter

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

 



On Mon, Jun 06, 2016 at 03:23:24PM +0200, Pavel Hrdina wrote:
On Sun, Jun 05, 2016 at 02:36:04AM +0200, Martin Kletzander wrote:
Historically, we added heads=1 to videos, but for example for qxl, we
did not reflect that on the command line.  Implementing that now could
mean that if user were to migrate from older to newer libvirt, the
command-line for qemu would differ.  In order for that not to happen a
migration cookie flag is introduced.

Remove the migration cookie from commit message.


Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1283207

Signed-off-by: Martin Kletzander <mkletzan@xxxxxxxxxx>
---
 src/qemu/qemu_command.c                            |  8 ++++
 src/qemu/qemu_migration.c                          |  1 -
 .../qemuxml2argv-video-qxl-heads.args              | 28 +++++++++++++
 .../qemuxml2argv-video-qxl-heads.xml               | 47 ++++++++++++++++++++++
 .../qemuxml2argv-video-qxl-noheads.args            | 24 +++++++++++
 .../qemuxml2argv-video-qxl-noheads.xml             | 39 ++++++++++++++++++
 tests/qemuxml2argvtest.c                           | 16 ++++++++
 .../qemuxml2xmlout-video-qxl-heads.xml             | 47 ++++++++++++++++++++++
 .../qemuxml2xmlout-video-qxl-noheads.xml           | 39 ++++++++++++++++++
 tests/qemuxml2xmltest.c                            |  3 ++
 10 files changed, 251 insertions(+), 1 deletion(-)
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-video-qxl-heads.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-video-qxl-heads.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-video-qxl-noheads.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-video-qxl-noheads.xml
 create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-video-qxl-heads.xml
 create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-video-qxl-noheads.xml

diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 368bd871f7e3..60b0049f3d22 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -4199,6 +4199,14 @@ qemuBuildDeviceVideoStr(const virDomainDef *def,
             /* QEMU accepts mebibytes for vgamem_mb. */
             virBufferAsprintf(&buf, ",vgamem_mb=%u", video->vgamem / 1024);
         }
+
+        if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_QXL_VGA_MAX_OUTPUTS) &&
+            virQEMUCapsGet(qemuCaps, QEMU_CAPS_QXL_MAX_OUTPUTS)) {
+            if (video->heads)
+                virBufferAsprintf(&buf, ",max_outputs=%u", video->heads);
+        } else {
+            video->heads = 0;
+        }

Same as for the first patch, qxl and qxl-vga are different devices.  Currently
we have qxl-vga only as primary video device and qxl only as secondary.  You
should pair the capabilities with the correct video device like we do for
vram64.


That's exactly what I did *not* want.  The thing is (as explained in the
commit message for the first patch, which I believed is correct) that I
either wanted it to enabled for all qxl-like devices or none.  But not
confuse users if it works only for the primary and not secondary or the
other way around.

Since the two capabilities will mostly be both supported at the same
time, I'm ok with your version as well.

     } else if (video->vram &&
         ((video->type == VIR_DOMAIN_VIDEO_TYPE_VGA &&
           virQEMUCapsGet(qemuCaps, QEMU_CAPS_VGA_VGAMEM)) ||
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index c5b2963d65b6..bed5f0b581b9 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -3131,7 +3131,6 @@ qemuMigrationBeginPhase(virQEMUDriverPtr driver,
         if (nmigrate_disks) {
             if (has_drive_mirror) {
                 size_t i, j;
-

Unrelated white space change.

                 /* Check user requested only known disk targets. */
                 for (i = 0; i < nmigrate_disks; i++) {
                     for (j = 0; j < vm->def->ndisks; j++) {
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-video-qxl-heads.args b/tests/qemuxml2argvdata/qemuxml2argv-video-qxl-heads.args
new file mode 100644

diff --git a/tests/qemuxml2argvdata/qemuxml2argv-video-qxl-heads.xml b/tests/qemuxml2argvdata/qemuxml2argv-video-qxl-heads.xml
new file mode 100644

diff --git a/tests/qemuxml2argvdata/qemuxml2argv-video-qxl-noheads.args b/tests/qemuxml2argvdata/qemuxml2argv-video-qxl-noheads.args
new file mode 100644

diff --git a/tests/qemuxml2argvdata/qemuxml2argv-video-qxl-noheads.xml b/tests/qemuxml2argvdata/qemuxml2argv-video-qxl-noheads.xml
new file mode 100644

diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index db42b7bd71be..716755b39827 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -1972,6 +1972,22 @@ mymain(void)
     DO_TEST("ppc64-usb-controller-legacy",
             QEMU_CAPS_PIIX3_USB_UHCI);

+    DO_TEST("video-qxl-heads",
+            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
+            QEMU_CAPS_VGA_QXL,
+            QEMU_CAPS_DEVICE_QXL_VGA,
+            QEMU_CAPS_DEVICE_QXL,
+            QEMU_CAPS_QXL_MAX_OUTPUTS,
+            QEMU_CAPS_QXL_VGA_MAX_OUTPUTS);
+
+    DO_TEST("video-qxl-noheads",
+            QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
+            QEMU_CAPS_VGA_QXL,
+            QEMU_CAPS_DEVICE_QXL_VGA,
+            QEMU_CAPS_DEVICE_QXL,
+            QEMU_CAPS_QXL_MAX_OUTPUTS,
+            QEMU_CAPS_QXL_VGA_MAX_OUTPUTS);
+

Please move it next to other video-qxl tests.

     DO_TEST_PARSE_FLAGS_ERROR("missing-machine",
                               VIR_DOMAIN_DEF_PARSE_SKIP_OSTYPE_CHECKS,
                               NONE);
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-video-qxl-heads.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-video-qxl-heads.xml
new file mode 100644

ACK with the defect fixed.

Fixed everything according to your comments and pushed.  Thanks for the
review.

Martin

Attachment: signature.asc
Description: Digital signature

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]