On Fri, 27 Mar 2026 04:00:31 +0000 Long Li wrote: > We considered netif_get_num_default_rss_queues() but chose a fixed default > based on our performance testing. On Azure VMs, typical > workloads plateau at around 16 queues - adding more queues beyond that > doesn't improve throughput but increases memory usage and > interrupt overhead. > > netif_get_num_default_rss_queues() would return 32-64 on large VMs (64-128 > vCPUs), which wastes resources without benefit. > > That said, I agree that completely ignoring the core-based heuristic isn't > ideal for consistency. One option is to use > netif_get_num_default_rss_queues() but clamp it to a maximum of > MANA_DEF_NUM_QUEUES (16), so small VMs still get enough queues and > large VMs don't over-allocate. Something like: > > apc->num_queues = min(netif_get_num_default_rss_queues(), > MANA_DEF_NUM_QUEUES); > apc->num_queues = min(apc->num_queues, gc->max_num_queues); > > For reference, it seems mlx4 does something similar - it caps at > DEF_RX_RINGS (16) regardless of core count.
mlx4 is a bit ancient. And mlx5 does the wrong thing, which is why I'm so sensitive to this issue :( > Do you want me to send a v2? Please send a follow up, let's leave this patch be and make an incremental change. Thanks!

