Re: UDP is bypassing qdisc statistics ....
From: Eric Dumazet <hidden>
Date: 2009-09-01 15:58:13
Eric Dumazet a écrit :
Christoph Lameter a écrit :quoted
On Tue, 1 Sep 2009, Eric Dumazet wrote:quoted
You should see that in /proc/interrupts, if I correctly understand bnx2.cHmmm I have 8 interrupts: 62: 158 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth0-0 63: 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth0-1 64: 412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth0-2 65: 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth0-3 66: 49718 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth0-4 67: 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth0-5 68: 686 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth0-6 69: 2582 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth0-7Yes, this confirm you have 8 queues on this NIC Strange thing is they seem to be all serviced by CPU-0, which is not good...
Given that bnx2.c uses num_online_cpus() at init time, you could as a workaround do the insmod/modprobe bnx2 with only one online cpu, and you'll revert to a mono-queue NIC :) int msix_vecs = min(cpus + 1, RX_MAX_RINGS); ... if ((bp->flags & BNX2_FLAG_MSIX_CAP) && !dis_msi && cpus > 1) bnx2_enable_msix(bp, msix_vecs); For your multicast test anyway, only one queue should be used (one flow)