Thread (21 messages) 21 messages, 5 authors, 2009-09-01

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.c
Hmmm 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-7
Yes, 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)

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help