[libvirt PATCH v2 00/22] qemu: Implement virtio-iommu support

Andrea Bolognani abologna at redhat.com
Wed Oct 20 13:02:35 UTC 2021


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





More information about the libvir-list mailing list