[PATCH RESEND 0/6] Add support for configuring PCI high memory MMIO size

Resending this series since it appears my first attempt was not sent to the list due to the "first post" manual moderation delay. =) This patch series adds support for configuring the PCI high memory MMIO window size for aarch64 virt machine types. This feature was recently merged into the QEMU upstream master branch [1] and will be available in QEMU 10.0. It allows users to configure the size of the high memory MMIO window above 4GB, which is particularly useful for systems with large amounts of PCI memory requirements. The feature is exposed through the domain XML as a new PCI feature: <features> <pci> <highmem-mmio-size unit='G'>512</highmem-mmio-size> </pci> </features> When enabled, this configures the size of the PCI high memory MMIO window via QEMU's highmem-mmio-size machine property. The feature is only available for aarch64 virt machine types and requires QEMU support. This series depends on [2] and should be applied on top of those patches. For your convenience, this series is also available on Github [3]. [1] https://github.com/qemu/qemu/commit/f10104aeae3a17f181d5bb37b7fd7dad7fe86cba [2] https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/Z4NQ3... [3] git fetch https://github.com/nvmochs/libvirt.git pci_highmem_mmio_size Signed-off-by: Matthew R. Ochs <mochs@nvidia.com> Matthew R. Ochs (6): domain: Add PCI configuration feature infrastructure schema: Add PCI configuration feature schema conf: Add PCI configuration XML parsing and formatting qemu: Add capability for PCI high memory MMIO size qemu: Add command line support for PCI high memory MMIO size tests: Add tests for machine PCI features src/conf/domain_conf.c | 103 ++++++++++++++++++ src/conf/domain_conf.h | 6 + src/conf/schemas/domaincommon.rng | 9 ++ src/qemu/qemu_capabilities.c | 2 + src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_command.c | 6 + src/qemu/qemu_validate.c | 15 +++ .../caps_10.0.0_aarch64.replies | 10 ++ .../caps_10.0.0_aarch64.xml | 1 + ...rch64-virt-machine-pci.aarch64-latest.args | 31 ++++++ ...arch64-virt-machine-pci.aarch64-latest.xml | 30 +++++ .../aarch64-virt-machine-pci.xml | 20 ++++ tests/qemuxmlconftest.c | 2 + 13 files changed, 236 insertions(+) create mode 100644 tests/qemuxmlconfdata/aarch64-virt-machine-pci.aarch64-latest.args create mode 100644 tests/qemuxmlconfdata/aarch64-virt-machine-pci.aarch64-latest.xml create mode 100644 tests/qemuxmlconfdata/aarch64-virt-machine-pci.xml -- 2.46.0

Add basic infrastructure for PCI configuration feature including: - New PCI configuration structure in domain_conf.h - Add VIR_DOMAIN_FEATURE_PCI enum and string conversion - Add pci field to virDomainDef to store PCI configuration This will be used to support QEMU's highmem-mmio-size machine property for the aarch64 virt machine type. Signed-off-by: Matthew R. Ochs <mochs@nvidia.com> --- src/conf/domain_conf.c | 2 ++ src/conf/domain_conf.h | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 87f87bbe56b2..acc30ffca765 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -187,6 +187,7 @@ VIR_ENUM_IMPL(virDomainFeature, "ras", "ps2", "aia", + "pci", ); VIR_ENUM_IMPL(virDomainCapabilitiesPolicy, @@ -4061,6 +4062,7 @@ void virDomainDefFree(virDomainDef *def) g_free(def->kvm_features); g_free(def->hyperv_vendor_id); g_free(def->tcg_features); + g_free(def->pci); virBlkioDeviceArrayClear(def->blkio.devices, def->blkio.ndevices); diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index e51c74b6d18e..5dc7379655df 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2207,6 +2207,7 @@ typedef enum { VIR_DOMAIN_FEATURE_RAS, VIR_DOMAIN_FEATURE_PS2, VIR_DOMAIN_FEATURE_AIA, + VIR_DOMAIN_FEATURE_PCI, VIR_DOMAIN_FEATURE_LAST } virDomainFeature; @@ -3039,6 +3040,10 @@ struct _virDomainPstoreDef { virDomainDeviceInfo info; }; +typedef struct _virDomainPCIDef { + unsigned long long highmemMMIOSize; /* in bytes */ +} virDomainPCIDef; +G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainPCIDef, virObjectUnref); #define SCSI_SUPER_WIDE_BUS_MAX_CONT_UNIT 64 #define SCSI_WIDE_BUS_MAX_CONT_UNIT 16 @@ -3100,6 +3105,7 @@ struct _virDomainDef { virDomainPerfDef perf; virDomainOSDef os; + virDomainPCIDef *pci; char *emulator; /* Most {caps_,hyperv_,kvm_,}feature options utilize a virTristateSwitch * to handle support. A few assign specific data values to the option. -- 2.46.0

