Hi, Gentle ping, any comments?
Thanks Zhenzhong >-----Original Message----- >From: Duan, Zhenzhong <[email protected]> >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
