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

Andrea Bolognani abologna at redhat.com
Fri Mar 18 16:40:11 UTC 2022


The first patch adds replies files 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

The QEMU side of the feature has now been merged, so this can finally
go in as well.

I have retained the R-bs for most patches, but there are a few that
have been changed enough to warrant another look before I push them.

Changes from [v1]:

  * rebase on top of master;
  * generate -device argument as JSON.

[v1] https://listman.redhat.com/archives/libvir-list/2021-October/223977.html

Andrea Bolognani (17):
  tests: Add capabilities for QEMU 7.0.0 on aarch64
  conf: Introduce VIR_PCI_CONNECT_INTEGRATED
  qemu: Tweak some code
  qemu: Introduce QEMU_CAPS_DEVICE_VIRTIO_IOMMU_PCI
  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                        |   17 +
 src/conf/domain_addr.h                        |   26 +-
 src/conf/domain_conf.c                        |   38 +-
 src/conf/domain_conf.h                        |    2 +
 src/qemu/qemu_capabilities.c                  |   10 +
 src/qemu/qemu_capabilities.h                  |    2 +
 src/qemu/qemu_command.c                       |   30 +-
 src/qemu/qemu_domain_address.c                |   33 +-
 src/qemu/qemu_validate.c                      |   32 +
 .../qemu_7.0.0-virt.aarch64.xml               |  193 +
 tests/domaincapsdata/qemu_7.0.0.aarch64.xml   |  187 +
 .../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 +
 .../caps_6.2.0.aarch64.replies                |   71 +-
 .../caps_6.2.0.aarch64.xml                    |    1 +
 .../caps_6.2.0.ppc64.replies                  |   59 +-
 .../qemucapabilitiesdata/caps_6.2.0.ppc64.xml |    1 +
 .../caps_6.2.0.x86_64.replies                 |   71 +-
 .../caps_6.2.0.x86_64.xml                     |    1 +
 ...h64.replies => caps_7.0.0.aarch64.replies} | 8112 ++++++++++++-----
 ...2.0.aarch64.xml => caps_7.0.0.aarch64.xml} |   34 +-
 .../caps_7.0.0.ppc64.replies                  |   59 +-
 .../qemucapabilitiesdata/caps_7.0.0.ppc64.xml |    1 +
 .../caps_7.0.0.x86_64.replies                 |  275 +-
 .../caps_7.0.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    |   32 +
 .../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 +
 79 files changed, 7862 insertions(+), 2728 deletions(-)
 create mode 100644 tests/domaincapsdata/qemu_7.0.0-virt.aarch64.xml
 create mode 100644 tests/domaincapsdata/qemu_7.0.0.aarch64.xml
 copy tests/qemucapabilitiesdata/{caps_6.2.0.aarch64.replies => caps_7.0.0.aarch64.replies} (87%)
 copy tests/qemucapabilitiesdata/{caps_6.2.0.aarch64.xml => caps_7.0.0.aarch64.xml} (96%)
 copy tests/qemuxml2argvdata/{aarch64-default-cpu-tcg-virt-4.2.aarch64-latest.args => virtio-iommu-aarch64.aarch64-latest.args} (55%)
 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.35.1



More information about the libvir-list mailing list