From: Nathan Chen <[email protected]>

Detect whether QEMU's vfio-pci device supports the 'ats' property,
which controls whether the device's ATS extended capability is
exposed to the guest.

Signed-off-by: Nathan Chen <[email protected]>
---
 src/qemu/qemu_capabilities.c                       | 2 ++
 src/qemu/qemu_capabilities.h                       | 1 +
 tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml | 1 +
 tests/qemucapabilitiesdata/caps_11.1.0_s390x.xml   | 1 +
 tests/qemucapabilitiesdata/caps_11.1.0_x86_64.xml  | 1 +
 tests/qemucapabilitiesdata/caps_11.2.0_aarch64.xml | 1 +
 tests/qemucapabilitiesdata/caps_11.2.0_s390x.xml   | 1 +
 tests/qemucapabilitiesdata/caps_11.2.0_x86_64.xml  | 1 +
 8 files changed, 9 insertions(+)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index d8217bd72e..de439be8df 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -782,6 +782,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
               /* 505 */
               "pcie-root-port.speed", /* QEMU_CAPS_PCIE_ROOT_PORT_SPEED */
               "pcie-root-port.width", /* QEMU_CAPS_PCIE_ROOT_PORT_WIDTH */
+              "vfio-pci.ats", /* QEMU_CAPS_VFIO_PCI_ATS */
     );
 
 
@@ -1565,6 +1566,7 @@ static struct virQEMUCapsDevicePropsFlags 
virQEMUCapsDevicePropsVirtioSCSI[] = {
 };
 
 static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVfioPCI[] = {
+    { "ats", QEMU_CAPS_VFIO_PCI_ATS, NULL },
 };
 
 static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsSCSIDisk[] = {
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 18a21dfaff..2d910a124e 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -756,6 +756,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for 
syntax-check */
     /* 505 */
     QEMU_CAPS_PCIE_ROOT_PORT_SPEED, /* pcie-root-port.speed */
     QEMU_CAPS_PCIE_ROOT_PORT_WIDTH, /* pcie-root-port.width */
+    QEMU_CAPS_VFIO_PCI_ATS, /* vfio-pci.ats */
 
     QEMU_CAPS_LAST /* this must always be the last item */
 } virQEMUCapsFlags;
diff --git a/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml 
b/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml
index 3634a37a8e..198cebebc4 100644
--- a/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml
@@ -195,6 +195,7 @@
   <flag name='arm-smmuv3.cmdqv'/>
   <flag name='iothread.poll-weight'/>
   <flag name='win-dmp.guest-aware'/>
+  <flag name='vfio-pci.ats'/>
   <version>11001000</version>
   <microcodeVersion>61700287</microcodeVersion>
   <package>v11.1.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_11.1.0_s390x.xml 
b/tests/qemucapabilitiesdata/caps_11.1.0_s390x.xml
index d440b07b4f..349fa072f5 100644
--- a/tests/qemucapabilitiesdata/caps_11.1.0_s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_11.1.0_s390x.xml
@@ -150,6 +150,7 @@
   <flag name='object-monitor-qmp'/>
   <flag name='iothread.poll-weight'/>
   <flag name='win-dmp.guest-aware'/>
+  <flag name='vfio-pci.ats'/>
   <version>11001000</version>
   <microcodeVersion>39100287</microcodeVersion>
   <package>v11.1.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_11.1.0_x86_64.xml 
b/tests/qemucapabilitiesdata/caps_11.1.0_x86_64.xml
index ff7402ba11..7c4f106620 100644
--- a/tests/qemucapabilitiesdata/caps_11.1.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_11.1.0_x86_64.xml
@@ -225,6 +225,7 @@
   <flag name='object-monitor-qmp'/>
   <flag name='iothread.poll-weight'/>
   <flag name='win-dmp.guest-aware'/>
+  <flag name='vfio-pci.ats'/>
   <version>11001000</version>
   <microcodeVersion>43100287</microcodeVersion>
   <package>v11.1.0</package>
diff --git a/tests/qemucapabilitiesdata/caps_11.2.0_aarch64.xml 
b/tests/qemucapabilitiesdata/caps_11.2.0_aarch64.xml
index 15ad9f94cb..4f4c7f25b4 100644
--- a/tests/qemucapabilitiesdata/caps_11.2.0_aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_11.2.0_aarch64.xml
@@ -199,6 +199,7 @@
   <flag name='pcie-downstream-port'/>
   <flag name='pcie-root-port.speed'/>
   <flag name='pcie-root-port.width'/>
+  <flag name='vfio-pci.ats'/>
   <version>11001050</version>
   <microcodeVersion>61700288</microcodeVersion>
   <package>v11.1.0-3637-gf29ccc287a</package>
diff --git a/tests/qemucapabilitiesdata/caps_11.2.0_s390x.xml 
b/tests/qemucapabilitiesdata/caps_11.2.0_s390x.xml
index afe44a262c..597eff7605 100644
--- a/tests/qemucapabilitiesdata/caps_11.2.0_s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_11.2.0_s390x.xml
@@ -150,6 +150,7 @@
   <flag name='object-monitor-qmp'/>
   <flag name='iothread.poll-weight'/>
   <flag name='win-dmp.guest-aware'/>
+  <flag name='vfio-pci.ats'/>
   <version>11001050</version>
   <microcodeVersion>39100288</microcodeVersion>
   <package>v11.1.0-1870-g81ce3a8773</package>
diff --git a/tests/qemucapabilitiesdata/caps_11.2.0_x86_64.xml 
b/tests/qemucapabilitiesdata/caps_11.2.0_x86_64.xml
index 73c914613c..bfe3596ab4 100644
--- a/tests/qemucapabilitiesdata/caps_11.2.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_11.2.0_x86_64.xml
@@ -229,6 +229,7 @@
   <flag name='pcie-downstream-port'/>
   <flag name='pcie-root-port.speed'/>
   <flag name='pcie-root-port.width'/>
+  <flag name='vfio-pci.ats'/>
   <version>11001050</version>
   <microcodeVersion>43100288</microcodeVersion>
   <package>v11.1.0-3637-gf29ccc287a</package>
-- 
2.43.0

Reply via email to