System has a limited global interrupt (INTx and MSI) vector pool. Global pool is shared across different devices on the platform including passthrough devices. When there are many devices requesting global interrupts than what the system has in its global pool, allocation failures are reported.
Resolution
To resolve this issue, increase the value of boot option "intrFirstMsixVector" from its default 0x70 to a larger value - 0x80 or 0x90.
Note:
The total number of interrupt vectors on a platform is fixed and hence increasing the size of global vectors will decrease the number of available MSIx vectors.
This resolution is applicable from ESXi 7.0.1 until ESXi 8.0. For 8.0U1 and beyond, this is not needed due to global vector pool optimization.