]> git.baikalelectronics.ru Git - kernel.git/commit
net: systemport: Track per TX ring statistics
authorFlorian Fainelli <f.fainelli@gmail.com>
Thu, 23 Mar 2017 17:36:46 +0000 (10:36 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 24 Mar 2017 19:53:14 +0000 (12:53 -0700)
commit22623416b29449fde5b8db5753c64564fd3acd3c
tree22ac2f988db67987a67cf9627b1284777fd9a458
parentf9e094478e98e34aa40bccf309543a5390ee6331
net: systemport: Track per TX ring statistics

bcm_sysport_tx_reclaim_one() is currently summing TX bytes/packets in a
way that is not SMP friendly, mutliples CPUs could run
bcm_sysport_tx_reclaim_one() independently and still update
stats->tx_bytes and stats->tx_packets, cloberring the other CPUs
statistics.

Fix this by tracking per TX rings the number of bytes, packets,
dropped and errors statistics, and provide a bcm_sysport_get_nstats()
function which aggregates everything and returns a consistent output.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bcmsysport.c
drivers/net/ethernet/broadcom/bcmsysport.h