aboutsummaryrefslogtreecommitdiffstats
path: root/net/switchdev/switchdev.c
diff options
context:
space:
mode:
author[email protected] <[email protected]>2015-05-14 08:00:25 +0000
committerDavid S. Miller <[email protected]>2015-05-15 02:49:30 +0000
commit7eafd9b4005643cfc24f1daf78f4dd56ff71f559 (patch)
treee6ce83d089c50b5e388652bc07f42f0ff8793fa9 /net/switchdev/switchdev.c
parenttest_bpf: fix sparse warnings (diff)
downloadkernel-7eafd9b4005643cfc24f1daf78f4dd56ff71f559.tar.gz
kernel-7eafd9b4005643cfc24f1daf78f4dd56ff71f559.zip
hv_netvsc: use per_cpu stats to calculate TX/RX data
Current code does not lock anything when calculating the TX and RX stats. As a result, the RX and TX data reported by ifconfig are not accuracy in a system with high network throughput and multiple CPUs (in my test, RX/TX = 83% between 2 HyperV VM nodes which have 8 vCPUs and 40G Ethernet). This patch fixed the above issue by using per_cpu stats. netvsc_get_stats64() summarizes TX and RX data by iterating over all CPUs to get their respective stats. This v2 patch addressed David's comments on the cleanup path when netdev_alloc_pcpu_stats() failed. Signed-off-by: Simon Xiao <[email protected]> Reviewed-by: K. Y. Srinivasan <[email protected]> Reviewed-by: Haiyang Zhang <[email protected]> Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'net/switchdev/switchdev.c')
0 files changed, 0 insertions, 0 deletions