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

Andrea Bolognani posted 21 patches 2 years, 6 months ago
Failed in applying to current master (apply log)
There is a newer version of this series
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                       |   35 +-
src/qemu/qemu_domain_address.c                |   33 +-
src/qemu/qemu_validate.c                      |   32 +
.../domaincapsdata/qemu_6.2.0-q35.x86_64.xml  |  220 +
.../domaincapsdata/qemu_6.2.0-tcg.x86_64.xml  |  226 +
.../qemu_6.2.0-virt.aarch64.xml               |  184 +
tests/domaincapsdata/qemu_6.2.0.aarch64.xml   |  178 +
tests/domaincapsdata/qemu_6.2.0.x86_64.xml    |  220 +
.../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} | 5621 ++++++++++-------
...0.0.aarch64.xml => caps_6.2.0.aarch64.xml} |   57 +-
...6_64.replies => caps_6.2.0.x86_64.replies} | 4154 +++++++-----
...6.1.0.x86_64.xml => caps_6.2.0.x86_64.xml} |   85 +-
.../virtio-iommu-aarch64.aarch64-latest.args  |   35 +
.../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 +
66 files changed, 8192 insertions(+), 4257 deletions(-)
create mode 100644 tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
create mode 100644 tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
create mode 100644 tests/domaincapsdata/qemu_6.2.0-virt.aarch64.xml
create mode 100644 tests/domaincapsdata/qemu_6.2.0.aarch64.xml
create mode 100644 tests/domaincapsdata/qemu_6.2.0.x86_64.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/qemucapabilitiesdata/{caps_6.1.0.x86_64.replies => caps_6.2.0.x86_64.replies} (96%)
copy tests/qemucapabilitiesdata/{caps_6.1.0.x86_64.xml => caps_6.2.0.x86_64.xml} (97%)
create mode 100644 tests/qemuxml2argvdata/virtio-iommu-aarch64.aarch64-latest.args
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
[libvirt PATCH 00/21] qemu: Implement virtio-iommu support
Posted by Andrea Bolognani 2 years, 6 months ago
The first couple of patches add replies files and as such have 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 those patches, some of the QEMU changes this series
depends on have 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.

Andrea Bolognani (21):
  DONOTMERGEYET: Add replies for QEMU 6.2.0 on x86_64
  DONOTMERGEYET: Add replies for QEMU 6.2.0 on aarch64
  conf: Make virDomainDeviceInfoFormat() const correct
  conf: Introduce VIR_PCI_CONNECT_INTEGRATED
  conf: Add IOMMU support to virDomainDeviceDefCopy()
  conf: Add new/free functions for virDomainIOMMUDef
  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                        |   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                       |   35 +-
 src/qemu/qemu_domain_address.c                |   33 +-
 src/qemu/qemu_validate.c                      |   32 +
 .../domaincapsdata/qemu_6.2.0-q35.x86_64.xml  |  220 +
 .../domaincapsdata/qemu_6.2.0-tcg.x86_64.xml  |  226 +
 .../qemu_6.2.0-virt.aarch64.xml               |  184 +
 tests/domaincapsdata/qemu_6.2.0.aarch64.xml   |  178 +
 tests/domaincapsdata/qemu_6.2.0.x86_64.xml    |  220 +
 .../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} | 5621 ++++++++++-------
 ...0.0.aarch64.xml => caps_6.2.0.aarch64.xml} |   57 +-
 ...6_64.replies => caps_6.2.0.x86_64.replies} | 4154 +++++++-----
 ...6.1.0.x86_64.xml => caps_6.2.0.x86_64.xml} |   85 +-
 .../virtio-iommu-aarch64.aarch64-latest.args  |   35 +
 .../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 +
 66 files changed, 8192 insertions(+), 4257 deletions(-)
 create mode 100644 tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
 create mode 100644 tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
 create mode 100644 tests/domaincapsdata/qemu_6.2.0-virt.aarch64.xml
 create mode 100644 tests/domaincapsdata/qemu_6.2.0.aarch64.xml
 create mode 100644 tests/domaincapsdata/qemu_6.2.0.x86_64.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/qemucapabilitiesdata/{caps_6.1.0.x86_64.replies => caps_6.2.0.x86_64.replies} (96%)
 copy tests/qemucapabilitiesdata/{caps_6.1.0.x86_64.xml => caps_6.2.0.x86_64.xml} (97%)
 create mode 100644 tests/qemuxml2argvdata/virtio-iommu-aarch64.aarch64-latest.args
 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