diff options
author | Eric Dumazet <edumazet@google.com> | 2014-10-02 11:24:21 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-10-04 20:04:14 -0400 |
commit | 9fab426de78140dc5cb0b85bbee6042c9c3d5ca5 (patch) | |
tree | 191460414031ac67841797f90acece7b79b3d6bb /drivers/net/ethernet/mellanox/mlx4/en_port.c | |
parent | 6106253e69413785b29b9bfb493e2544c70461e7 (diff) |
mlx4: add a new xmit_more counter
ethtool -S reports a new counter, tracking number of time doorbell
was not triggered, because skb->xmit_more was set.
$ ethtool -S eth0 | egrep "tx_packet|xmit_more"
tx_packets: 2413288400
xmit_more: 666121277
I merged the tso_packet false sharing avoidance in this patch as well.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx4/en_port.c')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/en_port.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_port.c b/drivers/net/ethernet/mellanox/mlx4/en_port.c index c2cfb05e7290..0a0261d128b9 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_port.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_port.c | |||
@@ -150,14 +150,19 @@ int mlx4_en_DUMP_ETH_STATS(struct mlx4_en_dev *mdev, u8 port, u8 reset) | |||
150 | priv->port_stats.tx_chksum_offload = 0; | 150 | priv->port_stats.tx_chksum_offload = 0; |
151 | priv->port_stats.queue_stopped = 0; | 151 | priv->port_stats.queue_stopped = 0; |
152 | priv->port_stats.wake_queue = 0; | 152 | priv->port_stats.wake_queue = 0; |
153 | priv->port_stats.tso_packets = 0; | ||
154 | priv->port_stats.xmit_more = 0; | ||
153 | 155 | ||
154 | for (i = 0; i < priv->tx_ring_num; i++) { | 156 | for (i = 0; i < priv->tx_ring_num; i++) { |
155 | stats->tx_packets += priv->tx_ring[i]->packets; | 157 | const struct mlx4_en_tx_ring *ring = priv->tx_ring[i]; |
156 | stats->tx_bytes += priv->tx_ring[i]->bytes; | 158 | |
157 | priv->port_stats.tx_chksum_offload += priv->tx_ring[i]->tx_csum; | 159 | stats->tx_packets += ring->packets; |
158 | priv->port_stats.queue_stopped += | 160 | stats->tx_bytes += ring->bytes; |
159 | priv->tx_ring[i]->queue_stopped; | 161 | priv->port_stats.tx_chksum_offload += ring->tx_csum; |
160 | priv->port_stats.wake_queue += priv->tx_ring[i]->wake_queue; | 162 | priv->port_stats.queue_stopped += ring->queue_stopped; |
163 | priv->port_stats.wake_queue += ring->wake_queue; | ||
164 | priv->port_stats.tso_packets += ring->tso_packets; | ||
165 | priv->port_stats.xmit_more += ring->xmit_more; | ||
161 | } | 166 | } |
162 | 167 | ||
163 | stats->rx_errors = be64_to_cpu(mlx4_en_stats->PCS) + | 168 | stats->rx_errors = be64_to_cpu(mlx4_en_stats->PCS) + |