Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-131140

vfio: Failed to set vIOMMU: aw-bits 48 > host aw-bits 47

Linking RHIVOS CVEs to...Migration: Automation ...RHELPRIO AssignedTeam ...SWIFT: POC ConversionSync from "Extern...XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • None
    • rhel-10.2
    • None
    • No
    • None
    • rhel-virt-hwe-vfio
    • None
    • False
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • Unspecified
    • Unspecified
    • Unspecified
    • x86_64
    • None

      What were you trying to do that didn't work?

      The pc-q35-rhel10.2.0  VM with a PF + intel iommu device fails to start with the error like:

      "vfio 0000:0a:00.0:  Failed to set vIOMMU: aw-bits 48 > host aw-bits 47"

      What is the impact of this issue to you?

      high

      Please provide the package NVR for which the bug is seen:

      host:
      6.12.0-161.el10.x86_64
      qemu-kvm-10.1.0-5.el10.x86_64

      How reproducible is this bug?:

      100%

      Steps to reproduce

      • make sure the intel_iommu kernel option is enable in the host kernel
      • check Host address width
      # dmesg
      [    1.608095] DMAR: Host address width 46
      
      • start a VM whose machine type is pc-q35-rhel10.2.0 and with X540 PF + intel iommu device
      <domain type='kvm'>
        <name>rhel10</name>
        <uuid>1309a6ab-8229-4021-8252-134551f36e06</uuid>
        <memory unit='KiB'>8384512</memory>
        <currentMemory unit='KiB'>8384512</currentMemory>
        <vcpu placement='static'>4</vcpu>
        <os firmware='efi'>
          <type arch='x86_64' machine='pc-q35-rhel10.2.0'>hvm</type>
          <firmware>
            <feature enabled='no' name='enrolled-keys'/>
            <feature enabled='no' name='secure-boot'/>
          </firmware>
          <loader readonly='yes' type='pflash' format='raw'>/usr/share/edk2/ovmf/OVMF_CODE.fd</loader>
          <nvram template='/usr/share/edk2/ovmf/OVMF_VARS.fd' templateFormat='raw' format='raw'>/var/lib/libvirt/qemu/nvram/rhel10_VARS.fd</nvram>
          <boot dev='hd'/>
        </os>
        <features>
          <acpi/>
          <apic/>
          <ioapic driver='qemu'/>
        </features>
        <cpu mode='host-passthrough' check='none' migratable='on'/>
      ...
        <devices>
      ...
          <hostdev mode='subsystem' type='pci' managed='yes'>
            <driver name='vfio'/>
            <source>
              <address domain='0x0000' bus='0x0a' slot='0x00' function='0x0'/>
            </source>
          </hostdev>
      ...
          <iommu model='intel'>
            <driver intremap='on' caching_mode='on' iotlb='on'/>
          </iommu>
        </devices>
      </domain>

      Expected results

      The VM can be started

      Actual results

      The VM fails to start

      # virsh start rhel10
      error: Failed to start domain 'rhel10'
      error: internal error: QEMU unexpectedly closed the monitor (vm='rhel10'): 2025-11-26T08:35:37.593938Z qemu-kvm: -device {"driver":"vfio-pci","host":"0000:0a:00.0","id":"hostdev0","bus":"pci.4","addr":"0x0"}: vfio 0000:0a:00.0: Failed to set vIOMMU: aw-bits 48 > host aw-bits 47

       

      Additional info:

      There are 2 workarounds for this issue:

      [1] change the machine type back to  pc-q35-rhel10.0.0 

      [2] specify the intel iommu device's aw-bits to '39' manually

          <iommu model='intel'>
            <driver intremap='on' caching_mode='on' iotlb='on' aw_bits='39'/>
            <alias name='iommu0'/>
          </iommu>

       

       

              virt-maint virt-maint
              yanghliu@redhat.com YangHang Liu
              virt-maint virt-maint
              virt-bugs virt-bugs
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated: