[PATCH 2/2] tests: Add capabilities for QEMU 8.2.0 on aarch64

Andrea Bolognani posted 2 patches 1 year ago
[PATCH 2/2] tests: Add capabilities for QEMU 8.2.0 on aarch64
Posted by Andrea Bolognani 1 year ago
Notable changes compared to 7.0.0, the most recent version that
we had capabilities for until now:

  * SPICE support is no longer compiled in;

  * uses of -no-acpi are replaced with -M virt,acpi=off;

  * -netdev uses JSON.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
---
 .../qemu_8.2.0-virt.aarch64.xml               |   227 +
 tests/domaincapsdata/qemu_8.2.0.aarch64.xml   |   227 +
 .../caps_8.2.0_aarch64.replies                | 36411 ++++++++++++++++
 .../caps_8.2.0_aarch64.xml                    |   549 +
 ...ch64-aavmf-virtio-mmio.aarch64-latest.args |     5 +-
 ...arch64-cpu-passthrough.aarch64-latest.args |     3 +-
 ...fault-cpu-kvm-virt-4.2.aarch64-latest.args |     3 +-
 ...fault-cpu-tcg-virt-4.2.aarch64-latest.args |     3 +-
 .../aarch64-features-sve.aarch64-latest.args  |     3 +-
 ...rch64-gic-default-both.aarch64-latest.args |     3 +-
 ...aarch64-gic-default-v2.aarch64-latest.args |     3 +-
 ...aarch64-gic-default-v3.aarch64-latest.args |     3 +-
 .../aarch64-gic-default.aarch64-latest.args   |     3 +-
 .../aarch64-gic-host.aarch64-latest.args      |     3 +-
 .../aarch64-gic-none-both.aarch64-latest.args |     3 +-
 .../aarch64-gic-none-tcg.aarch64-latest.args  |     3 +-
 .../aarch64-gic-none-v2.aarch64-latest.args   |     3 +-
 .../aarch64-gic-none-v3.aarch64-latest.args   |     3 +-
 .../aarch64-gic-none.aarch64-latest.args      |     3 +-
 .../aarch64-gic-v2.aarch64-latest.args        |     3 +-
 .../aarch64-gic-v3.aarch64-latest.args        |     3 +-
 .../aarch64-kvm-32-on-64.aarch64-latest.args  |     4 +-
 .../aarch64-pci-serial.aarch64-latest.args    |     3 +-
 .../aarch64-tpm.aarch64-latest.args           |     3 +-
 ...arch64-traditional-pci.aarch64-latest.args |     3 +-
 ...aarch64-usb-controller.aarch64-latest.args |     3 +-
 .../aarch64-video-default.aarch64-latest.args |     3 +-
 ...4-video-virtio-gpu-pci.aarch64-latest.args |     5 +-
 ...rch64-virt-default-nic.aarch64-latest.args |     5 +-
 .../aarch64-virt-graphics.aarch64-latest.args |     4 +-
 .../aarch64-virt-headless.aarch64-latest.args |     4 +-
 ...rch64-virt-virtio-MMIO.aarch64.latest.args |     5 +-
 .../aarch64-virt-virtio.aarch64-latest.args   |     5 +-
 ...h64-virtio-pci-default.aarch64-latest.args |     5 +-
 ...o-pci-manual-addresses.aarch64-latest.args |     7 +-
 .../arm-vexpressa9-basic.aarch64-latest.args  |     2 +-
 .../arm-vexpressa9-virtio.aarch64-latest.args |     2 +-
 .../arm-virt-virtio.aarch64-latest.args       |     4 +-
 .../balloon-mmio-deflate.aarch64-latest.args  |     3 +-
 .../clock-timer-armvtimer.aarch64-latest.args |     3 +-
 ...ult-video-type-aarch64.aarch64-latest.args |     3 +-
 .../disk-arm-virtio-sd.aarch64-latest.args    |     1 -
 ...mware-auto-efi-aarch64.aarch64-latest.args |     2 +-
 ...efi-abi-update-aarch64.aarch64-latest.args |     2 +-
 ...-loader-raw-abi-update.aarch64-latest.args |     2 +-
 ...-efi-format-loader-raw.aarch64-latest.args |     2 +-
 ...i-aarch64-legacy-paths.aarch64-latest.args |     2 +-
 ...anual-efi-acpi-aarch64.aarch64-latest.args |     2 +-
 ...ual-efi-noacpi-aarch64.aarch64-latest.args |     3 +-
 ...l-noefi-noacpi-aarch64.aarch64-latest.args |     3 +-
 .../iommu-smmuv3.aarch64-latest.args          |     3 +-
 ...ch-virt-console-native.aarch64-latest.args |     3 +-
 ...ch-virt-console-virtio.aarch64-latest.args |     3 +-
 ...-serial+console-native.aarch64-latest.args |     3 +-
 ...ach-virt-serial-compat.aarch64-latest.args |     3 +-
 ...ach-virt-serial-native.aarch64-latest.args |     3 +-
 .../mach-virt-serial-pci.aarch64-latest.args  |     3 +-
 .../mach-virt-serial-usb.aarch64-latest.args  |     3 +-
 ...e-expander-bus-aarch64.aarch64-latest.args |     3 +-
 .../pvpanic-pci-aarch64.aarch64-latest.args   |     2 +-
 ...pci-no-address-aarch64.aarch64-latest.args |     2 +-
 .../virtio-iommu-aarch64.aarch64-latest.args  |     2 +-
 62 files changed, 37483 insertions(+), 112 deletions(-)
 create mode 100644 tests/domaincapsdata/qemu_8.2.0-virt.aarch64.xml
 create mode 100644 tests/domaincapsdata/qemu_8.2.0.aarch64.xml
 create mode 100644 tests/qemucapabilitiesdata/caps_8.2.0_aarch64.replies
 create mode 100644 tests/qemucapabilitiesdata/caps_8.2.0_aarch64.xml