Add schema definition for PCI configuration feature including: - Add <pci> element under <features> - Add <highmem-mmio-size> element with scaledInteger type - Support unit attribute for size specification This allows XML configuration of PCI high memory MMIO size for aarch64 virt machines. Signed-off-by: Matthew R. Ochs <mochs@nvidia.com> --- src/conf/schemas/domaincommon.rng | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincommon.rng index 96cedb85e867..7f3ac7b8295f 100644 --- a/src/conf/schemas/domaincommon.rng +++ b/src/conf/schemas/domaincommon.rng @@ -6999,6 +6999,15 @@ <optional> <ref name="aia"/> </optional> + <optional> + <element name='pci'> + <optional> + <element name='highmem-mmio-size'> + <ref name='scaledInteger'/> + </element> + </optional> + </element> + </optional> </interleave> </element> </optional> -- 2.46.0

Add XML parsing and formatting support for PCI configuration: - Add virDomainFeaturesPCIDefParseXML function - Add virDomainFeaturesPCIDefFormat function - Wire up parsing in virDomainFeaturesDefParse - Wire up formatting in virDomainDefFormatFeatures - Use g_steal_pointer for memory management The highmem-mmio-size property can now be specified in domain XML and will be properly parsed and formatted as a domain feature. Signed-off-by: Matthew R. Ochs <mochs@nvidia.com> --- src/conf/domain_conf.c | 101 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index acc30ffca765..126ae1e092b9 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -16967,6 +16967,48 @@ virDomainFeaturesTCGDefParse(virDomainDef *def, } +static virDomainPCIDef * +virDomainPCIDefNew(void) +{ + virDomainPCIDef *pci; + + pci = g_new0(virDomainPCIDef, 1); + return pci; +} + + +/** + * virDomainFeaturesPCIDefParseXML: + * @ctxt: XML context + * + * Parses PCI configuration from XML under features/pci. Currently only + * supports the highmem-mmio-size property for aarch64 virt machine types. + * + * Returns: parsed pci definition or NULL on error + */ +static virDomainPCIDef * +virDomainFeaturesPCIDefParseXML(xmlXPathContextPtr ctxt) +{ + g_autoptr(virDomainPCIDef) pci = virDomainPCIDefNew(); + unsigned long long size; + int rc; + + if ((rc = virParseScaledValue("./features/pci/highmem-mmio-size", + NULL, + ctxt, + &size, + 1024 * 1024 * 1024, /* Default scale: GiB */ + ULLONG_MAX, + false)) < 0) + return NULL; + + if (rc == 1) + pci->highmemMMIOSize = size; + + return g_steal_pointer(&pci); +} + + static int virDomainFeaturesDefParse(virDomainDef *def, xmlXPathContextPtr ctxt) @@ -17213,6 +17255,13 @@ virDomainFeaturesDefParse(virDomainDef *def, break; } + case VIR_DOMAIN_FEATURE_PCI: + if ((def->pci = virDomainFeaturesPCIDefParseXML(ctxt)) == NULL) + return -1; + + def->features[val] = VIR_TRISTATE_SWITCH_ON; + break; + case VIR_DOMAIN_FEATURE_LAST: break; } @@ -21195,6 +21244,25 @@ virDomainDefFeaturesCheckABIStability(virDomainDef *src, } break; + case VIR_DOMAIN_FEATURE_PCI: + if (src->features[i] != dst->features[i]) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("target domain pci feature %1$s does not match source %2$s"), + virTristateSwitchTypeToString(dst->features[i]), + virTristateSwitchTypeToString(src->features[i])); + return false; + } + if (src->features[i] == VIR_TRISTATE_SWITCH_ON) { + if (src->pci->highmemMMIOSize != dst->pci->highmemMMIOSize) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("target domain pci highmem-mmio-size %1$llu does not match source %2$llu"), + dst->pci->highmemMMIOSize, + src->pci->highmemMMIOSize); + return false; + } + } + break; + case VIR_DOMAIN_FEATURE_MSRS: case VIR_DOMAIN_FEATURE_TCG: case VIR_DOMAIN_FEATURE_ASYNC_TEARDOWN: @@ -27903,6 +27971,34 @@ virDomainFeatureTCGFormat(virBuffer *buf, } +/** + * virDomainFeaturesPCIDefFormat: + * @buf: buffer to write XML data to + * @pci: PCI feature data to format + * + * Format the PCI feature configuration as XML under features/pci. + */ +static void +virDomainFeaturesPCIDefFormat(virBuffer *buf, + const virDomainPCIDef *pci) +{ + g_auto(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER; + g_auto(virBuffer) childBuf = VIR_BUFFER_INIT_CHILD(buf); + + if (!pci) + return; + + if (pci->highmemMMIOSize > 0) { + virBufferAddLit(&attrBuf, " unit='G'"); + virBufferAsprintf(&childBuf, "<highmem-mmio-size%s>%llu</highmem-mmio-size>\n", + virBufferCurrentContent(&attrBuf), + pci->highmemMMIOSize / (1024 * 1024 * 1024)); + } + + virXMLFormatElement(buf, "pci", NULL, &childBuf); +} + + static int virDomainDefFormatFeatures(virBuffer *buf, virDomainDef *def) @@ -28261,6 +28357,11 @@ virDomainDefFormatFeatures(virBuffer *buf, virDomainAIATypeToString(def->features[i])); break; + case VIR_DOMAIN_FEATURE_PCI: + if (def->features[i] == VIR_TRISTATE_SWITCH_ON) + virDomainFeaturesPCIDefFormat(&childBuf, def->pci); + break; + case VIR_DOMAIN_FEATURE_LAST: break; } -- 2.46.0

