ESXi Host Reboots When Powering On VM with PCI Passthrough (Marvell/QLogic FC HBA)
search cancel

ESXi Host Reboots When Powering On VM with PCI Passthrough (Marvell/QLogic FC HBA)

book

Article ID: 452168

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

  • The ESXi host unexpectedly reboot / PSOD when powering on a virtual machine configured with a Marvell/QLogic Fibre Channel (FC) HBA attached via PCI passthrough (VMDirectPath I/O).
    • Disruption of running workloads

  • Potential service downtime during VM lifecycle operations
    • VM power-on may appear to hang (e.g., stall at ~88% progress in vCenter) immediately before the host reboots.

  • Affected FC adapters: Marvell/QLogic 16/32/64Gb FC HBAs (PCI Vendor ID 1077).

  • Observed on platforms such as HPE ProLiant DL380 Gen10 Plus.

  • vmkernel.log located at ESXi /var/run/log/ shows the device failing to recover after a PCIe reset, e.g.:
    • WARNING: PCI: 743: Dev <SBDF> is unresponsive after reset
    • PCIPassthru: 5852: <SBDF> :Reset for device failed with Failure
    • PCI: 1404: Skipping device reset on <SBDF> because PCIe link to the device is down

Environment

  • VMware vSphere ESXi 7.x
  • VMware vSphere ESXi 8.x
  • VMware vSphere ESXi 9.0.x
  • VMware vSphere ESXi 9.1.1

Cause

These Marvell/QLogic FC adapters do not support Function Level Reset (FLR). By default, ESXi falls back to resetting such devices via a secondary bus (bridge) reset when the device is claimed for passthrough. On some platforms, this bridge reset is not handled cleanly by the device/platform, leaving the PCIe device unresponsive and, in this case, causing a host PSOD/reboot during passthrough device initialisation.

These adapters do support the D3D0 power-state reset method (D0 → D3hot → D0), which works reliably as an alternative to bridge reset.

Resolution

Broadcom Engineering is aware of the issue and is working on a fix in an upcoming release

 

Workaround

Configure ESXi to use the D3D0 reset method instead of the default bridge reset for the affected device IDs, via /etc/vmware/passthru.map.

  1. Identify the PCI vendor/device ID of the passthrough adapter:
       esxcli hardware pci list
       Look for vendorID and deviceID for all the Marvel/QLogic FC HBAs.

  2. Edit /etc/vmware/passthru.map and add entries for the affected devices
     
    Note: Qlogic/Marvell 16/32/64Gb FC card cannot be shared

    1077  2281  d3d0  false
    1077  2261  d3d0  false

  3. (Vendor ID 1077 = Marvell/QLogic; device IDs listed are the confirmed affected 16/32/64Gb FC HBA models. If a different device ID is seen for the same adapter family based on esxcli command output from step 1, add it in the same <vendor> <device> d3d0 false format.)

  4. Reboot the host for the change to take effect.

Persistence note/etc/vmware/passthru.map is a sticky-bit configuration file — changes persist across reboots, but only if the host is shut down cleanly, or backup.sh 0 has run before the next reboot (it runs periodically on its own).

Verification:

  • After reboot, confirm the reset method for the device:
        esxcli hardware pci list 

  • Check the Reset Method field reflects the change, then power on the VM with the passthrough device attached and confirm the host no longer reboots.