diff --git a/tests/domaincapsdata/qemu_8.2.0-virt.aarch64.xml b/tests/domaincapsdata/qemu_8.2.0-virt.aarch64.xml
new file mode 100644
index 0000000000..e4519e4a1b
--- /dev/null
+++ b/tests/domaincapsdata/qemu_8.2.0-virt.aarch64.xml
@@ -0,0 +1,227 @@
+<domainCapabilities>
+  <path>/usr/bin/qemu-system-aarch64</path>
+  <domain>kvm</domain>
+  <machine>virt-8.2</machine>
+  <arch>aarch64</arch>
+  <vcpu max='512'/>
+  <iothreads supported='yes'/>
+  <os supported='yes'>
+    <enum name='firmware'>
+      <value>efi</value>
+    </enum>
+    <loader supported='yes'>
+      <value>/obviously/fake/firmware1.fd</value>
+      <value>/obviously/fake/firmware2.fd</value>
+      <enum name='type'>
+        <value>rom</value>
+        <value>pflash</value>
+      </enum>
+      <enum name='readonly'>
+        <value>yes</value>
+        <value>no</value>
+      </enum>
+      <enum name='secure'>
+        <value>no</value>
+      </enum>
+    </loader>
+  </os>
+  <cpu>
+    <mode name='host-passthrough' supported='yes'>
+      <enum name='hostPassthroughMigratable'>
+        <value>off</value>
+      </enum>
+    </mode>
+    <mode name='maximum' supported='yes'>
+      <enum name='maximumMigratable'>
+        <value>on</value>
+        <value>off</value>
+      </enum>
+    </mode>
+    <mode name='host-model' supported='no'/>
+    <mode name='custom' supported='yes'>
+      <model usable='unknown' vendor='unknown'>neoverse-n2</model>
+      <model usable='unknown' vendor='unknown'>pxa270-c0</model>
+      <model usable='unknown' vendor='unknown'>cortex-a15</model>
+      <model usable='unknown' vendor='unknown'>pxa270-b0</model>
+      <model usable='unknown' vendor='unknown'>cortex-m4</model>
+      <model usable='unknown' vendor='unknown'>cortex-a57</model>
+      <model usable='unknown' vendor='unknown'>pxa270-a0</model>
+      <model usable='unknown' vendor='unknown'>arm1176</model>
+      <model usable='unknown' vendor='unknown'>pxa270-b1</model>
+      <model usable='unknown' vendor='unknown'>cortex-a7</model>
+      <model usable='unknown' vendor='unknown'>pxa270-a1</model>
+      <model usable='unknown' vendor='unknown'>cortex-a76</model>
+      <model usable='unknown' vendor='unknown'>a64fx</model>
+      <model usable='unknown' vendor='unknown'>cortex-a8</model>
+      <model usable='unknown' vendor='unknown'>neoverse-v1</model>
+      <model usable='unknown' vendor='unknown'>cortex-r5</model>
+      <model usable='unknown' vendor='unknown'>ti925t</model>
+      <model usable='unknown' vendor='unknown'>cortex-r5f</model>
+      <model usable='unknown' vendor='unknown'>arm1026</model>
+      <model usable='unknown' vendor='unknown'>cortex-a9</model>
+      <model usable='unknown' vendor='unknown'>cortex-m7</model>
+      <model usable='unknown' vendor='unknown'>pxa270</model>
+      <model usable='unknown' vendor='unknown'>pxa260</model>
+      <model usable='unknown' vendor='unknown'>pxa250</model>
+      <model usable='unknown' vendor='unknown'>pxa270-c5</model>
+      <model usable='unknown' vendor='unknown'>pxa261</model>
+      <model usable='unknown' vendor='unknown'>pxa262</model>
+      <model usable='unknown' vendor='unknown'>cortex-a710</model>
+      <model usable='unknown' vendor='unknown'>cortex-r52</model>
+      <model usable='unknown' vendor='unknown'>sa1110</model>
+      <model usable='unknown' vendor='unknown'>sa1100</model>
+      <model usable='unknown' vendor='unknown'>max</model>
+      <model usable='unknown' vendor='unknown'>cortex-a53</model>
+      <model usable='unknown' vendor='unknown'>cortex-m0</model>
+      <model usable='unknown' vendor='unknown'>cortex-m33</model>
+      <model usable='unknown' vendor='unknown'>cortex-a72</model>
+      <model usable='unknown' vendor='unknown'>arm946</model>
+      <model usable='unknown' vendor='unknown'>pxa255</model>
+      <model usable='unknown' vendor='unknown'>cortex-a55</model>
+      <model usable='unknown' vendor='unknown'>arm11mpcore</model>
+      <model usable='unknown' vendor='unknown'>cortex-m55</model>
+      <model usable='unknown' vendor='unknown'>neoverse-n1</model>
+      <model usable='unknown' vendor='unknown'>arm926</model>
+      <model usable='unknown' vendor='unknown'>arm1136</model>
+      <model usable='unknown' vendor='unknown'>cortex-a35</model>
+      <model usable='unknown' vendor='unknown'>arm1136-r2</model>
+      <model usable='unknown' vendor='unknown'>cortex-m3</model>
+    </mode>
+  </cpu>
+  <memoryBacking supported='yes'>
+    <enum name='sourceType'>
+      <value>file</value>
+      <value>anonymous</value>
+      <value>memfd</value>
+    </enum>
+  </memoryBacking>
+  <devices>
+    <disk supported='yes'>
+      <enum name='diskDevice'>
+        <value>disk</value>
+        <value>cdrom</value>
+        <value>floppy</value>
+        <value>lun</value>
+      </enum>
+      <enum name='bus'>
+        <value>fdc</value>
+        <value>scsi</value>
+        <value>virtio</value>
+        <value>usb</value>
+        <value>sata</value>
+      </enum>
+      <enum name='model'>
+        <value>virtio</value>
+        <value>virtio-transitional</value>
+        <value>virtio-non-transitional</value>
+      </enum>
+    </disk>
+    <graphics supported='yes'>
+      <enum name='type'>
+        <value>sdl</value>
+        <value>vnc</value>
+        <value>egl-headless</value>
+        <value>dbus</value>
+      </enum>
+    </graphics>
+    <video supported='yes'>
+      <enum name='modelType'>
+        <value>vga</value>
+        <value>cirrus</value>
+        <value>virtio</value>
+        <value>none</value>
+        <value>bochs</value>
+        <value>ramfb</value>
+      </enum>
+    </video>
+    <hostdev supported='yes'>
+      <enum name='mode'>
+        <value>subsystem</value>
+      </enum>
+      <enum name='startupPolicy'>
+        <value>default</value>
+        <value>mandatory</value>
+        <value>requisite</value>
+        <value>optional</value>
+      </enum>
+      <enum name='subsysType'>
+        <value>usb</value>
+        <value>pci</value>
+        <value>scsi</value>
+      </enum>
+      <enum name='capsType'/>
+      <enum name='pciBackend'>
+        <value>default</value>
+        <value>vfio</value>
+      </enum>
+    </hostdev>
+    <rng supported='yes'>
+      <enum name='model'>
+        <value>virtio</value>
+        <value>virtio-transitional</value>
+        <value>virtio-non-transitional</value>
+      </enum>
+      <enum name='backendModel'>
+        <value>random</value>
+        <value>egd</value>
+        <value>builtin</value>
+      </enum>
+    </rng>
+    <filesystem supported='yes'>
+      <enum name='driverType'>
+        <value>path</value>
+        <value>handle</value>
+        <value>virtiofs</value>
+      </enum>
+    </filesystem>
+    <tpm supported='yes'>
+      <enum name='model'>
+        <value>tpm-tis</value>
+      </enum>
+      <enum name='backendModel'>
+        <value>passthrough</value>
+        <value>emulator</value>
+        <value>external</value>
+      </enum>
+      <enum name='backendVersion'>
+        <value>2.0</value>
+      </enum>
+    </tpm>
+    <redirdev supported='yes'>
+      <enum name='bus'>
+        <value>usb</value>
+      </enum>
+    </redirdev>
+    <channel supported='yes'>
+      <enum name='type'>
+        <value>pty</value>
+        <value>unix</value>
+      </enum>
+    </channel>
+    <crypto supported='yes'>
+      <enum name='model'>
+        <value>virtio</value>
+      </enum>
+      <enum name='type'>
+        <value>qemu</value>
+      </enum>
+      <enum name='backendModel'>
+        <value>builtin</value>
+      </enum>
+    </crypto>
+  </devices>
+  <features>
+    <gic supported='yes'>
+      <enum name='version'>
+        <value>3</value>
+      </enum>
+    </gic>
+    <vmcoreinfo supported='yes'/>
+    <genid supported='no'/>
+    <backingStoreInput supported='yes'/>
+    <backup supported='yes'/>
+    <async-teardown supported='yes'/>
+    <sev supported='no'/>
+    <sgx supported='no'/>
+  </features>
+</domainCapabilities>
diff --git a/tests/domaincapsdata/qemu_8.2.0.aarch64.xml b/tests/domaincapsdata/qemu_8.2.0.aarch64.xml
new file mode 100644
index 0000000000..e4519e4a1b
--- /dev/null
+++ b/tests/domaincapsdata/qemu_8.2.0.aarch64.xml
@@ -0,0 +1,227 @@
+<domainCapabilities>
+  <path>/usr/bin/qemu-system-aarch64</path>
+  <domain>kvm</domain>
+  <machine>virt-8.2</machine>
+  <arch>aarch64</arch>
+  <vcpu max='512'/>
+  <iothreads supported='yes'/>
+  <os supported='yes'>
+    <enum name='firmware'>
+      <value>efi</value>
+    </enum>
+    <loader supported='yes'>
+      <value>/obviously/fake/firmware1.fd</value>
+      <value>/obviously/fake/firmware2.fd</value>
+      <enum name='type'>
+        <value>rom</value>
+        <value>pflash</value>
+      </enum>
+      <enum name='readonly'>
+        <value>yes</value>
+        <value>no</value>
+      </enum>
+      <enum name='secure'>
+        <value>no</value>
+      </enum>
+    </loader>
+  </os>
+  <cpu>
+    <mode name='host-passthrough' supported='yes'>
+      <enum name='hostPassthroughMigratable'>
+        <value>off</value>
+      </enum>
+    </mode>
+    <mode name='maximum' supported='yes'>
+      <enum name='maximumMigratable'>
+        <value>on</value>
+        <value>off</value>
+      </enum>
+    </mode>
+    <mode name='host-model' supported='no'/>
+    <mode name='custom' supported='yes'>
+      <model usable='unknown' vendor='unknown'>neoverse-n2</model>
+      <model usable='unknown' vendor='unknown'>pxa270-c0</model>
+      <model usable='unknown' vendor='unknown'>cortex-a15</model>
+      <model usable='unknown' vendor='unknown'>pxa270-b0</model>
+      <model usable='unknown' vendor='unknown'>cortex-m4</model>
+      <model usable='unknown' vendor='unknown'>cortex-a57</model>
+      <model usable='unknown' vendor='unknown'>pxa270-a0</model>
+      <model usable='unknown' vendor='unknown'>arm1176</model>
+      <model usable='unknown' vendor='unknown'>pxa270-b1</model>
+      <model usable='unknown' vendor='unknown'>cortex-a7</model>
+      <model usable='unknown' vendor='unknown'>pxa270-a1</model>
+      <model usable='unknown' vendor='unknown'>cortex-a76</model>
+      <model usable='unknown' vendor='unknown'>a64fx</model>
+      <model usable='unknown' vendor='unknown'>cortex-a8</model>
+      <model usable='unknown' vendor='unknown'>neoverse-v1</model>
+      <model usable='unknown' vendor='unknown'>cortex-r5</model>
+      <model usable='unknown' vendor='unknown'>ti925t</model>
+      <model usable='unknown' vendor='unknown'>cortex-r5f</model>
+      <model usable='unknown' vendor='unknown'>arm1026</model>
+      <model usable='unknown' vendor='unknown'>cortex-a9</model>
+      <model usable='unknown' vendor='unknown'>cortex-m7</model>
+      <model usable='unknown' vendor='unknown'>pxa270</model>
+      <model usable='unknown' vendor='unknown'>pxa260</model>
+      <model usable='unknown' vendor='unknown'>pxa250</model>
+      <model usable='unknown' vendor='unknown'>pxa270-c5</model>
+      <model usable='unknown' vendor='unknown'>pxa261</model>
+      <model usable='unknown' vendor='unknown'>pxa262</model>
+      <model usable='unknown' vendor='unknown'>cortex-a710</model>
+      <model usable='unknown' vendor='unknown'>cortex-r52</model>
+      <model usable='unknown' vendor='unknown'>sa1110</model>
+      <model usable='unknown' vendor='unknown'>sa1100</model>
+      <model usable='unknown' vendor='unknown'>max</model>
+      <model usable='unknown' vendor='unknown'>cortex-a53</model>
+      <model usable='unknown' vendor='unknown'>cortex-m0</model>
+      <model usable='unknown' vendor='unknown'>cortex-m33</model>
+      <model usable='unknown' vendor='unknown'>cortex-a72</model>
+      <model usable='unknown' vendor='unknown'>arm946</model>
+      <model usable='unknown' vendor='unknown'>pxa255</model>
+      <model usable='unknown' vendor='unknown'>cortex-a55</model>
+      <model usable='unknown' vendor='unknown'>arm11mpcore</model>
+      <model usable='unknown' vendor='unknown'>cortex-m55</model>
+      <model usable='unknown' vendor='unknown'>neoverse-n1</model>
+      <model usable='unknown' vendor='unknown'>arm926</model>
+      <model usable='unknown' vendor='unknown'>arm1136</model>
+      <model usable='unknown' vendor='unknown'>cortex-a35</model>
+      <model usable='unknown' vendor='unknown'>arm1136-r2</model>
+      <model usable='unknown' vendor='unknown'>cortex-m3</model>
+    </mode>
+  </cpu>
+  <memoryBacking supported='yes'>
+    <enum name='sourceType'>
+      <value>file</value>
+      <value>anonymous</value>
+      <value>memfd</value>
+    </enum>
+  </memoryBacking>
+  <devices>
+    <disk supported='yes'>
+      <enum name='diskDevice'>
+        <value>disk</value>
+        <value>cdrom</value>
+        <value>floppy</value>
+        <value>lun</value>
+      </enum>
+      <enum name='bus'>
+        <value>fdc</value>
+        <value>scsi</value>
+        <value>virtio</value>
+        <value>usb</value>
+        <value>sata</value>
+      </enum>
+      <enum name='model'>
+        <value>virtio</value>
+        <value>virtio-transitional</value>
+        <value>virtio-non-transitional</value>
+      </enum>
+    </disk>
+    <graphics supported='yes'>
+      <enum name='type'>
+        <value>sdl</value>
+        <value>vnc</value>
+        <value>egl-headless</value>
+        <value>dbus</value>
+      </enum>
+    </graphics>
+    <video supported='yes'>
+      <enum name='modelType'>
+        <value>vga</value>
+        <value>cirrus</value>
+        <value>virtio</value>
+        <value>none</value>
+        <value>bochs</value>
+        <value>ramfb</value>
+      </enum>
+    </video>
+    <hostdev supported='yes'>
+      <enum name='mode'>
+        <value>subsystem</value>
+      </enum>
+      <enum name='startupPolicy'>
+        <value>default</value>
+        <value>mandatory</value>
+        <value>requisite</value>
+        <value>optional</value>
+      </enum>
+      <enum name='subsysType'>
+        <value>usb</value>
+        <value>pci</value>
+        <value>scsi</value>
+      </enum>
+      <enum name='capsType'/>
+      <enum name='pciBackend'>
+        <value>default</value>
+        <value>vfio</value>
+      </enum>
+    </hostdev>
+    <rng supported='yes'>
+      <enum name='model'>
+        <value>virtio</value>
+        <value>virtio-transitional</value>
+        <value>virtio-non-transitional</value>
+      </enum>
+      <enum name='backendModel'>
+        <value>random</value>
+        <value>egd</value>
+        <value>builtin</value>
+      </enum>
+    </rng>
+    <filesystem supported='yes'>
+      <enum name='driverType'>
+        <value>path</value>
+        <value>handle</value>
+        <value>virtiofs</value>
+      </enum>
+    </filesystem>
+    <tpm supported='yes'>
+      <enum name='model'>
+        <value>tpm-tis</value>
+      </enum>
+      <enum name='backendModel'>
+        <value>passthrough</value>
+        <value>emulator</value>
+        <value>external</value>
+      </enum>
+      <enum name='backendVersion'>
+        <value>2.0</value>
+      </enum>
+    </tpm>
+    <redirdev supported='yes'>
+      <enum name='bus'>
+        <value>usb</value>
+      </enum>
+    </redirdev>
+    <channel supported='yes'>
+      <enum name='type'>
+        <value>pty</value>
+        <value>unix</value>
+      </enum>
+    </channel>
+    <crypto supported='yes'>
+      <enum name='model'>
+        <value>virtio</value>
+      </enum>
+      <enum name='type'>
+        <value>qemu</value>
+      </enum>
+      <enum name='backendModel'>
+        <value>builtin</value>
+      </enum>
+    </crypto>
+  </devices>
+  <features>
+    <gic supported='yes'>
+      <enum name='version'>
+        <value>3</value>
+      </enum>
+    </gic>
+    <vmcoreinfo supported='yes'/>
+    <genid supported='no'/>
+    <backingStoreInput supported='yes'/>
+    <backup supported='yes'/>
+    <async-teardown supported='yes'/>
+    <sev supported='no'/>
+    <sgx supported='no'/>
+  </features>
+</domainCapabilities>
diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_aarch64.replies b/tests/qemucapabilitiesdata/caps_8.2.0_aarch64.replies
new file mode 100644
index 0000000000..aea02842d1
--- /dev/null
+++ b/tests/qemucapabilitiesdata/caps_8.2.0_aarch64.replies
@@ -0,0 +1,36411 @@
+{
+  "execute": "qmp_capabilities",
+  "id": "libvirt-1"
+}
+
+{
+  "return": {
+  },
+  "id": "libvirt-1"
+}
+
+{
+  "execute": "query-version",
+  "id": "libvirt-2"
+}
+
+{
+  "return": {
+    "qemu": {
+      "micro": 0,
+      "minor": 2,
+      "major": 8
+    },
+    "package": "v8.2.0"
+  },
+  "id": "libvirt-2"
+}
+
+{
+  "execute": "query-target",
+  "id": "libvirt-3"
+}
+
+{
+  "return": {
+    "arch": "aarch64"
+  },
+  "id": "libvirt-3"
+}
[...]
diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_aarch64.xml b/tests/qemucapabilitiesdata/caps_8.2.0_aarch64.xml
new file mode 100644
index 0000000000..40d490c1c0
--- /dev/null
+++ b/tests/qemucapabilitiesdata/caps_8.2.0_aarch64.xml
@@ -0,0 +1,549 @@
+<qemuCaps>
+  <emulator>/usr/bin/qemu-system-aarch64</emulator>
+  <qemuctime>0</qemuctime>
+  <selfctime>0</selfctime>
+  <selfvers>0</selfvers>
+  <flag name='kvm'/>
+  <flag name='sdl'/>
+  <flag name='hda-duplex'/>
+  <flag name='piix3-usb-uhci'/>
+  <flag name='piix4-usb-uhci'/>
+  <flag name='usb-ehci'/>
+  <flag name='ich9-usb-ehci1'/>
+  <flag name='pci-ohci'/>
+  <flag name='usb-redir'/>
+  <flag name='usb-hub'/>
+  <flag name='ich9-ahci'/>
+  <flag name='virtio-blk-pci.scsi'/>
+  <flag name='scsi-disk.channel'/>
+  <flag name='scsi-block'/>
+  <flag name='hda-micro'/>
+  <flag name='nec-usb-xhci'/>
+  <flag name='lsi'/>
+  <flag name='virtio-scsi-pci'/>
+  <flag name='usb-redir.filter'/>
+  <flag name='seccomp-sandbox'/>
+  <flag name='vnc'/>
+  <flag name='VGA'/>
+  <flag name='cirrus-vga'/>
+  <flag name='usb-serial'/>
+  <flag name='virtio-rng'/>
+  <flag name='rng-random'/>
+  <flag name='rng-egd'/>
+  <flag name='megasas'/>
+  <flag name='tpm-passthrough'/>
+  <flag name='tpm-tis'/>
+  <flag name='pci-bridge'/>
+  <flag name='vfio-pci'/>
+  <flag name='dmi-to-pci-bridge'/>
+  <flag name='usb-storage'/>
+  <flag name='virtio-mmio'/>
+  <flag name='ich9-intel-hda'/>
+  <flag name='usb-kbd'/>
+  <flag name='usb-audio'/>
+  <flag name='migrate-rdma'/>
+  <flag name='VGA.vgamem_mb'/>
+  <flag name='pc-dimm'/>
+  <flag name='pci-serial'/>
+  <flag name='gpex-pcihost'/>
+  <flag name='ioh3420'/>
+  <flag name='x3130-upstream'/>
+  <flag name='xio3130-downstream'/>
+  <flag name='rtl8139'/>
+  <flag name='e1000'/>
+  <flag name='virtio-net'/>
+  <flag name='virtio-gpu'/>
+  <flag name='virtio-keyboard'/>
+  <flag name='virtio-mouse'/>
+  <flag name='virtio-tablet'/>
+  <flag name='virtio-input-host'/>
+  <flag name='virtio-balloon-pci.deflate-on-oom'/>
+  <flag name='mptsas1068'/>
+  <flag name='pxb'/>
+  <flag name='pxb-pcie'/>
+  <flag name='ivshmem-plain'/>
+  <flag name='ivshmem-doorbell'/>
+  <flag name='vhost-scsi'/>
+  <flag name='query-cpu-model-expansion'/>
+  <flag name='nvdimm'/>
+  <flag name='pcie-root-port'/>
+  <flag name='query-cpu-definitions'/>
+  <flag name='qemu-xhci'/>
+  <flag name='chardev-reconnect'/>
+  <flag name='vmcoreinfo'/>
+  <flag name='pl011'/>
+  <flag name='pcie-pci-bridge'/>
+  <flag name='nbd-tls'/>
+  <flag name='pr-manager-helper'/>
+  <flag name='screendump_device'/>
+  <flag name='hda-output'/>
+  <flag name='vhost-vsock'/>
+  <flag name='tpm-emulator'/>
+  <flag name='egl-headless'/>
+  <flag name='memory-backend-memfd'/>
+  <flag name='memory-backend-memfd.hugetlb'/>
+  <flag name='egl-headless.rendernode'/>
+  <flag name='nvdimm.unarmed'/>
+  <flag name='virtio-pci-non-transitional'/>
+  <flag name='machine.virt.iommu'/>
+  <flag name='nbd-bitmap'/>
+  <flag name='bochs-display'/>
+  <flag name='migration-file-drop-cache'/>
+  <flag name='dbus-vmstate'/>
+  <flag name='vhost-user-gpu'/>
+  <flag name='incremental-backup'/>
+  <flag name='ramfb'/>
+  <flag name='arm-max-cpu'/>
+  <flag name='drive-nvme'/>
+  <flag name='smp-dies'/>
+  <flag name='rng-builtin'/>
+  <flag name='cpu.kvm-no-adjvtime'/>
+  <flag name='vhost-user-fs'/>
+  <flag name='query-named-block-nodes.flat'/>
+  <flag name='blockdev-snapshot.allow-write-only-overlay'/>
+  <flag name='blockdev-reopen'/>
+  <flag name='fsdev.multidevs'/>
+  <flag name='pcie-root-port.hotplug'/>
+  <flag name='aio.io_uring'/>
+  <flag name='tcg'/>
+  <flag name='virtio-blk-pci.scsi.default.disabled'/>
+  <flag name='pvscsi'/>
+  <flag name='numa.hmat'/>
+  <flag name='usb-host.hostdevice'/>
+  <flag name='virtio-balloon.free-page-reporting'/>
+  <flag name='block-export-add'/>
+  <flag name='netdev.vhost-vdpa'/>
+  <flag name='dc390'/>
+  <flag name='am53c974'/>
+  <flag name='vhost-user-fs.bootindex'/>
+  <flag name='vhost-user-blk'/>
+  <flag name='cpu-max'/>
+  <flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
+  <flag name='migration-param.block-bitmap-mapping'/>
+  <flag name='vnc-power-control'/>
+  <flag name='object.qapified'/>
+  <flag name='rotation-rate'/>
+  <flag name='compat-deprecated'/>
+  <flag name='acpi-index'/>
+  <flag name='input-linux'/>
+  <flag name='confidential-guest-support'/>
+  <flag name='set-action'/>
+  <flag name='virtio-blk.queue-size'/>
+  <flag name='virtio-mem-pci'/>
+  <flag name='memory-backend-file.reserve'/>
+  <flag name='netdev.json'/>
+  <flag name='query-dirty-rate'/>
+  <flag name='rbd-encryption'/>
+  <flag name='sev-guest-kernel-hashes'/>
+  <flag name='device.json+hotplug'/>
+  <flag name='virtio-mem-pci.prealloc'/>
+  <flag name='calc-dirty-rate'/>
+  <flag name='dirtyrate-param.mode'/>
+  <flag name='blockdev.nbd.tls-hostname'/>
+  <flag name='memory-backend-file.prealloc-threads'/>
+  <flag name='virtio-iommu-pci'/>
+  <flag name='virtio-iommu.boot-bypass'/>
+  <flag name='virtio-net.rss'/>
+  <flag name='chardev.qemu-vdagent'/>
+  <flag name='display-dbus'/>
+  <flag name='iothread.thread-pool-max'/>
+  <flag name='usb-host.guest-resets-all'/>
+  <flag name='migration.blocked-reasons'/>
+  <flag name='query-stats'/>
+  <flag name='query-stats-schemas'/>
+  <flag name='thread-context'/>
+  <flag name='screenshot-format-png'/>
+  <flag name='netdev.stream'/>
+  <flag name='virtio-crypto'/>
+  <flag name='pvpanic-pci'/>
+  <flag name='netdev.stream.reconnect'/>
+  <flag name='virtio-gpu.blob'/>
+  <flag name='rbd-encryption-layering'/>
+  <flag name='rbd-encryption-luks-any'/>
+  <flag name='qcow2-discard-no-unref'/>
+  <flag name='run-with.async-teardown'/>
+  <version>8002000</version>
+  <microcodeVersion>61700246</microcodeVersion>
+  <package>v8.2.0</package>
+  <arch>aarch64</arch>
[...]
diff --git a/tests/qemuxml2argvdata/aarch64-aavmf-virtio-mmio.aarch64-latest.args b/tests/qemuxml2argvdata/aarch64-aavmf-virtio-mmio.aarch64-latest.args
index b2dcead15a..5569ff3b57 100644
--- a/tests/qemuxml2argvdata/aarch64-aavmf-virtio-mmio.aarch64-latest.args
+++ b/tests/qemuxml2argvdata/aarch64-aavmf-virtio-mmio.aarch64-latest.args
@@ -10,7 +10,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-aarch64test/.config \
 -name guest=aarch64test,debug-threads=on \
 -S \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-aarch64test/master-key.aes"}' \
--machine virt,usb=off,gic-version=2,dump-guest-core=off,memory-backend=mach-virt.ram \
+-machine virt,usb=off,gic-version=2,dump-guest-core=off,memory-backend=mach-virt.ram,acpi=off \
 -accel tcg \
 -cpu cortex-a53 \
 -m size=1048576k \
@@ -25,7 +25,6 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-aarch64test/.config \
 -mon chardev=charmonitor,id=monitor,mode=control \
 -rtc base=utc \
 -no-shutdown \
--no-acpi \
 -boot strict=on \
 -kernel /aarch64.kernel \
 -initrd /aarch64.initrd \
@@ -35,7 +34,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-aarch64test/.config \
 -blockdev '{"driver":"file","filename":"/aarch64.raw","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
 -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw","file":"libvirt-1-storage"}' \
 -device '{"driver":"virtio-blk-device","drive":"libvirt-1-format","id":"virtio-disk0","bootindex":1}' \
--netdev user,id=hostnet0 \
+-netdev '{"type":"user","id":"hostnet0"}' \
 -device '{"driver":"virtio-net-device","netdev":"hostnet0","id":"net0","mac":"52:54:00:09:a4:37"}' \
 -chardev pty,id=charconsole0 \
 -device '{"driver":"virtconsole","chardev":"charconsole0","id":"console0"}' \
-- 
2.43.0
_______________________________________________
Devel mailing list -- devel@lists.libvirt.org
To unsubscribe send an email to devel-leave@lists.libvirt.org
Re: [PATCH 2/2] tests: Add capabilities for QEMU 8.2.0 on aarch64
Posted by Peter Krempa 1 year ago
On Mon, Jan 08, 2024 at 17:59:06 +0100, Andrea Bolognani wrote:
> Notable changes compared to 7.0.0, the most recent version that
> we had capabilities for until now:
> 
>   * SPICE support is no longer compiled in;
> 
>   * uses of -no-acpi are replaced with -M virt,acpi=off;
> 
>   * -netdev uses JSON.

