Error: Can't use virtual IOMMU with devices with RMRRs during PCI passthrough on Windows 11 VM
search cancel

Error: Can't use virtual IOMMU with devices with RMRRs during PCI passthrough on Windows 11 VM

book

Article ID: 449114

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

  • An ESXi host encounters a Purple Screen of Death (PSOD) or a virtual machine (VM) fails to boot when a physical device, such as a USB host controller, is configured as a PCI passthrough device for a Windows 11 guest.
  • Review of the host kernel logs (vmkernel.log) reveals the following validation conflict: 

    PCIPassthru: 4230: Can't use virtual IOMMU with devices with RMRRs sbdf=0000:13:00.0

     

  • PSOD trace




    cpu2:3839020)@BlueScreen: #PF Exception 14 in world 3839020:vmx IP 0x42002098506e addr 0x452737e000e8 PTEs:0x10001f023;0x0;
    cpu2:3839020)Code start: 0x420020800000 VMK uptime: 9:23:16:35.376
    cpu2:3839020)0x4538d8a9bd38:[0x42002098506e]SimpleBuddy_GetOpaque@vmkernel#nover+0x2 stack: 0x4538d8a9be84
    cpu2:3839020)0x4538d8a9bd40:[0x4200209b8a4e]XMap_Unmap@vmkernel#nover+0x2b stack: 0x4538d8a9f000
    cpu2:3839020)0x4538d8a9bd60:[0x4200218fc3de]PCIPassthruRegisterDeviceInt@(pciPassthru)#<None>+0xcab stack: 0xffffffffffffffff
    cpu2:3839020)0x4538d8a9be30:[0x4200209a2022]VMKPCIPassthru_RegisterDevice@vmkernel#nover+0x57 stack: 0x430de9400037
    cpu2:3839020)0x4538d8a9be80:[0x420020e45c59]UW64VMKPrivateSyscallUnpackPCIPassthruRegisterDevice@vmkernel#nover+0x7a stack: 0x5353
    cpu2:3839020)0x4538d8a9bef0:[0x420020dd530f]User_UWVMK64SyscallHandler@vmkernel#nover+0x104 stack: 0x0
    cpu2:3839020)0x4538d8a9bf40:[0x420020e9edf5]SyscallUWVMK64@vmkernel#nover+0xc1 stack: 0x0
    cpu2:3839020)base fs=0x0 gs=0x420040800000 Kgs=0x0

Environment

VMware vSphere ESXi 8.x

Cause

Architecturally, enabling vIOMMU on a VM with a PCI passthrough device that utilizes Reserved Memory Region Reporting (RMRRs) isn't supported. Under normal circumstances, this operation should simply fail the VM power-on process with an error message.

Resolution

A fix for this issue is currently being evaluated for a future release. For defects and enhancements, it is recommended to  to be updated on fix status.

Workaround

To mitigate the host panic and allow the VM to boot, the structural conflict must be removed by disabling the vIOMMU on the guest layer:

  1. Locate the affected virtual machine within the vSphere Client.
  2. Ensure the virtual machine is powered off.
  3. Right-click the VM and select Edit Settings.
  4. Expand the CPU section.



  5. Un-check the I/O MMU checkbox as shown in the above screenshot.
  6. Power ON the VM.