[pve-devel] [PATCH qemu-server v2 1/4] fix #6608: expose viommu driver aw-bits option

Fiona Ebner f.ebner at proxmox.com
Fri Sep 5 12:07:12 CEST 2025


Am 02.09.25 um 1:23 PM schrieb Daniel Kral:
> Since QEMU 9.2 [0], the default I/O address space bit width was raised
> from 39 bits to 48 bits for the Intel vIOMMU driver, which makes the
> aw-bits check introduced in [1] to trip for host CPUs with less than 48

s/to trip/fail/

> bits physical address width from QEMU 9.2 onwards:
> 
> vfio 0000:XX:YY.Z: Failed to set vIOMMU: aw-bits 48 > host aw-bits 39
> 
> For VFIO devices where a vIOMMU is in-use, QEMU fetches the IOVA ranges
> with the iommufd ioctl IOMMU_IOAS_IOVA_RANGES or the vfio_iommu_type1's
> VFIO_IOMMU_TYPE1_INFO_CAP_IOVA_RANGE info, so 'phys-bits' doesn't change
> the behavior of the check.
> 
> Therefore, expose the 'aw-bits' option of the intel-iommu and
> virtio-iommu QEMU drivers to allow users to set the value.
> 
> [0] https://lore.kernel.org/qemu-devel/20241212083757.605022-17-zhenzhong.duan@intel.com/
> [1] https://lore.kernel.org/qemu-devel/20240605083043.317831-18-zhenzhong.duan@intel.com/
> 

Nit: I'd prefer references to qemu commits rather than mails

> @@ -112,9 +122,14 @@ sub default_machine_for_arch {
>  
>  sub assert_valid_machine_property {
>      my ($machine_conf) = @_;
> -    my $q35 = $machine_conf->{type} && ($machine_conf->{type} =~ m/q35/) ? 1 : 0;
> -    if ($machine_conf->{viommu} && $machine_conf->{viommu} eq "intel" && !$q35) {
> -        die "to use Intel vIOMMU please set the machine type to q35\n";
> +    if ($machine_conf->{viommu} && $machine_conf->{viommu} eq "intel") {
> +        my $q35 = $machine_conf->{type} && ($machine_conf->{type} =~ m/q35/) ? 1 : 0;
> +        die "to use Intel vIOMMU please set the machine type to q35\n" if !$q35;
> +
> +        die "Intel vIOMMU supports only 39 or 48 bits as address width\n"
> +            if $machine_conf->{'aw-bits'}
> +            && $machine_conf->{'aw-bits'} != 39
> +            && $machine_conf->{'aw-bits'} != 48;
>      }

There should be an error (or at least warning) when aw-bits is set
without setting a viommu.




More information about the pve-devel mailing list