aarch64-looking changes in qemu itself which might be relevant:

added qom types:
 adm1266
 allwinner-a10-ccm
 allwinner-a10-dramc
 allwinner-r40
 allwinner-r40-ccu
 allwinner-r40-dramc
 allwinner-sdhost-sun50i-a64
 allwinner-sdhost-sun50i-a64-emmc
 allwinner-sramc
 allwinner-sramc-sun8i-r40
 allwinner-wdt-sun4i
 allwinner-wdt-sun6i
 allwinner.i2c
 allwinner.i2c-sun6i
 aspeed.adc-ast1030
 aspeed.fmc-ast1030
 aspeed.gpio-ast1030
 aspeed.hace-ast1030
 aspeed.i2c-ast1030
 aspeed.i2c.slave
 aspeed.peci
 aspeed.scu-ast1030
 aspeed.spi1-ast1030
 aspeed.spi2-ast1030
 aspeed.timer-ast1030
 aspeed.wdt-ast1030
 ast1030-a1
 ast1030-evb-machine
 axp209_pmu
 axp221_pmu
 bpim2u-machine
 cortex-a35-arm-cpu
 cortex-a55-arm-cpu
 cortex-a710-arm-cpu
 cortex-a76-arm-cpu
 cortex-r52-arm-cpu
 cxl-downstream
 cxl-rp
 cxl-switch-mailbox-cci
 cxl-type3
 cxl-upstream
 fby35-bmc-machine
 fby35-machine
 imx6ul.gpt
 imx7.src
 isl69259
 max31785
 memory-region-portio-list
 mx25l25635f
 neoverse-n1-arm-cpu
 neoverse-n2-arm-cpu
 neoverse-v1-arm-cpu
 npcm-pspi
 olimex-stm32-h405-machine
 ps2-kbd
 ps2-mouse
 pxb-cxl
 pxb-cxl-bus
 pxb-cxl-host
 qcom-dc-scm-v1-bmc-machine
 qcom-firework-bmc-machine
 sd-card-spi
 stellaris-gamepad
 supermicro-x11spi-bmc-machine
 thread-context
 tiogapass-bmc-machine
 tpm-tis-i2c
 vhost-user-gpio-device
 vhost-user-gpio-pci
 vhost-user-scmi
 vhost-user-scmi-pci
 virt-7.1-machine
 virt-7.2-machine
 virt-8.0-machine
 virt-8.1-machine
 virt-8.2-machine
 xlnx,cframe-reg
 xlnx,versal-cfu-apb
 xlnx,versal-cfu-fdro
 xlnx,versal-cfu-sfr
 xlnx,versal-crl
 xlnx.bbram-ctrl
 xlnx.cframe-bcast-reg
 xlnx.versal-canfd
 xlnx.versal-trng
 yosemitev2-bmc-machine

