mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 06:31:58 +02:00
net: mana: Set tx_packets to post gso processing packet count
Allow tx_packets and tx_bytes counter in the driver to represent the packets transmitted post GSO processing. Currently they are populated as bigger pre-GSO packets and bytes Signed-off-by: Shradha Gupta <shradhagupta@linux.microsoft.com> Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
dfec1c14ae
commit
7399ef9840
|
|
@ -251,10 +251,10 @@ netdev_tx_t mana_start_xmit(struct sk_buff *skb, struct net_device *ndev)
|
|||
struct netdev_queue *net_txq;
|
||||
struct mana_stats_tx *tx_stats;
|
||||
struct gdma_queue *gdma_sq;
|
||||
int err, len, num_gso_seg;
|
||||
unsigned int csum_type;
|
||||
struct mana_txq *txq;
|
||||
struct mana_cq *cq;
|
||||
int err, len;
|
||||
|
||||
if (unlikely(!apc->port_is_up))
|
||||
goto tx_drop;
|
||||
|
|
@ -407,6 +407,7 @@ netdev_tx_t mana_start_xmit(struct sk_buff *skb, struct net_device *ndev)
|
|||
skb_queue_tail(&txq->pending_skbs, skb);
|
||||
|
||||
len = skb->len;
|
||||
num_gso_seg = skb_is_gso(skb) ? skb_shinfo(skb)->gso_segs : 1;
|
||||
net_txq = netdev_get_tx_queue(ndev, txq_idx);
|
||||
|
||||
err = mana_gd_post_work_request(gdma_sq, &pkg.wqe_req,
|
||||
|
|
@ -431,10 +432,13 @@ netdev_tx_t mana_start_xmit(struct sk_buff *skb, struct net_device *ndev)
|
|||
/* skb may be freed after mana_gd_post_work_request. Do not use it. */
|
||||
skb = NULL;
|
||||
|
||||
/* Populated the packet and bytes counters based on post GSO packet
|
||||
* calculations
|
||||
*/
|
||||
tx_stats = &txq->stats;
|
||||
u64_stats_update_begin(&tx_stats->syncp);
|
||||
tx_stats->packets++;
|
||||
tx_stats->bytes += len;
|
||||
tx_stats->packets += num_gso_seg;
|
||||
tx_stats->bytes += len + ((num_gso_seg - 1) * gso_hs);
|
||||
u64_stats_update_end(&tx_stats->syncp);
|
||||
|
||||
tx_busy:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user