net/mlx4_en: use __netdev_tx_sent_queue()
doorbell only depends on xmit_more and netif_tx_queue_stopped() Using __netdev_tx_sent_queue() avoids messing with BQL stop flag, and is more generic. This patch increases performance on GSO workload by keeping doorbells to the minimum required. Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Tariq Toukan <tariqt@mellanox.com> Reviewed-by: Tariq Toukan <tariqt@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
fe60faa506
commit
c297344435
|
@ -1006,7 +1006,6 @@ netdev_tx_t mlx4_en_xmit(struct sk_buff *skb, struct net_device *dev)
|
|||
ring->packets++;
|
||||
}
|
||||
ring->bytes += tx_info->nr_bytes;
|
||||
netdev_tx_sent_queue(ring->tx_queue, tx_info->nr_bytes);
|
||||
AVG_PERF_COUNTER(priv->pstats.tx_pktsz_avg, skb->len);
|
||||
|
||||
if (tx_info->inl)
|
||||
|
@ -1044,7 +1043,10 @@ netdev_tx_t mlx4_en_xmit(struct sk_buff *skb, struct net_device *dev)
|
|||
netif_tx_stop_queue(ring->tx_queue);
|
||||
ring->queue_stopped++;
|
||||
}
|
||||
send_doorbell = !skb->xmit_more || netif_xmit_stopped(ring->tx_queue);
|
||||
|
||||
send_doorbell = __netdev_tx_sent_queue(ring->tx_queue,
|
||||
tx_info->nr_bytes,
|
||||
skb->xmit_more);
|
||||
|
||||
real_size = (real_size / 16) & 0x3f;
|
||||
|
||||
|
|
Loading…
Reference in New Issue