On Fri, Jul 17, 2026 at 03:00:23PM -0700, Nathan Chen via Devel wrote:
> From: Nathan Chen <[email protected]>
>
> The arm-smmuv3 QOM type appears in qom-list-types on ARM QEMU as far
> back as 8.2 because the type is used for machine-integrated IOMMU
> (-machine virt,iommu=smmuv3). That reply does not indicate support
> for a user-pluggable -device arm-smmuv3.
>
> User-pluggable SMMUv3 with the smmu_per_bus property was added in QEMU
> 10.2.0. Probe that property via device-list-properties instead of
> registering arm-smmuv3 in virQEMUCapsObjectTypes[], so the capability
> tracks pluggable device support rather than mere QOM visibility.
> Skip arm-smmuv3 device-list-properties probing on non-ARM targets.
>
> In qemu_validate.c, an IOMMU with pci_bus set requires
> QEMU_CAPS_ARM_SMMUV3; machine-integrated SMMUv3 without pci_bus keeps
> using QEMU_CAPS_MACHINE_VIRT_IOMMU.
>
> Update caps_8.2.0_aarch64, caps_9.2.0_aarch64, caps_10.0.0_aarch64,
> caps_10.2.0_aarch64, caps_11.0.0_aarch64, caps_8.2.0_armv7l, and
> caps_11.1.0_aarch64 .replies with the arm-smmuv3 device-list-properties
> exchange.
>
> Signed-off-by: Nathan Chen <[email protected]>
> ---
> src/qemu/qemu_capabilities.c | 12 ++
> src/qemu/qemu_capabilities.h | 1 +
> src/qemu/qemu_validate.c | 9 +-
> .../caps_10.0.0_aarch64.replies | 79 ++++++----
> .../caps_10.2.0_aarch64.replies | 89 +++++++----
> .../caps_10.2.0_aarch64.xml | 1 +
> .../caps_11.0.0_aarch64.replies | 132 ++++++++++++----
> .../caps_11.0.0_aarch64.xml | 1 +
> .../caps_11.1.0_aarch64.replies | 143 ++++++++++++++----
> .../caps_11.1.0_aarch64.xml | 1 +
> .../caps_8.2.0_aarch64.replies | 79 ++++++----
> .../caps_8.2.0_armv7l.replies | 79 ++++++----
> .../caps_9.2.0_aarch64+hvf.replies | 75 ++++++---
> 13 files changed, 514 insertions(+), 187 deletions(-)
>
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index be57dcad8e..c98023bbe2 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -767,6 +767,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
>
> /* 495 */
> "blockdev-mirror.target-is-zero", /*
> QEMU_CAPS_BLOCKDEV_MIRROR_TARGET_IS_ZERO */
> + "arm-smmuv3.smmu_per_bus", /* QEMU_CAPS_ARM_SMMUV3 */
IMO we should use QEMU_CAPS_ARM_SMMUV3_SMMU_PER_BUS as the capability name.
We support machine-wide smmuv3 for some time already so this could be
misleading.
> );
>
>
> @@ -1643,6 +1644,10 @@ static struct virQEMUCapsDevicePropsFlags
> virQEMUCapsDevicePropsAMDIOMMU[] = {
> { "xtsup", QEMU_CAPS_AMD_IOMMU_XTSUP, NULL },
> };
>
> +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsArmSmmuv3[]
> = {
> + { "smmu_per_bus", QEMU_CAPS_ARM_SMMUV3, NULL },
> +};
> +
> /* see documentation for virQEMUQAPISchemaPathGet for the query format */
> static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] = {
> { "blockdev-add/arg-type/+file/drop-cache",
> QEMU_CAPS_MIGRATION_FILE_DROP_CACHE },
> @@ -1808,6 +1813,9 @@ static virQEMUCapsDeviceTypeProps
> virQEMUCapsDeviceProps[] = {
> { "amd-iommu", virQEMUCapsDevicePropsAMDIOMMU,
> G_N_ELEMENTS(virQEMUCapsDevicePropsAMDIOMMU),
> QEMU_CAPS_AMD_IOMMU },
> + { "arm-smmuv3", virQEMUCapsDevicePropsArmSmmuv3,
> + G_N_ELEMENTS(virQEMUCapsDevicePropsArmSmmuv3),
> + -1 },
> { "scsi-block", virQEMUCapsDevicePropsSCSIBlock,
> G_N_ELEMENTS(virQEMUCapsDevicePropsSCSIBlock),
> -1 },
> @@ -2825,6 +2833,10 @@ virQEMUCapsProbeQMPDeviceProperties(virQEMUCaps
> *qemuCaps,
> !virQEMUCapsGet(qemuCaps, device->capsCondition))
> continue;
>
> + if (STREQ(device->type, "arm-smmuv3") &&
> + !ARCH_IS_ARM(qemuCaps->arch))
> + continue;
> +
No need for this check, if qemu ever reports support for arm-smmuv3 on
different architecture that would be something qemu needs to fix.
> if (!(qemuprops = qemuMonitorGetDeviceProps(mon, device->type)))
> return -1;
>
> diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
> index 3014f3dc5e..c03c32389b 100644
> --- a/src/qemu/qemu_capabilities.h
> +++ b/src/qemu/qemu_capabilities.h
> @@ -741,6 +741,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for
> syntax-check */
>
> /* 495 */
> QEMU_CAPS_BLOCKDEV_MIRROR_TARGET_IS_ZERO, /* 'blockdev-mirror' supports
> 'target-is-zero' */
> + QEMU_CAPS_ARM_SMMUV3, /* arm-smmuv3.smmu_per_bus */
>
> QEMU_CAPS_LAST /* this must always be the last item */
> } virQEMUCapsFlags;
> diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
> index 439d4b1916..500b8ee680 100644
> --- a/src/qemu/qemu_validate.c
> +++ b/src/qemu/qemu_validate.c
> @@ -5711,7 +5711,14 @@ qemuValidateDomainDeviceDefIOMMU(const
> virDomainIOMMUDef *iommu,
> virDomainIOMMUModelTypeToString(iommu->model));
> return -1;
> }
> - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_VIRT_IOMMU)) {
> + if (iommu->pci_bus >= 0) {
> + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_ARM_SMMUV3)) {
> + virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> + _("IOMMU device: Setting pciBus for '%1$s' is
> not supported with this QEMU binary"),
> +
> virDomainIOMMUModelTypeToString(iommu->model));
> + return -1;
> + }
> + } else if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_VIRT_IOMMU)) {
No need to use if - else if, just add the new check and leave the old one
unchanged.
> virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> _("IOMMU device: '%1$s' is not supported with
> this QEMU binary"),
> virDomainIOMMUModelTypeToString(iommu->model));
> diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_aarch64.replies
> b/tests/qemucapabilitiesdata/caps_10.0.0_aarch64.replies
> index 0448dcaab9..382b76e021 100644
> --- a/tests/qemucapabilitiesdata/caps_10.0.0_aarch64.replies
> +++ b/tests/qemucapabilitiesdata/caps_10.0.0_aarch64.replies
> @@ -32067,17 +32067,44 @@
> {
> "execute": "device-list-properties",
> "arguments": {
> - "typename": "scsi-block"
> + "typename": "arm-smmuv3"
> },
> "id": "libvirt-31"
> }
>
> +{
> + "return": [
> + {
> + "name": "primary-bus",
> + "type": "link<PCI>"
> + },
> + {
> + "default-value": 0,
> + "name": "bus_num",
> + "type": "uint8"
> + },
> + {
> + "name": "stage",
> + "type": "str"
> + }
> + ],
> + "id": "libvirt-31"
> +}
> +
> +{
> + "execute": "device-list-properties",
> + "arguments": {
> + "typename": "scsi-block"
> + },
> + "id": "libvirt-32"
> +}
> +
> {
> "error": {
> "class": "DeviceNotFound",
> "desc": "The libvirt device dump was not collected for this
> version+device tuple"
> },
> - "id": "libvirt-31"
> + "id": "libvirt-32"
> }
>
> {
> @@ -32085,7 +32112,7 @@
> "arguments": {
> "typename": "scsi-generic"
> },
> - "id": "libvirt-32"
> + "id": "libvirt-33"
> }
>
> {
> @@ -32093,7 +32120,7 @@
> "class": "DeviceNotFound",
> "desc": "The libvirt device dump was not collected for this
> version+device tuple"
> },
> - "id": "libvirt-32"
> + "id": "libvirt-33"
> }
>
> {
> @@ -32101,7 +32128,7 @@
> "arguments": {
> "typename": "memory-backend-file"
> },
> - "id": "libvirt-33"
> + "id": "libvirt-34"
> }
>
> {
> @@ -32191,7 +32218,7 @@
> "type": "bool"
> }
> ],
> - "id": "libvirt-33"
> + "id": "libvirt-34"
> }
>
> {
> @@ -32199,7 +32226,7 @@
> "arguments": {
> "typename": "memory-backend-memfd"
> },
> - "id": "libvirt-34"
> + "id": "libvirt-35"
> }
>
> {
> @@ -32278,7 +32305,7 @@
> "type": "int"
> }
> ],
> - "id": "libvirt-34"
> + "id": "libvirt-35"
> }
>
> {
> @@ -32286,7 +32313,7 @@
> "arguments": {
> "typename": "max-arm-cpu"
> },
> - "id": "libvirt-35"
> + "id": "libvirt-36"
> }
>
> {
> @@ -32534,12 +32561,12 @@
> "type": "link<irq>"
> }
> ],
> - "id": "libvirt-35"
> + "id": "libvirt-36"
> }
>
> {
> "execute": "query-machines",
> - "id": "libvirt-36"
> + "id": "libvirt-37"
> }
>
> {
> @@ -33634,7 +33661,7 @@
> "default-ram-id": "ram"
> }
> ],
> - "id": "libvirt-36"
> + "id": "libvirt-37"
> }
>
> {
> @@ -33642,7 +33669,7 @@
> "arguments": {
> "typename": "virt-10.0-machine"
> },
> - "id": "libvirt-37"
> + "id": "libvirt-38"
> }
>
> {
> @@ -33889,7 +33916,7 @@
> "type": "string"
> }
> ],
> - "id": "libvirt-37"
> + "id": "libvirt-38"
> }
>
> {
> @@ -33897,7 +33924,7 @@
> "arguments": {
> "typename": "none-machine"
> },
> - "id": "libvirt-38"
> + "id": "libvirt-39"
> }
>
> {
> @@ -34016,12 +34043,12 @@
> "type": "bool"
> }
> ],
> - "id": "libvirt-38"
> + "id": "libvirt-39"
> }
>
> {
> "execute": "query-cpu-definitions",
> - "id": "libvirt-39"
> + "id": "libvirt-40"
> }
>
> {
> @@ -34315,12 +34342,12 @@
> "deprecated": false
> }
> ],
> - "id": "libvirt-39"
> + "id": "libvirt-40"
> }
>
> {
> "execute": "query-command-line-options",
> - "id": "libvirt-40"
> + "id": "libvirt-41"
> }
>
> {
> @@ -35787,12 +35814,12 @@
> "option": "drive"
> }
> ],
> - "id": "libvirt-40"
> + "id": "libvirt-41"
> }
>
> {
> "execute": "query-gic-capabilities",
> - "id": "libvirt-41"
> + "id": "libvirt-42"
> }
>
> {
> @@ -35808,7 +35835,7 @@
> "kernel": false
> }
> ],
> - "id": "libvirt-41"
> + "id": "libvirt-42"
> }
>
> {
> @@ -35819,7 +35846,7 @@
> "name": "host"
> }
> },
> - "id": "libvirt-42"
> + "id": "libvirt-43"
> }
>
> {
> @@ -35852,7 +35879,7 @@
> }
> }
> },
> - "id": "libvirt-42"
> + "id": "libvirt-43"
> }
>
> {
> @@ -35867,11 +35894,11 @@
> }
> }
> },
> - "id": "libvirt-43"
> + "id": "libvirt-44"
> }
>
> {
> - "id": "libvirt-43",
> + "id": "libvirt-44",
> "error": {
> "class": "GenericError",
> "desc": "Parameter 'model.props.hv-passthrough' is unexpected"
> diff --git a/tests/qemucapabilitiesdata/caps_10.2.0_aarch64.replies
> b/tests/qemucapabilitiesdata/caps_10.2.0_aarch64.replies
> index 2a5be22ed8..c0cb15aa3a 100644
> --- a/tests/qemucapabilitiesdata/caps_10.2.0_aarch64.replies
> +++ b/tests/qemucapabilitiesdata/caps_10.2.0_aarch64.replies
> @@ -33933,11 +33933,44 @@
> {
> "execute": "device-list-properties",
> "arguments": {
> - "typename": "scsi-block"
> + "typename": "arm-smmuv3"
> },
> "id": "libvirt-32"
> }
>
> +{
> + "return": [
> + {
> + "name": "primary-bus",
> + "type": "link<PCI>"
> + },
> + {
> + "default-value": 0,
> + "name": "bus_num",
> + "type": "uint8"
> + },
> + {
> + "default-value": false,
> + "name": "smmu_per_bus",
> + "description": "on/off",
> + "type": "bool"
> + },
> + {
> + "name": "stage",
> + "type": "str"
> + }
> + ],
> + "id": "libvirt-32"
> +}
> +
> +{
> + "execute": "device-list-properties",
> + "arguments": {
> + "typename": "scsi-block"
> + },
> + "id": "libvirt-33"
> +}
> +
> {
> "return": [
> {
> @@ -34008,7 +34041,7 @@
> "type": "int32"
> }
> ],
> - "id": "libvirt-32"
> + "id": "libvirt-33"
> }
>
> {
> @@ -34016,7 +34049,7 @@
> "arguments": {
> "typename": "scsi-generic"
> },
> - "id": "libvirt-33"
> + "id": "libvirt-34"
> }
>
> {
> @@ -34057,7 +34090,7 @@
> "type": "int32"
> }
> ],
> - "id": "libvirt-33"
> + "id": "libvirt-34"
> }
>
> {
> @@ -34065,7 +34098,7 @@
> "arguments": {
> "typename": "memory-backend-file"
> },
> - "id": "libvirt-34"
> + "id": "libvirt-35"
> }
>
> {
> @@ -34159,7 +34192,7 @@
> "type": "bool"
> }
> ],
> - "id": "libvirt-34"
> + "id": "libvirt-35"
> }
>
> {
> @@ -34167,7 +34200,7 @@
> "arguments": {
> "typename": "memory-backend-memfd"
> },
> - "id": "libvirt-35"
> + "id": "libvirt-36"
> }
>
> {
> @@ -34236,7 +34269,7 @@
> "type": "bool"
> }
> ],
> - "id": "libvirt-35"
> + "id": "libvirt-36"
> }
>
> {
> @@ -34244,7 +34277,7 @@
> "arguments": {
> "typename": "max-arm-cpu"
> },
> - "id": "libvirt-36"
> + "id": "libvirt-37"
> }
>
> {
> @@ -34492,12 +34525,12 @@
> "type": "link<irq>"
> }
> ],
> - "id": "libvirt-36"
> + "id": "libvirt-37"
> }
>
> {
> "execute": "query-machines",
> - "id": "libvirt-37"
> + "id": "libvirt-38"
> }
>
> {
> @@ -35539,7 +35572,7 @@
> "default-ram-id": "ram"
> }
> ],
> - "id": "libvirt-37"
> + "id": "libvirt-38"
> }
>
> {
> @@ -35547,7 +35580,7 @@
> "arguments": {
> "typename": "virt-10.2-machine"
> },
> - "id": "libvirt-38"
> + "id": "libvirt-39"
> }
>
> {
> @@ -35810,7 +35843,7 @@
> "type": "child<cfi.pflash01>"
> }
> ],
> - "id": "libvirt-38"
> + "id": "libvirt-39"
> }
>
> {
> @@ -35818,7 +35851,7 @@
> "arguments": {
> "typename": "none-machine"
> },
> - "id": "libvirt-39"
> + "id": "libvirt-40"
> }
>
> {
> @@ -35943,12 +35976,12 @@
> "type": "bool"
> }
> ],
> - "id": "libvirt-39"
> + "id": "libvirt-40"
> }
>
> {
> "execute": "query-cpu-definitions",
> - "id": "libvirt-40"
> + "id": "libvirt-41"
> }
>
> {
> @@ -36176,12 +36209,12 @@
> "deprecated": false
> }
> ],
> - "id": "libvirt-40"
> + "id": "libvirt-41"
> }
>
> {
> "execute": "query-command-line-options",
> - "id": "libvirt-41"
> + "id": "libvirt-42"
> }
>
> {
> @@ -37743,12 +37776,12 @@
> "option": "drive"
> }
> ],
> - "id": "libvirt-41"
> + "id": "libvirt-42"
> }
>
> {
> "execute": "query-gic-capabilities",
> - "id": "libvirt-42"
> + "id": "libvirt-43"
> }
>
> {
> @@ -37764,7 +37797,7 @@
> "kernel": true
> }
> ],
> - "id": "libvirt-42"
> + "id": "libvirt-43"
> }
>
> {
> @@ -37775,7 +37808,7 @@
> "name": "host"
> }
> },
> - "id": "libvirt-43"
> + "id": "libvirt-44"
> }
>
> {
> @@ -37808,7 +37841,7 @@
> }
> }
> },
> - "id": "libvirt-43"
> + "id": "libvirt-44"
> }
>
> {
> @@ -37819,7 +37852,7 @@
> "name": "host"
> }
> },
> - "id": "libvirt-44"
> + "id": "libvirt-45"
> }
>
> {
> @@ -37852,7 +37885,7 @@
> }
> }
> },
> - "id": "libvirt-44"
> + "id": "libvirt-45"
> }
>
> {
> @@ -37867,11 +37900,11 @@
> }
> }
> },
> - "id": "libvirt-45"
> + "id": "libvirt-46"
> }
>
> {
> - "id": "libvirt-45",
> + "id": "libvirt-46",
> "error": {
> "class": "GenericError",
> "desc": "Parameter 'model.props.hv-passthrough' is unexpected"
> diff --git a/tests/qemucapabilitiesdata/caps_10.2.0_aarch64.xml
> b/tests/qemucapabilitiesdata/caps_10.2.0_aarch64.xml
> index df3e2a8275..f637cb6f11 100644
> --- a/tests/qemucapabilitiesdata/caps_10.2.0_aarch64.xml
> +++ b/tests/qemucapabilitiesdata/caps_10.2.0_aarch64.xml
> @@ -186,6 +186,7 @@
> <flag name='iommufd'/>
> <flag name='uefi-vars'/>
> <flag name='blockdev-mirror.target-is-zero'/>
> + <flag name='arm-smmuv3.smmu_per_bus'/>
> <version>10002000</version>
> <microcodeVersion>61700287</microcodeVersion>
> <package>v10.2.0</package>
> diff --git a/tests/qemucapabilitiesdata/caps_11.0.0_aarch64.replies
> b/tests/qemucapabilitiesdata/caps_11.0.0_aarch64.replies
> index fef7dd9730..078716745d 100644
> --- a/tests/qemucapabilitiesdata/caps_11.0.0_aarch64.replies
> +++ b/tests/qemucapabilitiesdata/caps_11.0.0_aarch64.replies
> @@ -33845,11 +33845,87 @@
> {
> "execute": "device-list-properties",
> "arguments": {
> - "typename": "scsi-block"
> + "typename": "arm-smmuv3"
> },
> "id": "libvirt-32"
> }
>
> +{
> + "return": [
> + {
> + "name": "memory",
> + "type": "link<memory-region>"
> + },
> + {
> + "name": "secure-memory",
> + "type": "link<memory-region>"
> + },
> + {
> + "name": "primary-bus",
> + "type": "link<PCI>"
> + },
> + {
> + "default-value": 0,
> + "name": "bus_num",
> + "type": "uint8"
> + },
> + {
> + "default-value": false,
> + "name": "smmu_per_bus",
> + "description": "on/off",
> + "type": "bool"
> + },
> + {
> + "default-value": "44",
> + "name": "oas",
> + "description": "Specify Output Address Size (for accel=on). Supported
> values are 44 or 48 bits. Defaults to 44 bits. oas=auto is not supported.",
> + "type": "OasMode"
> + },
> + {
> + "default-value": "on",
> + "name": "ril",
> + "description": "Disable range invalidation support (for accel=on).
> ril=auto is not supported.",
> + "type": "OnOffAuto"
> + },
> + {
> + "default-value": 0,
> + "name": "msi-gpa",
> + "type": "uint64"
> + },
> + {
> + "default-value": false,
> + "name": "accel",
> + "description": "Enable SMMUv3 accelerator support. Allows host SMMUv3
> to be configured in nested mode for vfio-pci dev assignment",
> + "type": "bool"
> + },
> + {
> + "name": "stage",
> + "type": "str"
> + },
> + {
> + "default-value": "0",
> + "name": "ssidsize",
> + "description": "Number of bits used to represent SubstreamIDs (SSIDs).
> A value of N allows SSIDs in the range [0 .. 2^N - 1]. Valid range is 0-20,
> where 0 disables SubstreamID support. Defaults to 0. A value greater than 0
> is required to enable PASID support. ssidsize=auto is not supported.",
> + "type": "SsidSizeMode"
> + },
> + {
> + "default-value": "off",
> + "name": "ats",
> + "description": "Enable/disable ATS support (for accel=on). Please
> ensure host platform has ATS support before enabling this. ats=auto is not
> supported.",
> + "type": "OnOffAuto"
> + }
> + ],
> + "id": "libvirt-32"
> +}
> +
> +{
> + "execute": "device-list-properties",
> + "arguments": {
> + "typename": "scsi-block"
> + },
> + "id": "libvirt-33"
> +}
> +
> {
> "return": [
> {
> @@ -33926,7 +34002,7 @@
> "type": "int32"
> }
> ],
> - "id": "libvirt-32"
> + "id": "libvirt-33"
> }
>
> {
> @@ -33934,7 +34010,7 @@
> "arguments": {
> "typename": "scsi-generic"
> },
> - "id": "libvirt-33"
> + "id": "libvirt-34"
> }
>
> {
> @@ -33975,7 +34051,7 @@
> "type": "int32"
> }
> ],
> - "id": "libvirt-33"
> + "id": "libvirt-34"
> }
>
> {
> @@ -33983,7 +34059,7 @@
> "arguments": {
> "typename": "memory-backend-file"
> },
> - "id": "libvirt-34"
> + "id": "libvirt-35"
> }
>
> {
> @@ -34077,7 +34153,7 @@
> "type": "bool"
> }
> ],
> - "id": "libvirt-34"
> + "id": "libvirt-35"
> }
>
> {
> @@ -34085,7 +34161,7 @@
> "arguments": {
> "typename": "memory-backend-memfd"
> },
> - "id": "libvirt-35"
> + "id": "libvirt-36"
> }
>
> {
> @@ -34154,7 +34230,7 @@
> "type": "bool"
> }
> ],
> - "id": "libvirt-35"
> + "id": "libvirt-36"
> }
>
> {
> @@ -34162,7 +34238,7 @@
> "arguments": {
> "typename": "max-arm-cpu"
> },
> - "id": "libvirt-36"
> + "id": "libvirt-37"
> }
>
> {
> @@ -34411,12 +34487,12 @@
> "type": "link<irq>"
> }
> ],
> - "id": "libvirt-36"
> + "id": "libvirt-37"
> }
>
> {
> "execute": "query-machines",
> - "id": "libvirt-37"
> + "id": "libvirt-38"
> }
>
> {
> @@ -35466,7 +35542,7 @@
> "default-ram-id": "ram"
> }
> ],
> - "id": "libvirt-37"
> + "id": "libvirt-38"
> }
>
> {
> @@ -35474,7 +35550,7 @@
> "arguments": {
> "typename": "virt-11.0-machine"
> },
> - "id": "libvirt-38"
> + "id": "libvirt-39"
> }
>
> {
> @@ -35752,7 +35828,7 @@
> "type": "child<cfi.pflash01>"
> }
> ],
> - "id": "libvirt-38"
> + "id": "libvirt-39"
> }
>
> {
> @@ -35760,7 +35836,7 @@
> "arguments": {
> "typename": "none-machine"
> },
> - "id": "libvirt-39"
> + "id": "libvirt-40"
> }
>
> {
> @@ -35890,12 +35966,12 @@
> "type": "bool"
> }
> ],
> - "id": "libvirt-39"
> + "id": "libvirt-40"
> }
>
> {
> "execute": "query-cpu-definitions",
> - "id": "libvirt-40"
> + "id": "libvirt-41"
> }
>
> {
> @@ -36123,12 +36199,12 @@
> "deprecated": false
> }
> ],
> - "id": "libvirt-40"
> + "id": "libvirt-41"
> }
>
> {
> "execute": "query-command-line-options",
> - "id": "libvirt-41"
> + "id": "libvirt-42"
> }
>
> {
> @@ -37709,12 +37785,12 @@
> "option": "drive"
> }
> ],
> - "id": "libvirt-41"
> + "id": "libvirt-42"
> }
>
> {
> "execute": "query-gic-capabilities",
> - "id": "libvirt-42"
> + "id": "libvirt-43"
> }
>
> {
> @@ -37730,7 +37806,7 @@
> "kernel": true
> }
> ],
> - "id": "libvirt-42"
> + "id": "libvirt-43"
> }
>
> {
> @@ -37741,7 +37817,7 @@
> "name": "host"
> }
> },
> - "id": "libvirt-43"
> + "id": "libvirt-44"
> }
>
> {
> @@ -37774,7 +37850,7 @@
> }
> }
> },
> - "id": "libvirt-43"
> + "id": "libvirt-44"
> }
>
> {
> @@ -37785,7 +37861,7 @@
> "name": "host"
> }
> },
> - "id": "libvirt-44"
> + "id": "libvirt-45"
> }
>
> {
> @@ -37818,7 +37894,7 @@
> }
> }
> },
> - "id": "libvirt-44"
> + "id": "libvirt-45"
> }
>
> {
> @@ -37833,11 +37909,11 @@
> }
> }
> },
> - "id": "libvirt-45"
> + "id": "libvirt-46"
> }
>
> {
> - "id": "libvirt-45",
> + "id": "libvirt-46",
> "error": {
> "class": "GenericError",
> "desc": "Parameter 'model.props.hv-passthrough' is unexpected"
> diff --git a/tests/qemucapabilitiesdata/caps_11.0.0_aarch64.xml
> b/tests/qemucapabilitiesdata/caps_11.0.0_aarch64.xml
> index 3fdc0d6621..b5f43d9be5 100644
> --- a/tests/qemucapabilitiesdata/caps_11.0.0_aarch64.xml
> +++ b/tests/qemucapabilitiesdata/caps_11.0.0_aarch64.xml
> @@ -188,6 +188,7 @@
> <flag name='uefi-vars'/>
> <flag name='query-block-flat'/>
> <flag name='blockdev-mirror.target-is-zero'/>
> + <flag name='arm-smmuv3.smmu_per_bus'/>
> <version>11000000</version>
> <microcodeVersion>61700286</microcodeVersion>
> <package>v11.0.0</package>
> diff --git a/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.replies
> b/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.replies
> index 41cd5496c6..c91d77655d 100644
> --- a/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.replies
> +++ b/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.replies
> @@ -33939,11 +33939,98 @@
> {
> "execute": "device-list-properties",
> "arguments": {
> - "typename": "scsi-block"
> + "typename": "arm-smmuv3"
> },
> "id": "libvirt-32"
> }
>
> +{
> + "return": [
> + {
> + "name": "memory",
> + "type": "link<memory-region>"
> + },
> + {
> + "name": "secure-memory",
> + "type": "link<memory-region>"
> + },
> + {
> + "name": "primary-bus",
> + "type": "link<PCI>"
> + },
> + {
> + "default-value": 0,
> + "name": "bus_num",
> + "type": "uint8"
> + },
> + {
> + "default-value": false,
> + "name": "smmu_per_bus",
> + "description": "on/off",
> + "type": "bool"
> + },
> + {
> + "default-value": "auto",
> + "name": "cmdqv",
> + "description": "Enable/disable CMDQV support (for accel=on). Valid
> values are on, off, and auto. Defaults to auto.",
> + "type": "OnOffAuto"
> + },
> + {
> + "default-value": "auto",
> + "name": "ats",
> + "description": "Enable/disable ATS support (for accel=on). Valid
> values are on, off, and auto. Defaults to auto. Please ensure host platform
> supports ATS before setting it to on.",
> + "type": "OnOffAuto"
> + },
> + {
> + "default-value": "auto",
> + "name": "oas",
> + "description": "Set Output Address Size in bits (for accel=on). Valid
> values are 44, 48, and auto. Defaults to auto.Please ensure the value does
> not exceed the maximum Output Address Size supported by the host platform.",
> + "type": "OasMode"
> + },
> + {
> + "default-value": "auto",
> + "name": "ssidsize",
> + "description": "Set number of bits used to represent SubstreamIDs
> (SSIDs). Valid values are 0-20 and auto. Defaults to auto. A value of N
> allows SSIDs in the range [0 .. 2^N - 1]. A value of 0 disables SubstreamID
> support. A value greater than 0 is required to enable PASID support.Please
> ensure the value does not exceed the maximum SubstreamID size supported by
> the host platform.",
> + "type": "SsidSizeMode"
> + },
> + {
> + "default-value": "auto",
> + "name": "ril",
> + "description": "Enable/disable range invalidation support (for
> accel=on). Valid values are on, off, and auto. Defaults to auto. Any attempt
> to turn it 'on' while the host does not support it would fail.",
> + "type": "OnOffAuto"
> + },
> + {
> + "default-value": false,
> + "name": "accel",
> + "description": "Enable SMMUv3 accelerator support. Allows host SMMUv3
> to be configured in nested mode for vfio-pci dev assignment. Please ensure
> the host SMMUv3 supports nested translation before enabling.",
> + "type": "bool"
> + },
> + {
> + "name": "stage",
> + "type": "str"
> + },
> + {
> + "default-value": 0,
> + "name": "msi-gpa",
> + "type": "uint64"
> + },
> + {
> + "default-value": 0,
> + "name": "identifier",
> + "type": "uint8"
> + }
> + ],
> + "id": "libvirt-32"
> +}
> +
> +{
> + "execute": "device-list-properties",
> + "arguments": {
> + "typename": "scsi-block"
> + },
> + "id": "libvirt-33"
> +}
> +
> {
> "return": [
> {
> @@ -34020,7 +34107,7 @@
> "type": "int32"
> }
> ],
> - "id": "libvirt-32"
> + "id": "libvirt-33"
> }
>
> {
> @@ -34028,7 +34115,7 @@
> "arguments": {
> "typename": "scsi-generic"
> },
> - "id": "libvirt-33"
> + "id": "libvirt-34"
> }
>
> {
> @@ -34069,7 +34156,7 @@
> "type": "int32"
> }
> ],
> - "id": "libvirt-33"
> + "id": "libvirt-34"
> }
>
> {
> @@ -34077,7 +34164,7 @@
> "arguments": {
> "typename": "memory-backend-file"
> },
> - "id": "libvirt-34"
> + "id": "libvirt-35"
> }
>
> {
> @@ -34171,7 +34258,7 @@
> "type": "bool"
> }
> ],
> - "id": "libvirt-34"
> + "id": "libvirt-35"
> }
>
> {
> @@ -34179,7 +34266,7 @@
> "arguments": {
> "typename": "memory-backend-memfd"
> },
> - "id": "libvirt-35"
> + "id": "libvirt-36"
> }
>
> {
> @@ -34248,7 +34335,7 @@
> "type": "bool"
> }
> ],
> - "id": "libvirt-35"
> + "id": "libvirt-36"
> }
>
> {
> @@ -34256,7 +34343,7 @@
> "arguments": {
> "typename": "max-arm-cpu"
> },
> - "id": "libvirt-36"
> + "id": "libvirt-37"
> }
>
> {
> @@ -34511,12 +34598,12 @@
> "type": "link<irq>"
> }
> ],
> - "id": "libvirt-36"
> + "id": "libvirt-37"
> }
>
> {
> "execute": "query-machines",
> - "id": "libvirt-37"
> + "id": "libvirt-38"
> }
>
> {
> @@ -35555,7 +35642,7 @@
> "default-ram-id": "ram"
> }
> ],
> - "id": "libvirt-37"
> + "id": "libvirt-38"
> }
>
> {
> @@ -35563,7 +35650,7 @@
> "arguments": {
> "typename": "virt-11.1-machine"
> },
> - "id": "libvirt-38"
> + "id": "libvirt-39"
> }
>
> {
> @@ -35841,7 +35928,7 @@
> "type": "child<cfi.pflash01>"
> }
> ],
> - "id": "libvirt-38"
> + "id": "libvirt-39"
> }
>
> {
> @@ -35849,7 +35936,7 @@
> "arguments": {
> "typename": "none-machine"
> },
> - "id": "libvirt-39"
> + "id": "libvirt-40"
> }
>
> {
> @@ -35979,12 +36066,12 @@
> "type": "bool"
> }
> ],
> - "id": "libvirt-39"
> + "id": "libvirt-40"
> }
>
> {
> "execute": "query-cpu-definitions",
> - "id": "libvirt-40"
> + "id": "libvirt-41"
> }
>
> {
> @@ -36212,12 +36299,12 @@
> "deprecated": false
> }
> ],
> - "id": "libvirt-40"
> + "id": "libvirt-41"
> }
>
> {
> "execute": "query-command-line-options",
> - "id": "libvirt-41"
> + "id": "libvirt-42"
> }
>
> {
> @@ -37810,12 +37897,12 @@
> "option": "drive"
> }
> ],
> - "id": "libvirt-41"
> + "id": "libvirt-42"
> }
>
> {
> "execute": "query-gic-capabilities",
> - "id": "libvirt-42"
> + "id": "libvirt-43"
> }
>
> {
> @@ -37831,7 +37918,7 @@
> "kernel": true
> }
> ],
> - "id": "libvirt-42"
> + "id": "libvirt-43"
> }
>
> {
> @@ -37842,7 +37929,7 @@
> "name": "host"
> }
> },
> - "id": "libvirt-43"
> + "id": "libvirt-44"
> }
>
> {
> @@ -37875,7 +37962,7 @@
> }
> }
> },
> - "id": "libvirt-43"
> + "id": "libvirt-44"
> }
>
> {
> @@ -37886,7 +37973,7 @@
> "name": "host"
> }
> },
> - "id": "libvirt-44"
> + "id": "libvirt-45"
> }
>
> {
> @@ -37919,7 +38006,7 @@
> }
> }
> },
> - "id": "libvirt-44"
> + "id": "libvirt-45"
> }
>
> {
> @@ -37934,11 +38021,11 @@
> }
> }
> },
> - "id": "libvirt-45"
> + "id": "libvirt-46"
> }
>
> {
> - "id": "libvirt-45",
> + "id": "libvirt-46",
> "error": {
> "class": "GenericError",
> "desc": "Parameter 'model.props.hv-passthrough' is unexpected"
> diff --git a/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml
> b/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml
> index f7dd14a1ad..28bf1aff57 100644
> --- a/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml
> +++ b/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml
> @@ -188,6 +188,7 @@
> <flag name='uefi-vars'/>
> <flag name='query-block-flat'/>
> <flag name='blockdev-mirror.target-is-zero'/>
> + <flag name='arm-smmuv3.smmu_per_bus'/>
> <version>11000050</version>
> <microcodeVersion>61700287</microcodeVersion>
> <package>v11.0.0-1600-g5611a9268d</package>
> diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_aarch64.replies
> b/tests/qemucapabilitiesdata/caps_8.2.0_aarch64.replies
> index 002ca31b9f..c4d0be6029 100644
> --- a/tests/qemucapabilitiesdata/caps_8.2.0_aarch64.replies
> +++ b/tests/qemucapabilitiesdata/caps_8.2.0_aarch64.replies
> @@ -31157,17 +31157,44 @@
> {
> "execute": "device-list-properties",
> "arguments": {
> - "typename": "scsi-block"
> + "typename": "arm-smmuv3"
> },
> "id": "libvirt-32"
> }
>
> +{
> + "return": [
> + {
> + "name": "primary-bus",
> + "type": "link<PCI>"
> + },
> + {
> + "default-value": 0,
> + "name": "bus_num",
> + "type": "uint8"
> + },
> + {
> + "name": "stage",
> + "type": "str"
> + }
> + ],
> + "id": "libvirt-32"
> +}
> +
> +{
> + "execute": "device-list-properties",
> + "arguments": {
> + "typename": "scsi-block"
> + },
> + "id": "libvirt-33"
> +}
> +
> {
> "error": {
> "class": "DeviceNotFound",
> "desc": "The libvirt device dump was not collected for this
> version+device tuple"
> },
> - "id": "libvirt-32"
> + "id": "libvirt-33"
> }
>
> {
> @@ -31175,7 +31202,7 @@
> "arguments": {
> "typename": "scsi-generic"
> },
> - "id": "libvirt-33"
> + "id": "libvirt-34"
> }
>
> {
> @@ -31183,7 +31210,7 @@
> "class": "DeviceNotFound",
> "desc": "The libvirt device dump was not collected for this
> version+device tuple"
> },
> - "id": "libvirt-33"
> + "id": "libvirt-34"
> }
>
> {
> @@ -31191,7 +31218,7 @@
> "arguments": {
> "typename": "memory-backend-file"
> },
> - "id": "libvirt-34"
> + "id": "libvirt-35"
> }
>
> {
> @@ -31281,7 +31308,7 @@
> "type": "bool"
> }
> ],
> - "id": "libvirt-34"
> + "id": "libvirt-35"
> }
>
> {
> @@ -31289,7 +31316,7 @@
> "arguments": {
> "typename": "memory-backend-memfd"
> },
> - "id": "libvirt-35"
> + "id": "libvirt-36"
> }
>
> {
> @@ -31368,7 +31395,7 @@
> "type": "int"
> }
> ],
> - "id": "libvirt-35"
> + "id": "libvirt-36"
> }
>
> {
> @@ -31376,7 +31403,7 @@
> "arguments": {
> "typename": "max-arm-cpu"
> },
> - "id": "libvirt-36"
> + "id": "libvirt-37"
> }
>
> {
> @@ -31585,12 +31612,12 @@
> "type": "bool"
> }
> ],
> - "id": "libvirt-36"
> + "id": "libvirt-37"
> }
>
> {
> "execute": "query-machines",
> - "id": "libvirt-37"
> + "id": "libvirt-38"
> }
>
> {
> @@ -32702,7 +32729,7 @@
> "default-ram-id": "ram"
> }
> ],
> - "id": "libvirt-37"
> + "id": "libvirt-38"
> }
>
> {
> @@ -32710,7 +32737,7 @@
> "arguments": {
> "typename": "virt-8.2-machine"
> },
> - "id": "libvirt-38"
> + "id": "libvirt-39"
> }
>
> {
> @@ -32946,7 +32973,7 @@
> "type": "child<cfi.pflash01>"
> }
> ],
> - "id": "libvirt-38"
> + "id": "libvirt-39"
> }
>
> {
> @@ -32954,7 +32981,7 @@
> "arguments": {
> "typename": "none-machine"
> },
> - "id": "libvirt-39"
> + "id": "libvirt-40"
> }
>
> {
> @@ -33067,12 +33094,12 @@
> "type": "child<container>"
> }
> ],
> - "id": "libvirt-39"
> + "id": "libvirt-40"
> }
>
> {
> "execute": "query-cpu-definitions",
> - "id": "libvirt-40"
> + "id": "libvirt-41"
> }
>
> {
> @@ -33366,12 +33393,12 @@
> "deprecated": false
> }
> ],
> - "id": "libvirt-40"
> + "id": "libvirt-41"
> }
>
> {
> "execute": "query-command-line-options",
> - "id": "libvirt-41"
> + "id": "libvirt-42"
> }
>
> {
> @@ -34736,12 +34763,12 @@
> "option": "drive"
> }
> ],
> - "id": "libvirt-41"
> + "id": "libvirt-42"
> }
>
> {
> "execute": "query-gic-capabilities",
> - "id": "libvirt-42"
> + "id": "libvirt-43"
> }
>
> {
> @@ -34757,7 +34784,7 @@
> "kernel": false
> }
> ],
> - "id": "libvirt-42"
> + "id": "libvirt-43"
> }
>
> {
> @@ -34768,7 +34795,7 @@
> "name": "host"
> }
> },
> - "id": "libvirt-43"
> + "id": "libvirt-44"
> }
>
> {
> @@ -34801,7 +34828,7 @@
> }
> }
> },
> - "id": "libvirt-43"
> + "id": "libvirt-44"
> }
>
> {
> @@ -34816,11 +34843,11 @@
> }
> }
> },
> - "id": "libvirt-44"
> + "id": "libvirt-45"
> }
>
> {
> - "id": "libvirt-44",
> + "id": "libvirt-45",
> "error": {
> "class": "GenericError",
> "desc": "Parameter 'hv-passthrough' is unexpected"
> diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_armv7l.replies
> b/tests/qemucapabilitiesdata/caps_8.2.0_armv7l.replies
> index b8f7b6f68a..51cd48e1d1 100644
> --- a/tests/qemucapabilitiesdata/caps_8.2.0_armv7l.replies
> +++ b/tests/qemucapabilitiesdata/caps_8.2.0_armv7l.replies
> @@ -31391,17 +31391,44 @@
> {
> "execute": "device-list-properties",
> "arguments": {
> - "typename": "scsi-block"
> + "typename": "arm-smmuv3"
> },
> "id": "libvirt-32"
> }
>
> +{
> + "return": [
> + {
> + "name": "primary-bus",
> + "type": "link<PCI>"
> + },
> + {
> + "default-value": 0,
> + "name": "bus_num",
> + "type": "uint8"
> + },
> + {
> + "name": "stage",
> + "type": "str"
> + }
> + ],
> + "id": "libvirt-32"
> +}
> +
> +{
> + "execute": "device-list-properties",
> + "arguments": {
> + "typename": "scsi-block"
> + },
> + "id": "libvirt-33"
> +}
> +
> {
> "error": {
> "class": "DeviceNotFound",
> "desc": "The libvirt device dump was not collected for this
> version+device tuple"
> },
> - "id": "libvirt-32"
> + "id": "libvirt-33"
> }
>
> {
> @@ -31409,7 +31436,7 @@
> "arguments": {
> "typename": "scsi-generic"
> },
> - "id": "libvirt-33"
> + "id": "libvirt-34"
> }
>
> {
> @@ -31417,7 +31444,7 @@
> "class": "DeviceNotFound",
> "desc": "The libvirt device dump was not collected for this
> version+device tuple"
> },
> - "id": "libvirt-33"
> + "id": "libvirt-34"
> }
>
> {
> @@ -31425,7 +31452,7 @@
> "arguments": {
> "typename": "memory-backend-file"
> },
> - "id": "libvirt-34"
> + "id": "libvirt-35"
> }
>
> {
> @@ -31519,7 +31546,7 @@
> "type": "bool"
> }
> ],
> - "id": "libvirt-34"
> + "id": "libvirt-35"
> }
>
> {
> @@ -31527,7 +31554,7 @@
> "arguments": {
> "typename": "memory-backend-memfd"
> },
> - "id": "libvirt-35"
> + "id": "libvirt-36"
> }
>
> {
> @@ -31606,7 +31633,7 @@
> "type": "int"
> }
> ],
> - "id": "libvirt-35"
> + "id": "libvirt-36"
> }
>
> {
> @@ -31614,7 +31641,7 @@
> "arguments": {
> "typename": "max-arm-cpu"
> },
> - "id": "libvirt-36"
> + "id": "libvirt-37"
> }
>
> {
> @@ -31756,12 +31783,12 @@
> "type": "link<irq>"
> }
> ],
> - "id": "libvirt-36"
> + "id": "libvirt-37"
> }
>
> {
> "execute": "query-machines",
> - "id": "libvirt-37"
> + "id": "libvirt-38"
> }
>
> {
> @@ -32819,7 +32846,7 @@
> "default-ram-id": "ram"
> }
> ],
> - "id": "libvirt-37"
> + "id": "libvirt-38"
> }
>
> {
> @@ -32827,7 +32854,7 @@
> "arguments": {
> "typename": "virt-8.2-machine"
> },
> - "id": "libvirt-38"
> + "id": "libvirt-39"
> }
>
> {
> @@ -33063,7 +33090,7 @@
> "type": "child<cfi.pflash01>"
> }
> ],
> - "id": "libvirt-38"
> + "id": "libvirt-39"
> }
>
> {
> @@ -33071,7 +33098,7 @@
> "arguments": {
> "typename": "none-machine"
> },
> - "id": "libvirt-39"
> + "id": "libvirt-40"
> }
>
> {
> @@ -33184,12 +33211,12 @@
> "type": "child<container>"
> }
> ],
> - "id": "libvirt-39"
> + "id": "libvirt-40"
> }
>
> {
> "execute": "query-cpu-definitions",
> - "id": "libvirt-40"
> + "id": "libvirt-41"
> }
>
> {
> @@ -33411,12 +33438,12 @@
> "deprecated": false
> }
> ],
> - "id": "libvirt-40"
> + "id": "libvirt-41"
> }
>
> {
> "execute": "query-command-line-options",
> - "id": "libvirt-41"
> + "id": "libvirt-42"
> }
>
> {
> @@ -34898,12 +34925,12 @@
> "option": "drive"
> }
> ],
> - "id": "libvirt-41"
> + "id": "libvirt-42"
> }
>
> {
> "execute": "query-gic-capabilities",
> - "id": "libvirt-42"
> + "id": "libvirt-43"
> }
>
> {
> @@ -34919,7 +34946,7 @@
> "kernel": false
> }
> ],
> - "id": "libvirt-42"
> + "id": "libvirt-43"
> }
>
> {
> @@ -34930,11 +34957,11 @@
> "name": "host"
> }
> },
> - "id": "libvirt-43"
> + "id": "libvirt-44"
> }
>
> {
> - "id": "libvirt-43",
> + "id": "libvirt-44",
> "error": {
> "class": "GenericError",
> "desc": "The CPU type 'host' requires KVM"
> @@ -34953,11 +34980,11 @@
> }
> }
> },
> - "id": "libvirt-44"
> + "id": "libvirt-45"
> }
>
> {
> - "id": "libvirt-44",
> + "id": "libvirt-45",
> "error": {
> "class": "GenericError",
> "desc": "The CPU type 'host' requires KVM"
> diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_aarch64+hvf.replies
> b/tests/qemucapabilitiesdata/caps_9.2.0_aarch64+hvf.replies
> index 14b11c5c30..31b13f865b 100644
> --- a/tests/qemucapabilitiesdata/caps_9.2.0_aarch64+hvf.replies
> +++ b/tests/qemucapabilitiesdata/caps_9.2.0_aarch64+hvf.replies
> @@ -30532,17 +30532,44 @@
> {
> "execute": "device-list-properties",
> "arguments": {
> - "typename": "scsi-block"
> + "typename": "arm-smmuv3"
> },
> "id": "libvirt-28"
> }
>
> +{
> + "return": [
> + {
> + "name": "primary-bus",
> + "type": "link<PCI>"
> + },
> + {
> + "default-value": 0,
> + "name": "bus_num",
> + "type": "uint8"
> + },
> + {
> + "name": "stage",
> + "type": "str"
> + }
> + ],
> + "id": "libvirt-28"
> +}
> +
> +{
> + "execute": "device-list-properties",
> + "arguments": {
> + "typename": "scsi-block"
> + },
> + "id": "libvirt-29"
> +}
> +
> {
> "error": {
> "class": "DeviceNotFound",
> "desc": "The libvirt device dump was not collected for this
> version+device tuple"
> },
> - "id": "libvirt-28"
> + "id": "libvirt-29"
> }
>
> {
> @@ -30550,7 +30577,7 @@
> "arguments": {
> "typename": "scsi-generic"
> },
> - "id": "libvirt-29"
> + "id": "libvirt-30"
> }
>
> {
> @@ -30558,7 +30585,7 @@
> "class": "DeviceNotFound",
> "desc": "The libvirt device dump was not collected for this
> version+device tuple"
> },
> - "id": "libvirt-29"
> + "id": "libvirt-30"
> }
>
> {
> @@ -30566,7 +30593,7 @@
> "arguments": {
> "typename": "memory-backend-file"
> },
> - "id": "libvirt-30"
> + "id": "libvirt-31"
> }
>
> {
> @@ -30651,7 +30678,7 @@
> "type": "bool"
> }
> ],
> - "id": "libvirt-30"
> + "id": "libvirt-31"
> }
>
> {
> @@ -30659,7 +30686,7 @@
> "arguments": {
> "typename": "max-arm-cpu"
> },
> - "id": "libvirt-31"
> + "id": "libvirt-32"
> }
>
> {
> @@ -30816,12 +30843,12 @@
> "type": "link<irq>"
> }
> ],
> - "id": "libvirt-31"
> + "id": "libvirt-32"
> }
>
> {
> "execute": "query-machines",
> - "id": "libvirt-32"
> + "id": "libvirt-33"
> }
>
> {
> @@ -31871,7 +31898,7 @@
> "default-ram-id": "ram"
> }
> ],
> - "id": "libvirt-32"
> + "id": "libvirt-33"
> }
>
> {
> @@ -31879,7 +31906,7 @@
> "arguments": {
> "typename": "virt-9.2-machine"
> },
> - "id": "libvirt-33"
> + "id": "libvirt-34"
> }
>
> {
> @@ -32120,7 +32147,7 @@
> "type": "child<cfi.pflash01>"
> }
> ],
> - "id": "libvirt-33"
> + "id": "libvirt-34"
> }
>
> {
> @@ -32128,7 +32155,7 @@
> "arguments": {
> "typename": "none-machine"
> },
> - "id": "libvirt-34"
> + "id": "libvirt-35"
> }
>
> {
> @@ -32246,12 +32273,12 @@
> "type": "child<container>"
> }
> ],
> - "id": "libvirt-34"
> + "id": "libvirt-35"
> }
>
> {
> "execute": "query-cpu-definitions",
> - "id": "libvirt-35"
> + "id": "libvirt-36"
> }
>
> {
> @@ -32545,12 +32572,12 @@
> "deprecated": false
> }
> ],
> - "id": "libvirt-35"
> + "id": "libvirt-36"
> }
>
> {
> "execute": "query-command-line-options",
> - "id": "libvirt-36"
> + "id": "libvirt-37"
> }
>
> {
> @@ -33866,12 +33893,12 @@
> "option": "drive"
> }
> ],
> - "id": "libvirt-36"
> + "id": "libvirt-37"
> }
>
> {
> "execute": "query-gic-capabilities",
> - "id": "libvirt-37"
> + "id": "libvirt-38"
> }
>
> {
> @@ -33887,7 +33914,7 @@
> "kernel": false
> }
> ],
> - "id": "libvirt-37"
> + "id": "libvirt-38"
> }
>
> {
> @@ -33898,11 +33925,11 @@
> "name": "host"
> }
> },
> - "id": "libvirt-38"
> + "id": "libvirt-39"
> }
>
> {
> - "id": "libvirt-38",
> + "id": "libvirt-39",
> "error": {
> "class": "GenericError",
> "desc": "The CPU type 'host' requires KVM"
> @@ -33921,11 +33948,11 @@
> }
> }
> },
> - "id": "libvirt-39"
> + "id": "libvirt-40"
> }
>
> {
> - "id": "libvirt-39",
> + "id": "libvirt-40",
> "error": {
> "class": "GenericError",
> "desc": "The CPU type 'host' requires KVM"
> --
> 2.43.0
>