Wednesday, December 03, 2025

Re: vio12: cannot alloc q0 intr: 12 / couldn't establish msix interrupt

On 03/12/2025 15:17, Kapetanakis Giannis wrote:
Hi,    Is there a limit on number of vio devices?  This is my 13th vio device    virtio16 at pci0 dev 19 function 0 "Qumranet Virtio Network" rev 0x00  vio12 at virtio16: 4 queues, address 00:1a:4a:34:9f:60  failed to allocate interrupt slot for PIC msix pin -2147444734  vio12[2]: couldn't establish msix interrupt  vio12: cannot alloc q0 intr: 12  virtio16: virtio configuration failed

On 03/12/2025 16:02, Crystal Kolipe wrote:
Not exactly a limit on vio devices - in this case you seem to be exceeding the  number of available interrupt vectors.

On 03/12/2025 16:33, Kapetanakis Giannis wrote:
Is this tunable (sysctl) or does it need a custom kernel?    probably something bigger...    the fail comes from intr.c: intr_allocate_slot()  which (to my reading is limited by MAX_INTR_SOURCES)    /*   * Maximum # of interrupt sources per CPU. 64 to fit in one word.   * ioapics can theoretically produce more, but it's not likely to   * happen. For multiple ioapics, things can be routed to different   * CPUs.   */  #define MAX_INTR_SOURCES        64  #define NUM_LEGACY_IRQS         16  

And it seems that this came from vio multiques.
Each vio now has 4 queues and got hit by that hard limit

vmstat -i | grep vio|wc -l
      62

G


No comments:

Post a Comment