The first patch adds QEMU replies and as such has been aggressively
snipped to deal with mailing list message size limits. Grab the
unabriged version with
$ git fetch
https://gitlab.com/abologna/libvirt.git virtio-iommu
As noted in patch 10, the QEMU feature this series enables has not
yet been accepted upstream: the relevant patches are
https://lists.gnu.org/archive/html/qemu-devel/2021-10/msg00161.html
https://lists.gnu.org/archive/html/qemu-devel/2021-09/msg07819.html
and of course this series should only be merged once those have gone
in.
That said, patches 1-6 are necessary to implement the feature but
also not strictly related to it, so they could be merged right away.
Changes from [v1]:
* rebased after Peter's recent changes enabling JSON for -device.
[v1]
https://listman.redhat.com/archives/libvir-list/2021-October/msg00459.html
Andrea Bolognani (22):
tests: Add replies for QEMU 6.2.0 on aarch64
conf: Make virDomainDeviceInfoFormat() const correct
qemu: Make qemuBuildDeviceAddressProps() const correct
qemu: Make qemuBuildVirtioDevProps() const correct
conf: Add IOMMU support to virDomainDeviceDefCopy()
conf: Add new/free functions for virDomainIOMMUDef
conf: Introduce VIR_PCI_CONNECT_INTEGRATED
qemu: Tweak some code
qemu: Introduce QEMU_CAPS_DEVICE_VIRTIO_IOMMU_PCI
DONOTMERGEYET: qemu: Introduce QEMU_CAPS_VIRTIO_IOMMU_BOOT_BYPASS
conf: Introduce virtio model for <iommu>
tests: Add test cases for virtio-iommu
qemu: Validate machine type used with virtio-iommu
qemu: Validate capabilities for virtio-iommu
qemu: Validate use of ACPI with virtio-iommu
conf: Add virDomainDeviceInfo to virDomainIOMMUDef
qemu: Assign PCI address to virtio-iommu
qemu: Validate address type for virtio-iommu
tests: Add test for virtio-iommu address
qemu: Generate command line for virtio-iommu
docs: Document virtio-iommu
news: Document virtio-iommu
NEWS.rst | 4 +
docs/formatdomain.rst | 5 +-
docs/schemas/domaincommon.rng | 64 +-
src/conf/domain_addr.c | 21 +-
src/conf/domain_addr.h | 30 +-
src/conf/domain_conf.c | 74 +-
src/conf/domain_conf.h | 5 +
src/qemu/qemu_capabilities.c | 10 +
src/qemu/qemu_capabilities.h | 2 +
src/qemu/qemu_command.c | 52 +-
src/qemu/qemu_domain_address.c | 33 +-
src/qemu/qemu_validate.c | 32 +
.../qemu_6.2.0-virt.aarch64.xml | 184 +
tests/domaincapsdata/qemu_6.2.0.aarch64.xml | 178 +
.../caps_5.0.0.aarch64.replies | 71 +-
.../caps_5.0.0.aarch64.xml | 1 +
.../caps_5.0.0.ppc64.replies | 59 +-
.../qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 1 +
.../caps_5.0.0.riscv64.replies | 55 +-
.../caps_5.0.0.riscv64.xml | 1 +
.../caps_5.0.0.x86_64.replies | 71 +-
.../caps_5.0.0.x86_64.xml | 1 +
.../caps_5.1.0.x86_64.replies | 71 +-
.../caps_5.1.0.x86_64.xml | 1 +
.../caps_5.2.0.aarch64.replies | 71 +-
.../caps_5.2.0.aarch64.xml | 1 +
.../caps_5.2.0.ppc64.replies | 59 +-
.../qemucapabilitiesdata/caps_5.2.0.ppc64.xml | 1 +
.../caps_5.2.0.riscv64.replies | 55 +-
.../caps_5.2.0.riscv64.xml | 1 +
.../caps_5.2.0.s390x.replies | 59 +-
.../qemucapabilitiesdata/caps_5.2.0.s390x.xml | 1 +
.../caps_5.2.0.x86_64.replies | 71 +-
.../caps_5.2.0.x86_64.xml | 1 +
.../caps_6.0.0.aarch64.replies | 71 +-
.../caps_6.0.0.aarch64.xml | 1 +
.../caps_6.0.0.s390x.replies | 59 +-
.../qemucapabilitiesdata/caps_6.0.0.s390x.xml | 1 +
.../caps_6.0.0.x86_64.replies | 71 +-
.../caps_6.0.0.x86_64.xml | 1 +
.../caps_6.1.0.x86_64.replies | 71 +-
.../caps_6.1.0.x86_64.xml | 1 +
...h64.replies => caps_6.2.0.aarch64.replies} | 5594 ++++++++++-------
...0.0.aarch64.xml => caps_6.2.0.aarch64.xml} | 58 +-
.../caps_6.2.0.x86_64.replies | 275 +-
.../caps_6.2.0.x86_64.xml | 2 +
...fault-cpu-kvm-virt-4.2.aarch64-latest.args | 6 +-
...fault-cpu-tcg-virt-4.2.aarch64-latest.args | 6 +-
.../aarch64-tpm.aarch64-latest.args | 2 +-
.../aarch64-virt-graphics.aarch64-latest.args | 36 +-
.../aarch64-virt-headless.aarch64-latest.args | 28 +-
...ult-video-type-aarch64.aarch64-latest.args | 6 +-
.../disk-arm-virtio-sd.aarch64-latest.args | 2 +-
...e-expander-bus-aarch64.aarch64-latest.args | 2 +-
... virtio-iommu-aarch64.aarch64-latest.args} | 17 +-
.../qemuxml2argvdata/virtio-iommu-aarch64.xml | 20 +
...mmu-invalid-address-type.x86_64-latest.err | 1 +
.../virtio-iommu-invalid-address-type.xml | 20 +
...io-iommu-invalid-address.x86_64-latest.err | 1 +
.../virtio-iommu-invalid-address.xml | 20 +
.../virtio-iommu-no-acpi.x86_64-latest.err | 1 +
.../qemuxml2argvdata/virtio-iommu-no-acpi.xml | 15 +
...rtio-iommu-wrong-machine.x86_64-latest.err | 1 +
.../virtio-iommu-wrong-machine.xml | 18 +
.../virtio-iommu-x86_64.x86_64-6.1.0.err | 1 +
.../virtio-iommu-x86_64.x86_64-latest.args | 31 +
.../qemuxml2argvdata/virtio-iommu-x86_64.xml | 18 +
tests/qemuxml2argvtest.c | 7 +
.../virtio-iommu-aarch64.aarch64-latest.xml | 34 +
.../virtio-iommu-x86_64.x86_64-latest.xml | 36 +
tests/qemuxml2xmltest.c | 2 +
71 files changed, 5278 insertions(+), 2604 deletions(-)
create mode 100644 tests/domaincapsdata/qemu_6.2.0-virt.aarch64.xml
create mode 100644 tests/domaincapsdata/qemu_6.2.0.aarch64.xml
copy tests/qemucapabilitiesdata/{caps_6.0.0.aarch64.replies =>
caps_6.2.0.aarch64.replies} (92%)
copy tests/qemucapabilitiesdata/{caps_6.0.0.aarch64.xml => caps_6.2.0.aarch64.xml}
(92%)
copy tests/qemuxml2argvdata/{aarch64-default-cpu-tcg-virt-4.2.aarch64-latest.args =>
virtio-iommu-aarch64.aarch64-latest.args} (54%)
create mode 100644 tests/qemuxml2argvdata/virtio-iommu-aarch64.xml
create mode 100644
tests/qemuxml2argvdata/virtio-iommu-invalid-address-type.x86_64-latest.err
create mode 100644 tests/qemuxml2argvdata/virtio-iommu-invalid-address-type.xml
create mode 100644
tests/qemuxml2argvdata/virtio-iommu-invalid-address.x86_64-latest.err
create mode 100644 tests/qemuxml2argvdata/virtio-iommu-invalid-address.xml
create mode 100644 tests/qemuxml2argvdata/virtio-iommu-no-acpi.x86_64-latest.err
create mode 100644 tests/qemuxml2argvdata/virtio-iommu-no-acpi.xml
create mode 100644 tests/qemuxml2argvdata/virtio-iommu-wrong-machine.x86_64-latest.err
create mode 100644 tests/qemuxml2argvdata/virtio-iommu-wrong-machine.xml
create mode 100644 tests/qemuxml2argvdata/virtio-iommu-x86_64.x86_64-6.1.0.err
create mode 100644 tests/qemuxml2argvdata/virtio-iommu-x86_64.x86_64-latest.args
create mode 100644 tests/qemuxml2argvdata/virtio-iommu-x86_64.xml
create mode 100644 tests/qemuxml2xmloutdata/virtio-iommu-aarch64.aarch64-latest.xml
create mode 100644 tests/qemuxml2xmloutdata/virtio-iommu-x86_64.x86_64-latest.xml
--
2.31.1