nfp: include all ring counters in interface stats
We are gathering software statistics on per-ring basis.
.ndo_get_stats64 handler adds the rings up. Unfortunately
we are currently only adding up active rings, which means
that if user decreases the number of active rings the
statistics from deactivated rings will no longer be counted
and total interface statistics may go backwards.
Always sum all possible rings, the stats are allocated
statically for max number of rings, so we don't have to
worry about them being removed. We could add the stats
up when user changes the ring count, but it seems unnecessary..
Adding up inactive rings will be very quick since no datapath
will be touching them.
Fixes: 164d1e9e5d
("nfp: add support for ethtool .set_channels")
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: Dirk van der Merwe <dirk.vandermerwe@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
f8d0efb112
commit
29f534c4bb
|
@ -3121,7 +3121,7 @@ static void nfp_net_stat64(struct net_device *netdev,
|
||||||
struct nfp_net *nn = netdev_priv(netdev);
|
struct nfp_net *nn = netdev_priv(netdev);
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
for (r = 0; r < nn->dp.num_r_vecs; r++) {
|
for (r = 0; r < nn->max_r_vecs; r++) {
|
||||||
struct nfp_net_r_vector *r_vec = &nn->r_vecs[r];
|
struct nfp_net_r_vector *r_vec = &nn->r_vecs[r];
|
||||||
u64 data[3];
|
u64 data[3];
|
||||||
unsigned int start;
|
unsigned int start;
|
||||||
|
|
Loading…
Reference in New Issue