aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block
diff options
context:
space:
mode:
authorEric Dumazet <eric.dumazet@gmail.com>2009-12-08 02:22:03 -0500
committerDavid S. Miller <davem@davemloft.net>2009-12-08 23:10:12 -0500
commit60d51134281fbeb352013d782a440fb338d31f01 (patch)
tree36df3a263cf024612e1c62c8210bfbfe2d67a0d3 /drivers/block
parent3421eecdee750bafc78b12ac25b3e980195265eb (diff)
ixgbe: Fix TX stats accounting
Here is an updated version, because ixgbe_get_ethtool_stats() needs to call dev_get_stats() or "ethtool -S" wont give correct tx_bytes/tx_packets values. Several cpus can update netdev->stats.tx_bytes & netdev->stats.tx_packets in parallel. In this case, TX stats are under estimated and false sharing takes place. After a pktgen session sending exactly 200000000 packets : # ifconfig fiber0 | grep TX TX packets:198501982 errors:0 dropped:0 overruns:0 carrier:0 Multi queue devices should instead use txq->tx_bytes & txq->tx_packets in their xmit() method (appropriate txq lock already held by caller, no cache line miss), or use appropriate locking. After patch, same pktgen session gives : # ifconfig fiber0 | grep TX TX packets:200000000 errors:0 dropped:0 overruns:0 carrier:0 Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/block')
0 files changed, 0 insertions, 0 deletions