[pve-devel] [PATCH common/qemu-server v2 0/5] fix issues with viommu+vfio passthrough in #6608, #6378

Daniel Kral d.kral at proxmox.com
Tue Sep 2 13:21:56 CEST 2025


This exposes the intel-iommu and virtio-iommu's aw-bits option through
the machine conf property string to users to properly set the aw-bits
for the vIOMMU. This allows intel-iommu users to override the new
default value of 48 for host IOMMUs that have a maximum guest address
width less than 48 bits (e.g. 39, 41, or 46 bits for Intel
consumer-grade CPUs). Else they get the fatal error on startup:

vfio 0000:XX:YY.Z: Failed to set vIOMMU: aw-bits 48 > host aw-bits 39

Additionally, qemu-server #1, qemu-server #2-4 add warnings about the
above (qemu-server #4) and another error that users run into:

    kvm: vfio_container_dma_map(0x5c9222494280, 0x380000000000, 0x10000, 0x78075ee70000) = -22 (Invalid argument)

See qemu-server #3 for more information for the latter.


pve-common.git:

Daniel Kral (1):
  procfs: cpuinfo: expose x86_phys_bits and x86_virt_bits values

 src/PVE/ProcFSTools.pm | 5 +++++
 1 file changed, 5 insertions(+)


qemu-server.git:

Daniel Kral (4):
  fix #6608: expose viommu driver aw-bits option
  cpu config: factor out gathering common cpu properties
  fix #6378 (continued): warn intel-iommu users about iommu and host aw
    bits mismatch
  machine: warn intel-iommu users about too large address width

 src/PVE/QemuServer.pm                         |  16 ++-
 src/PVE/QemuServer/CPUConfig.pm               | 100 ++++++++++--------
 src/PVE/QemuServer/Machine.pm                 |  50 ++++++++-
 .../cfg2cmd/q35-viommu-intel-aw-bits.conf     |   2 +
 .../cfg2cmd/q35-viommu-intel-aw-bits.conf.cmd |  25 +++++
 .../q35-viommu-intel-exceeding-aw-bits.conf   |   4 +
 ...35-viommu-intel-exceeding-aw-bits.conf.cmd |  25 +++++
 .../cfg2cmd/q35-viommu-virtio-aw-bits.conf    |   2 +
 .../q35-viommu-virtio-aw-bits.conf.cmd        |  25 +++++
 src/test/run_config2command_tests.pl          |   8 ++
 10 files changed, 208 insertions(+), 49 deletions(-)
 create mode 100644 src/test/cfg2cmd/q35-viommu-intel-aw-bits.conf
 create mode 100644 src/test/cfg2cmd/q35-viommu-intel-aw-bits.conf.cmd
 create mode 100644 src/test/cfg2cmd/q35-viommu-intel-exceeding-aw-bits.conf
 create mode 100644 src/test/cfg2cmd/q35-viommu-intel-exceeding-aw-bits.conf.cmd
 create mode 100644 src/test/cfg2cmd/q35-viommu-virtio-aw-bits.conf
 create mode 100644 src/test/cfg2cmd/q35-viommu-virtio-aw-bits.conf.cmd


Summary over all repositories:
  11 files changed, 213 insertions(+), 49 deletions(-)

-- 
Generated by git-murpp 0.8.0




More information about the pve-devel mailing list