diff options
author | Eric Dumazet | 2014-10-02 17:24:21 +0200 |
---|---|---|
committer | David S. Miller | 2014-10-05 02:04:14 +0200 |
commit | 9fab426de78140dc5cb0b85bbee6042c9c3d5ca5 (patch) | |
tree | 191460414031ac67841797f90acece7b79b3d6bb /drivers/net/ethernet/mellanox/mlx4/en_tx.c | |
parent | Merge branch 'gudp' (diff) | |
download | kernel-qcow2-linux-9fab426de78140dc5cb0b85bbee6042c9c3d5ca5.tar.gz kernel-qcow2-linux-9fab426de78140dc5cb0b85bbee6042c9c3d5ca5.tar.xz kernel-qcow2-linux-9fab426de78140dc5cb0b85bbee6042c9c3d5ca5.zip |
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_tx.c')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/en_tx.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_tx.c b/drivers/net/ethernet/mellanox/mlx4/en_tx.c index adedc47e947d..0c501253fdab 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_tx.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_tx.c @@ -840,7 +840,7 @@ netdev_tx_t mlx4_en_xmit(struct sk_buff *skb, struct net_device *dev) * note that we already verified that it is linear */ memcpy(tx_desc->lso.header, skb->data, lso_header_size); - priv->port_stats.tso_packets++; + ring->tso_packets++; i = ((skb->len - lso_header_size) / skb_shinfo(skb)->gso_size) + !!((skb->len - lso_header_size) % skb_shinfo(skb)->gso_size); tx_info->nr_bytes = skb->len + (i - 1) * lso_header_size; @@ -910,6 +910,8 @@ netdev_tx_t mlx4_en_xmit(struct sk_buff *skb, struct net_device *dev) wmb(); iowrite32be(ring->doorbell_qpn, ring->bf.uar->map + MLX4_SEND_DOORBELL); + } else { + ring->xmit_more++; } } |