removed:
 ccid-card-emulated
 ccid-card-passthru
 exynos4210.irq_gate
 vmware-svga
 xlnx,bbram-ctrl

So there's one more compile time difference in the support of 'ccid'
devices. From the additions I don't see anything that would look
interesting enough to add support for. 

> Signed-off-by: Andrea Bolognani <abologna@redhat.com>
> ---
>  .../qemu_8.2.0-virt.aarch64.xml               |   227 +
>  tests/domaincapsdata/qemu_8.2.0.aarch64.xml   |   227 +
>  .../caps_8.2.0_aarch64.replies                | 36411 ++++++++++++++++
>  .../caps_8.2.0_aarch64.xml                    |   549 +
>  ...ch64-aavmf-virtio-mmio.aarch64-latest.args |     5 +-
>  ...arch64-cpu-passthrough.aarch64-latest.args |     3 +-
>  ...fault-cpu-kvm-virt-4.2.aarch64-latest.args |     3 +-
>  ...fault-cpu-tcg-virt-4.2.aarch64-latest.args |     3 +-
>  .../aarch64-features-sve.aarch64-latest.args  |     3 +-
>  ...rch64-gic-default-both.aarch64-latest.args |     3 +-
>  ...aarch64-gic-default-v2.aarch64-latest.args |     3 +-
>  ...aarch64-gic-default-v3.aarch64-latest.args |     3 +-
>  .../aarch64-gic-default.aarch64-latest.args   |     3 +-
>  .../aarch64-gic-host.aarch64-latest.args      |     3 +-
>  .../aarch64-gic-none-both.aarch64-latest.args |     3 +-
>  .../aarch64-gic-none-tcg.aarch64-latest.args  |     3 +-
>  .../aarch64-gic-none-v2.aarch64-latest.args   |     3 +-
>  .../aarch64-gic-none-v3.aarch64-latest.args   |     3 +-
>  .../aarch64-gic-none.aarch64-latest.args      |     3 +-
>  .../aarch64-gic-v2.aarch64-latest.args        |     3 +-
>  .../aarch64-gic-v3.aarch64-latest.args        |     3 +-
>  .../aarch64-kvm-32-on-64.aarch64-latest.args  |     4 +-
>  .../aarch64-pci-serial.aarch64-latest.args    |     3 +-
>  .../aarch64-tpm.aarch64-latest.args           |     3 +-
>  ...arch64-traditional-pci.aarch64-latest.args |     3 +-
>  ...aarch64-usb-controller.aarch64-latest.args |     3 +-
>  .../aarch64-video-default.aarch64-latest.args |     3 +-
>  ...4-video-virtio-gpu-pci.aarch64-latest.args |     5 +-
>  ...rch64-virt-default-nic.aarch64-latest.args |     5 +-
>  .../aarch64-virt-graphics.aarch64-latest.args |     4 +-
>  .../aarch64-virt-headless.aarch64-latest.args |     4 +-
>  ...rch64-virt-virtio-MMIO.aarch64.latest.args |     5 +-
>  .../aarch64-virt-virtio.aarch64-latest.args   |     5 +-
>  ...h64-virtio-pci-default.aarch64-latest.args |     5 +-
>  ...o-pci-manual-addresses.aarch64-latest.args |     7 +-
>  .../arm-vexpressa9-basic.aarch64-latest.args  |     2 +-
>  .../arm-vexpressa9-virtio.aarch64-latest.args |     2 +-
>  .../arm-virt-virtio.aarch64-latest.args       |     4 +-
>  .../balloon-mmio-deflate.aarch64-latest.args  |     3 +-
>  .../clock-timer-armvtimer.aarch64-latest.args |     3 +-
>  ...ult-video-type-aarch64.aarch64-latest.args |     3 +-
>  .../disk-arm-virtio-sd.aarch64-latest.args    |     1 -
>  ...mware-auto-efi-aarch64.aarch64-latest.args |     2 +-
>  ...efi-abi-update-aarch64.aarch64-latest.args |     2 +-
>  ...-loader-raw-abi-update.aarch64-latest.args |     2 +-
>  ...-efi-format-loader-raw.aarch64-latest.args |     2 +-
>  ...i-aarch64-legacy-paths.aarch64-latest.args |     2 +-
>  ...anual-efi-acpi-aarch64.aarch64-latest.args |     2 +-
>  ...ual-efi-noacpi-aarch64.aarch64-latest.args |     3 +-
>  ...l-noefi-noacpi-aarch64.aarch64-latest.args |     3 +-
>  .../iommu-smmuv3.aarch64-latest.args          |     3 +-
>  ...ch-virt-console-native.aarch64-latest.args |     3 +-
>  ...ch-virt-console-virtio.aarch64-latest.args |     3 +-
>  ...-serial+console-native.aarch64-latest.args |     3 +-
>  ...ach-virt-serial-compat.aarch64-latest.args |     3 +-
>  ...ach-virt-serial-native.aarch64-latest.args |     3 +-
>  .../mach-virt-serial-pci.aarch64-latest.args  |     3 +-
>  .../mach-virt-serial-usb.aarch64-latest.args  |     3 +-
>  ...e-expander-bus-aarch64.aarch64-latest.args |     3 +-
>  .../pvpanic-pci-aarch64.aarch64-latest.args   |     2 +-
>  ...pci-no-address-aarch64.aarch64-latest.args |     2 +-
>  .../virtio-iommu-aarch64.aarch64-latest.args  |     2 +-
>  62 files changed, 37483 insertions(+), 112 deletions(-)
>  create mode 100644 tests/domaincapsdata/qemu_8.2.0-virt.aarch64.xml
>  create mode 100644 tests/domaincapsdata/qemu_8.2.0.aarch64.xml
>  create mode 100644 tests/qemucapabilitiesdata/caps_8.2.0_aarch64.replies
>  create mode 100644 tests/qemucapabilitiesdata/caps_8.2.0_aarch64.xml