Add QEMU capability for PCI high memory MMIO size configuration: - Add QEMU_CAPS_MACHINE_VIRT_HIGHMEM_MMIO_SIZE capability - Add capability to virt machine properties - Add highmem-mmio-size virt machine property to aarch64 qemu 10.0.0 capabilities This allows detecting support for the highmem-mmio-size virt machine property in QEMU. Signed-off-by: Matthew R. Ochs <mochs@nvidia.com> --- src/qemu/qemu_capabilities.c | 2 ++ src/qemu/qemu_capabilities.h | 1 + tests/qemucapabilitiesdata/caps_10.0.0_aarch64.replies | 10 ++++++++++ tests/qemucapabilitiesdata/caps_10.0.0_aarch64.xml | 1 + 4 files changed, 14 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 23b466c36ef1..2a9797c295c7 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -728,6 +728,7 @@ VIR_ENUM_IMPL(virQEMUCaps, "machine.virt.aia", /* QEMU_CAPS_MACHINE_VIRT_AIA */ "virtio-mem-ccw", /* QEMU_CAPS_DEVICE_VIRTIO_MEM_CCW */ "blockdev-set-active", /* QEMU_CAPS_BLOCKDEV_SET_ACTIVE */ + "machine.virt.highmem-mmio-size", /* QEMU_CAPS_MACHINE_VIRT_HIGHMEM_MMIO_SIZE */ ); @@ -1770,6 +1771,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsMachinePropsVirt[] = { { "iommu", QEMU_CAPS_MACHINE_VIRT_IOMMU }, { "ras", QEMU_CAPS_MACHINE_VIRT_RAS }, { "aia", QEMU_CAPS_MACHINE_VIRT_AIA }, + { "highmem-mmio-size", QEMU_CAPS_MACHINE_VIRT_HIGHMEM_MMIO_SIZE }, }; static struct virQEMUCapsStringFlags virQEMUCapsMachinePropsGeneric[] = { diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index ee71331a09d8..3f48705bbad0 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -707,6 +707,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */ QEMU_CAPS_MACHINE_VIRT_AIA, /* -machine virt,aia=(none|aplic|aplic-imsic), RISC-V only */ QEMU_CAPS_DEVICE_VIRTIO_MEM_CCW, /* -device virtio-mem-ccw */ QEMU_CAPS_BLOCKDEV_SET_ACTIVE, /* blockdev-set-active QMP command supported */ + QEMU_CAPS_MACHINE_VIRT_HIGHMEM_MMIO_SIZE, /* -machine virt,highmem-mmio-size=<size> */ QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_aarch64.replies b/tests/qemucapabilitiesdata/caps_10.0.0_aarch64.replies index 5ef02f7ae41d..65b77e8baafb 100644 --- a/tests/qemucapabilitiesdata/caps_10.0.0_aarch64.replies +++ b/tests/qemucapabilitiesdata/caps_10.0.0_aarch64.replies @@ -33843,6 +33843,11 @@ "description": "Set on/off to enable/disable high memory region for PCI ECAM", "type": "bool" }, + { + "name": "highmem-mmio-size", + "description": "Set the high memory region size for PCI MMIO", + "type": "size" + }, { "name": "highmem", "description": "Set on/off to enable/disable using physical address space above 32 bits", @@ -34469,6 +34474,11 @@ "help": "Set on/off to enable/disable high memory region for PCI ECAM", "type": "boolean" }, + { + "name": "highmem-mmio-size", + "help": "Set the high memory region size for PCI MMIO", + "type": "size" + }, { "name": "highmem", "help": "Set on/off to enable/disable using physical address space above 32 bits", diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_aarch64.xml b/tests/qemucapabilitiesdata/caps_10.0.0_aarch64.xml index 3f46ab55d84f..ea7862c459ef 100644 --- a/tests/qemucapabilitiesdata/caps_10.0.0_aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_10.0.0_aarch64.xml @@ -172,6 +172,7 @@ <flag name='netdev-stream-reconnect-miliseconds'/> <flag name='migrate-incoming.exit-on-error'/> <flag name='blockdev-set-active'/> + <flag name='machine.virt.highmem-mmio-size'/> <version>9002050</version> <microcodeVersion>61700285</microcodeVersion> <package>v9.2.0-1967-gb69801dd6b</package> -- 2.46.0

Add support for generating QEMU command line with PCI high memory MMIO size: - Add highmem-mmio-size to machine command line generation - Add validation for aarch64/virt machine type requirement - Add capability check for QEMU support - Add feature validation in qemu_validate.c This enables configuring the PCI high memory MMIO window size for aarch64 virt machine types. Signed-off-by: Matthew R. Ochs <mochs@nvidia.com> --- src/qemu/qemu_command.c | 6 ++++++ src/qemu/qemu_validate.c | 15 +++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 7370711918b6..bf29cf74530f 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6773,6 +6773,12 @@ qemuAppendDomainFeaturesMachineParam(virBuffer *buf, virBufferAsprintf(buf, ",aia=%s", str); } + if (def->features[VIR_DOMAIN_FEATURE_PCI] == VIR_TRISTATE_SWITCH_ON) { + if (def->pci && def->pci->highmemMMIOSize > 0) { + virBufferAsprintf(buf, ",highmem-mmio-size=%lluG", + def->pci->highmemMMIOSize / (1024 * 1024 * 1024)); + } + } return 0; } diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 76f2eafe4955..9476dee49451 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -279,6 +279,21 @@ qemuValidateDomainDefFeatures(const virDomainDef *def, } break; + case VIR_DOMAIN_FEATURE_PCI: + if (def->features[i] != VIR_TRISTATE_SWITCH_ABSENT && + !qemuDomainIsARMVirt(def)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("features/pci is only supported with aarch64 virt machines")); + return -1; + } + if (def->features[i] != VIR_TRISTATE_SWITCH_ABSENT && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_VIRT_HIGHMEM_MMIO_SIZE)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("features/pci is not supported with this QEMU binary")); + return -1; + } + break; + case VIR_DOMAIN_FEATURE_SMM: case VIR_DOMAIN_FEATURE_KVM: case VIR_DOMAIN_FEATURE_XEN: -- 2.46.0

