Message ID | 4A9D3D9A.1030500@gmail.com |
---|---|
State | RFC, archived |
Delegated to: | David Miller |
Headers | show |
Christoph Lameter a écrit : > On Tue, 1 Sep 2009, Eric Dumazet wrote: > >> 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... -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Eric Dumazet a écrit : > Christoph Lameter a écrit : >> On Tue, 1 Sep 2009, Eric Dumazet wrote: >> >>> 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) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, 1 Sep 2009, Eric Dumazet wrote:
> 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
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, 1 Sep 2009, Eric Dumazet wrote:
> For your multicast test anyway, only one queue should be used (one flow)
Right.
I finally get some numbers with the qdisc_stats patch:
clameter@rd-strategy3-deb64:~$ cat /proc/net/qdisc_stats
Type Device St Bytes Packts Qlen Bklg Drops Requeu Overlimits
TXS root <NULL> 0 0 0 0 0 0 0 0
TX root <NULL> 0 0 0 0 0 0 0 0
RXS root <NULL> 0 0 0 0 0 0 0 0
RX root <NULL> 0 0 0 0 0 0 0 0
TXS root eth0 0 2778 35 0 0 0 0 0
TX root eth0 0 2778 35 0 0 0 0 0
TXS root eth0 0 1622 18 0 0 0 0 0
TX root eth0 0 1622 18 0 0 0 0 0
TXS root eth0 0 2618 22 0 0 0 0 0
TX root eth0 0 2618 22 0 0 0 0 0
TXS root eth0 0 9792 65 0 0 0 0 0
TX root eth0 0 9792 65 0 0 0 0 0
TXS root eth0 0 9758 68 0 0 0 0 0
TX root eth0 0 9758 68 0 0 0 0 0
TXS root eth0 0 1413 18 0 0 0 0 0
TX root eth0 0 1413 18 0 0 0 0 0
TXS root eth0 0 557 8 0 0 0 0 0
TX root eth0 0 557 8 0 0 0 0 0
TXS root eth0 0 1220 11 0 0 0 0 0
TX root eth0 0 1220 11 0 0 0 0 0
RXS root <NULL> 0 0 0 0 0 0 0 0
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c index 06b9011..573d6b3 100644 --- a/drivers/net/bnx2.c +++ b/drivers/net/bnx2.c @@ -6144,6 +6144,7 @@ bnx2_setup_int_mode(struct bnx2 *bp, int dis_msi) bp->dev->real_num_tx_queues = bp->num_tx_rings; bp->num_rx_rings = bp->irq_nvecs; + pr_err("rx_rings=%d real_num_tx_queues=%d\n", bp->num_rx_rings, bp->num_tx_rings); } /* Called with rtnl_lock */