> There are only 3 physical ports, however the use case I'm targeting is - > virtual ports serving virtual machines (with offloading features making > hardware directly L2-forward or L3-route most traffic between outside world > and VM-owned virtual port frontends). In this setup, some of 8 GWCA irqs > will be given to VMs and thus there are definitely not enough to > per-consumer allocation. And you are describing your VMs in DT as well? And if you change your VM setup, you are going to modify your DT? This all sounds wrong. It sounds like you need to be able to configure the interrupt mappings from user space somehow. And you probably need to be able to do it on the fly, or at least, when the interface is down. I don't know if it will help, but ethtool mentions: -l --show-channels Queries the specified network device for the numbers of channels it has. A channel is an IRQ and the set of queues that can trig‐ ger that IRQ. -L --set-channels Changes the numbers of channels of the specified network device. rx N Changes the number of channels with only receive queues. tx N Changes the number of channels with only transmit queues. other N Changes the number of channels used only for other purposes e.g. link interrupts or SR-IOV co-ordination. combined N Changes the number of multi-purpose channels. Maybe there is something you can use here? Or extend. Andrew