Reviewed-by: Peter Krempa <pkrempa@redhat.com>


P.S: The differences are generated by a script for reviewing the
     .replies file changes I'm working on
_______________________________________________
Devel mailing list -- devel@lists.libvirt.org
To unsubscribe send an email to devel-leave@lists.libvirt.org
Re: Re: [PATCH 2/2] tests: Add capabilities for QEMU 8.2.0 on aarch64
Posted by Andrea Bolognani 1 year ago
On Mon, Jan 08, 2024 at 10:21:53PM +0100, Peter Krempa wrote:
> removed:
>  ccid-card-emulated
>  ccid-card-passthru
>  exynos4210.irq_gate
>  vmware-svga
>  xlnx,bbram-ctrl
>
> So there's one more compile time difference in the support of 'ccid'
> devices.

CCID devices are implemented using libcacard, which is part of SPICE,
so this is not really surprising :)

> From the additions I don't see anything that would look
> interesting enough to add support for.

Yeah it looks like the usual churn, nothing really stood out to me.
If there's anything good in there, I'm sure someone will open a bug
about adding support for it and I will be on the hook :)

> P.S: The differences are generated by a script for reviewing the
>      .replies file changes I'm working on

Useful! I usually just do a regular diff but of course with entries
shuffling around all the time things get quite muddy...

