From: Nathan Chen <nathanc@nvidia.com> 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 <nathanc@nvidia.com> --- 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