| From foo@baz Wed May 16 10:37:27 CEST 2018 |
| From: Adi Nissim <adin@mellanox.com> |
| Date: Wed, 25 Apr 2018 11:21:32 +0300 |
| Subject: net/mlx5: E-Switch, Include VF RDMA stats in vport statistics |
| |
| From: Adi Nissim <adin@mellanox.com> |
| |
| [ Upstream commit 88d725bbb43cd63a40c8ef70dd373f1d38ead2e3 ] |
| |
| The host side reporting of VF vport statistics didn't include the VF |
| RDMA traffic. |
| |
| Fixes: 3b751a2a418a ("net/mlx5: E-Switch, Introduce get vf statistics") |
| Signed-off-by: Adi Nissim <adin@mellanox.com> |
| Reported-by: Ariel Almog <ariela@mellanox.com> |
| Reviewed-by: Or Gerlitz <ogerlitz@mellanox.com> |
| Signed-off-by: Saeed Mahameed <saeedm@mellanox.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 11 ++++++++++- |
| 1 file changed, 10 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c |
| +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c |
| @@ -2143,26 +2143,35 @@ int mlx5_eswitch_get_vport_stats(struct |
| memset(vf_stats, 0, sizeof(*vf_stats)); |
| vf_stats->rx_packets = |
| MLX5_GET_CTR(out, received_eth_unicast.packets) + |
| + MLX5_GET_CTR(out, received_ib_unicast.packets) + |
| MLX5_GET_CTR(out, received_eth_multicast.packets) + |
| + MLX5_GET_CTR(out, received_ib_multicast.packets) + |
| MLX5_GET_CTR(out, received_eth_broadcast.packets); |
| |
| vf_stats->rx_bytes = |
| MLX5_GET_CTR(out, received_eth_unicast.octets) + |
| + MLX5_GET_CTR(out, received_ib_unicast.octets) + |
| MLX5_GET_CTR(out, received_eth_multicast.octets) + |
| + MLX5_GET_CTR(out, received_ib_multicast.octets) + |
| MLX5_GET_CTR(out, received_eth_broadcast.octets); |
| |
| vf_stats->tx_packets = |
| MLX5_GET_CTR(out, transmitted_eth_unicast.packets) + |
| + MLX5_GET_CTR(out, transmitted_ib_unicast.packets) + |
| MLX5_GET_CTR(out, transmitted_eth_multicast.packets) + |
| + MLX5_GET_CTR(out, transmitted_ib_multicast.packets) + |
| MLX5_GET_CTR(out, transmitted_eth_broadcast.packets); |
| |
| vf_stats->tx_bytes = |
| MLX5_GET_CTR(out, transmitted_eth_unicast.octets) + |
| + MLX5_GET_CTR(out, transmitted_ib_unicast.octets) + |
| MLX5_GET_CTR(out, transmitted_eth_multicast.octets) + |
| + MLX5_GET_CTR(out, transmitted_ib_multicast.octets) + |
| MLX5_GET_CTR(out, transmitted_eth_broadcast.octets); |
| |
| vf_stats->multicast = |
| - MLX5_GET_CTR(out, received_eth_multicast.packets); |
| + MLX5_GET_CTR(out, received_eth_multicast.packets) + |
| + MLX5_GET_CTR(out, received_ib_multicast.packets); |
| |
| vf_stats->broadcast = |
| MLX5_GET_CTR(out, received_eth_broadcast.packets); |