From: sixiao@microsoft.com Date: Thu, 14 May 2015 08:00:25 +0000 (-0700) Subject: hv_netvsc: use per_cpu stats to calculate TX/RX data X-Git-Tag: omap-for-v4.2/fixes-rc1^2~134^2~281 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7eafd9b4005643cfc24f1daf78f4dd56ff71f559;p=pandora-kernel.git 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 Reviewed-by: K. Y. Srinivasan Reviewed-by: Haiyang Zhang Signed-off-by: David S. Miller --- Reading git-diff-tree failed