Hi all

I have strange numbers on a 4 way SMP Opteron machine, with a single tg3 NIC, 
linux-2.6.13-rc6


I have about 12000 requeues per second.
oprofile data show high numbers for these related functions :

qdisc_restart() 2.6452 %
dev_queue_xmit() 0.9599 %
pfifo_fast_dequeue() 0.7094 %
pfifo_fast_enqueue() 0.6336 %


I noticed also that tcpdump can display the same packet 'sent' up to 20 times.
This is because of the
if (netdev_nit)
        dev_queue_xmit_nit(skb, dev);
done before the attempt to dev->hard_start_xmit(skb, dev);
So if the skb has to be requeued (because NETIF_F_LLTX compatable device returned NETDEV_TX_LOCKED), it will be resent on _nit() queue next time qdisc_restart() is called.

Looking at the qdisc_restart() function, it seems expensive to dequeue a 
packet, attempt to xmit it, requeue it, over and over.
Maybe some kind of throtling is necessary ? Or is it a tg3 bug failing to set a 
stop condition ?


# tc -s -d qdisc show dev eth0 ; sleep 10 ; tc -s -d qdisc show dev eth0
qdisc pfifo_fast 0: bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 Sent 247228207330 bytes 1700267586 pkt (dropped 5641721, overlimits 0 requeues 
485151970)
 backlog 0b 0p requeues 485151970
qdisc pfifo_fast 0: bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 Sent 247269565075 bytes 1700589222 pkt (dropped 5641721, overlimits 0 requeues 
485270157)
 backlog 0b 0p requeues 485270157


# cat /proc/net/softnet_stat
00012aca 00000000 00000000 00000000 00000000 00000000 00000000 00000000 073de39b
00100210 00000000 00000000 00000000 00000000 00000000 00000000 00000000 07d28db0
0011a893 00000000 00000002 00000000 00000000 00000000 00000000 00000000 0c79c949
6b1fa260 00000000 00000050 00000000 00000000 00000000 00000000 00000000 01639069

Thank you

Eric
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to