Add test coverage for machine-specific PCI features: - Add XML tests for aarch64 virt highmem-mmio-size - Add command line generation tests This ensures proper handling of machine-specific PCI features like the high memory MMIO window size configuration. Signed-off-by: Matthew R. Ochs <mochs@nvidia.com> --- ...rch64-virt-machine-pci.aarch64-latest.args | 31 +++++++++++++++++++ ...arch64-virt-machine-pci.aarch64-latest.xml | 30 ++++++++++++++++++ .../aarch64-virt-machine-pci.xml | 20 ++++++++++++ tests/qemuxmlconftest.c | 2 ++ 4 files changed, 83 insertions(+) create mode 100644 tests/qemuxmlconfdata/aarch64-virt-machine-pci.aarch64-latest.args create mode 100644 tests/qemuxmlconfdata/aarch64-virt-machine-pci.aarch64-latest.xml create mode 100644 tests/qemuxmlconfdata/aarch64-virt-machine-pci.xml diff --git a/tests/qemuxmlconfdata/aarch64-virt-machine-pci.aarch64-latest.args b/tests/qemuxmlconfdata/aarch64-virt-machine-pci.aarch64-latest.args new file mode 100644 index 000000000000..7ab4e8bd624f --- /dev/null +++ b/tests/qemuxmlconfdata/aarch64-virt-machine-pci.aarch64-latest.args @@ -0,0 +1,31 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/var/lib/libvirt/qemu/domain--1-aarch64-virt-machine \ +USER=test \ +LOGNAME=test \ +XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-aarch64-virt-machine/.local/share \ +XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-aarch64-virt-machine/.cache \ +XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-aarch64-virt-machine/.config \ +/usr/bin/qemu-system-aarch64 \ +-name guest=aarch64-virt-machine-pci,debug-threads=on \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-aarch64-virt-machine/master-key.aes"}' \ +-machine virt,usb=off,gic-version=2,highmem-mmio-size=512G,dump-guest-core=off,memory-backend=mach-virt.ram,acpi=off \ +-accel tcg \ +-cpu cortex-a15 \ +-m size=1048576k \ +-object '{"qom-type":"memory-backend-ram","id":"mach-virt.ram","size":1073741824}' \ +-overcommit mem-lock=off \ +-smp 1,sockets=1,cores=1,threads=1 \ +-uuid 6ba7b810-9dad-11d1-80b4-00c04fd430c8 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=charmonitor,fd=1729,server=on,wait=off \ +-mon chardev=charmonitor,id=monitor,mode=control \ +-rtc base=utc \ +-no-shutdown \ +-boot strict=on \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \ +-msg timestamp=on diff --git a/tests/qemuxmlconfdata/aarch64-virt-machine-pci.aarch64-latest.xml b/tests/qemuxmlconfdata/aarch64-virt-machine-pci.aarch64-latest.xml new file mode 100644 index 000000000000..d19a23b17b70 --- /dev/null +++ b/tests/qemuxmlconfdata/aarch64-virt-machine-pci.aarch64-latest.xml @@ -0,0 +1,30 @@ +<domain type='qemu'> + <name>aarch64-virt-machine-pci</name> + <uuid>6ba7b810-9dad-11d1-80b4-00c04fd430c8</uuid> + <memory unit='KiB'>1048576</memory> + <currentMemory unit='KiB'>1048576</currentMemory> + <vcpu placement='static'>1</vcpu> + <os> + <type arch='aarch64' machine='virt'>hvm</type> + <boot dev='hd'/> + </os> + <features> + <gic version='2'/> + <pci> + <highmem-mmio-size unit='G'>512</highmem-mmio-size> + </pci> + </features> + <cpu mode='custom' match='exact' check='none'> + <model fallback='forbid'>cortex-a15</model> + </cpu> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu-system-aarch64</emulator> + <controller type='pci' index='0' model='pcie-root'/> + <audio id='1' type='none'/> + <memballoon model='none'/> + </devices> +</domain> diff --git a/tests/qemuxmlconfdata/aarch64-virt-machine-pci.xml b/tests/qemuxmlconfdata/aarch64-virt-machine-pci.xml new file mode 100644 index 000000000000..42ebb4b304b5 --- /dev/null +++ b/tests/qemuxmlconfdata/aarch64-virt-machine-pci.xml @@ -0,0 +1,20 @@ +<domain type='qemu'> + <name>aarch64-virt-machine-pci</name> + <uuid>6ba7b810-9dad-11d1-80b4-00c04fd430c8</uuid> + <memory unit='KiB'>1048576</memory> + <currentMemory unit='KiB'>1048576</currentMemory> + <vcpu placement='static'>1</vcpu> + <os> + <type arch='aarch64' machine='virt'>hvm</type> + </os> + <features> + <pci> + <highmem-mmio-size unit='G'>512</highmem-mmio-size> + </pci> + </features> + <devices> + <emulator>/usr/bin/qemu-system-aarch64</emulator> + <controller type='pci' index='0' model='pcie-root'/> + <memballoon model='none'/> + </devices> +</domain> diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c index 1279b08c9627..5f1f6a7bb3c5 100644 --- a/tests/qemuxmlconftest.c +++ b/tests/qemuxmlconftest.c @@ -2665,6 +2665,8 @@ mymain(void) DO_TEST_CAPS_ARCH_LATEST("clock-timer-armvtimer", "aarch64"); + DO_TEST_CAPS_ARCH_LATEST("aarch64-virt-machine-pci", "aarch64"); + qemuTestSetHostArch(&driver, VIR_ARCH_NONE); DO_TEST_CAPS_LATEST("kvm-pit-delay"); -- 2.46.0
participants (1)
-
Matthew R. Ochs