[PATCH 3/3] net/ixgbe: reduce redundant store operation
Wang, Haiyue
haiyue.wang at intel.com
Mon Dec 20 08:24:42 CET 2021
> -----Original Message-----
> From: Feifei Wang <feifei.wang2 at arm.com>
> Sent: Monday, December 20, 2021 13:51
> To: Wang, Haiyue <haiyue.wang at intel.com>
> Cc: dev at dpdk.org; nd at arm.com; Feifei Wang <feifei.wang2 at arm.com>; Ruifeng Wang <ruifeng.wang at arm.com>
> Subject: [PATCH 3/3] net/ixgbe: reduce redundant store operation
>
> For free buffer in ixgbe driver, it is unnecessary to store 'NULL' into
> txep.mbuf. This is because when putting mbuf into Tx queue, tx_tail is
> the sentinel. And when doing tx_free, tx_next_dd is the sentinel. In all
> processes, mbuf==NULL is not a condition in check. Thus reset of mbuf is
> unnecessary and can be omitted.
>
> Signed-off-by: Feifei Wang <feifei.wang2 at arm.com>
> Reviewed-by: Ruifeng Wang <ruifeng.wang at arm.com>
> ---
> drivers/net/ixgbe/ixgbe_rxtx.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
> index d7c80d4242..9f3f2e9b50 100644
> --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> @@ -120,7 +120,6 @@ ixgbe_tx_free_bufs(struct ixgbe_tx_queue *txq)
> for (i = 0; i < txq->tx_rs_thresh; ++i, ++txep) {
> /* free buffers one at a time */
> m = rte_pktmbuf_prefree_seg(txep->mbuf);
> - txep->mbuf = NULL;
Not sure, but at least found:
static void __rte_cold
ixgbe_tx_queue_release_mbufs(struct ixgbe_tx_queue *txq)
{
unsigned i;
if (txq->sw_ring != NULL) {
for (i = 0; i < txq->nb_tx_desc; i++) {
if (txq->sw_ring[i].mbuf != NULL) { <---------------------------- ?
rte_pktmbuf_free_seg(txq->sw_ring[i].mbuf);
txq->sw_ring[i].mbuf = NULL;
}
}
}
}
>
> if (unlikely(m == NULL))
> continue;
> --
> 2.25.1
More information about the dev
mailing list