Thanks for the review!

-- 
Andrea Bolognani / Red Hat / Virtualization
_______________________________________________
Devel mailing list -- devel@lists.libvirt.org
To unsubscribe send an email to devel-leave@lists.libvirt.org
Re: [PATCH 2/2] tests: Add capabilities for QEMU 8.2.0 on aarch64
Posted by Daniel P. Berrangé 1 year ago
On Mon, Jan 08, 2024 at 05:59:06PM +0100, Andrea Bolognani wrote:
> Notable changes compared to 7.0.0, the most recent version that
> we had capabilities for until now:
> 
>   * SPICE support is no longer compiled in;

Presumably that's just your dev machine lacking spice-server-devel,
since upstream QEMU still supports SPICE on all arches AFAIK.

> 
>   * uses of -no-acpi are replaced with -M virt,acpi=off;
> 
>   * -netdev uses JSON.

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
_______________________________________________
Devel mailing list -- devel@lists.libvirt.org
To unsubscribe send an email to devel-leave@lists.libvirt.org
Re: Re: [PATCH 2/2] tests: Add capabilities for QEMU 8.2.0 on aarch64
Posted by Andrea Bolognani 1 year ago
On Mon, Jan 08, 2024 at 05:29:41PM +0000, Daniel P. Berrangé wrote:
> On Mon, Jan 08, 2024 at 05:59:06PM +0100, Andrea Bolognani wrote:
> > Notable changes compared to 7.0.0, the most recent version that
> > we had capabilities for until now:
> >
> >   * SPICE support is no longer compiled in;
>
> Presumably that's just your dev machine lacking spice-server-devel,
> since upstream QEMU still supports SPICE on all arches AFAIK.

Correct.

Previous aarch64 capabilities were obtained by building upstream QEMU
on RHEL 8, where SPICE headers were available; this time I've used
RHEL 9, where they aren't.

It's not very practical for me to deploy Fedora on this machine. We
have zero coverage in our test suite for the use of SPICE on aarch64
anyway, as evidenced by the fact that not a single test case breaks
after this change.

-- 
Andrea Bolognani / Red Hat / Virtualization
_______________________________________________
Devel mailing list -- devel@lists.libvirt.org
To unsubscribe send an email to devel-leave@lists.libvirt.org