RE: [PATCH v3 00/10] conf, qemu: Add scalable_mode, fsts, pasid_bits, and svm support for intel-iommu

Duan, Zhenzhong posted 10 patches 2 weeks, 2 days ago
Only 0 patches received!
RE: [PATCH v3 00/10] conf, qemu: Add scalable_mode, fsts, pasid_bits, and svm support for intel-iommu
Posted by Duan, Zhenzhong 2 weeks, 2 days ago
Hi,

Gentle ping, any comments?

Thanks
Zhenzhong

>-----Original Message-----
>From: Duan, Zhenzhong <zhenzhong.duan@intel.com>
>Subject: [PATCH v3 00/10] conf, qemu: Add scalable_mode, fsts, pasid_bits, and
>svm support for intel-iommu
>
>Hi,
>
>This series adds support for configuring Intel vIOMMU (VT-d) in domain XML
>and formatting them onto the QEMU command line:
>
>  * scalable_mode: Configures scalable mode support ('on'/'off').
>  * fsts: Enables First-Stage Translation support ('on'/'off').
>  * pasid_bits: Sets the number of supported PASID bits.
>  * svm: Enables Shared Virtual Memory (SVM) / PRQ support ('on'/'off').
>
>With these attributes, users can configure advanced vIOMMU features for both
>emulated devices and assigned host devices (e.g., vSVA / nested translation via
>iommufd and first-stage translation).
>
>Example domain XML configuration:
>
>    <iommu model='intel'>
>      <driver caching_mode='on' iotlb='on' scalable_mode='on' fsts='on'
>pasid_bits='6' svm='on'/>
>    </iommu>
>
>Which formats the following QEMU command line options:
>
>    -device {"driver":"intel-iommu","id":"iommu0","caching-mode":true,"device-
>iotlb":true,"scalable-mode":true,"fsts":true,"pasid-bits":6,"svm":true}
>
>Testing:
>  - Validated with libvirt test suite (ninja test).
>  - Tested DSA card passthrough and SVM/vSVA with iommufd backend.
>
>Changelog:
>v3:
>- merge qemu patch into conf patch (Peter Krempa)
>- fix pasid_bits type definition (Peter Krempa)
>- fix doc to use 'pasid_bits' rather than 'pasid-bits' (Peter Krempa)
>- add patch10 to print attribute name in error message (Peter Krempa)
>- add patch5 for missing validations
>
>v2:
>- Added support for 'pasid_bits' and 'svm' attributes.
>- rebased to master branch newest
>
>Thanks,
>Zhenzhong
>
>
>Zhenzhong Duan (10):
>  qemu_capabilities: Introduce QEMU_CAPS_INTEL_IOMMU_SCALABLE_MODE
>  qemu: Add scalable_mode attribute to iommu
>  qemu_capabilities: Introduce QEMU_CAPS_INTEL_IOMMU_FSTS
>  qemu: Add fsts attribute to iommu
>  qemu: Validate PCI hostdev assignment against intel-iommu 'fsts'
>  qemu_capabilities: Introduce QEMU_CAPS_INTEL_IOMMU_PASID_BITS
>  qemu: add pasid_bits attribute to iommu
>  qemu_capabilities: Introduce QEMU_CAPS_INTEL_IOMMU_SVM
>  qemu: add svm attribute to iommu
>  conf: qemu: Standardize IOMMU error messages to use XML attribute
>    names
>
> docs/formatdomain.rst                         |  19 +++
> src/conf/domain_conf.c                        | 120 +++++++++++++++---
> src/conf/domain_conf.h                        |   7 +
> src/conf/domain_validate.c                    |  55 +++++++-
> src/conf/schemas/domaincommon.rng             |  20 +++
> src/libvirt_private.syms                      |   1 +
> src/qemu/qemu_capabilities.c                  |  10 ++
> src/qemu/qemu_capabilities.h                  |   6 +
> src/qemu/qemu_command.c                       |   4 +
> src/qemu/qemu_validate.c                      |  59 +++++++--
> .../caps_11.0.0_x86_64+sgx.xml                |   1 +
> .../caps_11.0.0_x86_64.xml                    |   1 +
> .../caps_11.1.0_x86_64.xml                    |   4 +
> .../intel-iommu-fsts.x86_64-latest.args       |  34 +++++
> .../intel-iommu-fsts.x86_64-latest.xml        |  37 ++++++
> tests/qemuxmlconfdata/intel-iommu-fsts.xml    |  37 ++++++
> .../intel-iommu-pasid-bits.x86_64-latest.args |  34 +++++
> .../intel-iommu-pasid-bits.x86_64-latest.xml  |  37 ++++++
> .../intel-iommu-pasid-bits.xml                |  37 ++++++
> ...tel-iommu-scalable-mode.x86_64-latest.args |  34 +++++
> ...ntel-iommu-scalable-mode.x86_64-latest.xml |  37 ++++++
> .../intel-iommu-scalable-mode.xml             |  37 ++++++
> .../intel-iommu-svm.x86_64-latest.args        |  34 +++++
> .../intel-iommu-svm.x86_64-latest.xml         |  37 ++++++
> tests/qemuxmlconfdata/intel-iommu-svm.xml     |  37 ++++++
> tests/qemuxmlconftest.c                       |   4 +
> 26 files changed, 712 insertions(+), 31 deletions(-)
> create mode 100644 tests/qemuxmlconfdata/intel-iommu-fsts.x86_64-latest.args
> create mode 100644 tests/qemuxmlconfdata/intel-iommu-fsts.x86_64-latest.xml
> create mode 100644 tests/qemuxmlconfdata/intel-iommu-fsts.xml
> create mode 100644 tests/qemuxmlconfdata/intel-iommu-pasid-bits.x86_64-
>latest.args
> create mode 100644 tests/qemuxmlconfdata/intel-iommu-pasid-bits.x86_64-
>latest.xml
> create mode 100644 tests/qemuxmlconfdata/intel-iommu-pasid-bits.xml
> create mode 100644 tests/qemuxmlconfdata/intel-iommu-scalable-
>mode.x86_64-latest.args
> create mode 100644 tests/qemuxmlconfdata/intel-iommu-scalable-
>mode.x86_64-latest.xml
> create mode 100644 tests/qemuxmlconfdata/intel-iommu-scalable-mode.xml
> create mode 100644 tests/qemuxmlconfdata/intel-iommu-svm.x86_64-
>latest.args
> create mode 100644 tests/qemuxmlconfdata/intel-iommu-svm.x86_64-latest.xml
> create mode 100644 tests/qemuxmlconfdata/intel-iommu-svm.xml
>
>--
>2.52.0