[dpdk-dev] [PATCH 1/2] pdump: use rte_pktmbuf_free bulk

Morten Brørup mb at smartsharesystems.com
Tue Dec 29 06:40:32 CET 2020


> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Stephen Hemminger
> Sent: Sunday, December 27, 2020 4:34 AM
> 
> Use rte_pktmbuf_free_bulk instead of loop when freeing
> packets.
> 
> Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
> ---
>  app/pdump/main.c             | 8 ++++----
>  lib/librte_pdump/rte_pdump.c | 6 +++---
>  2 files changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/app/pdump/main.c b/app/pdump/main.c
> index b34bf335317b..f986c7e9d67e 100644
> --- a/app/pdump/main.c
> +++ b/app/pdump/main.c
> @@ -477,10 +477,10 @@ pdump_rxtx(struct rte_ring *ring, uint16_t
> vdev_id, struct pdump_stats *stats)
>  		stats->tx_pkts += nb_in_txd;
> 
>  		if (unlikely(nb_in_txd < nb_in_deq)) {
> -			do {
> -				rte_pktmbuf_free(rxtx_bufs[nb_in_txd]);
> -				stats->freed_pkts++;
> -			} while (++nb_in_txd < nb_in_deq);
> +			unsigned int drops = nb_in_deq - nb_in_txd;
> +
> +			rte_pktmbuf_free_bulk(&rxtx_bufs[nb_in_txd], drops);
> +			stats->freed_pkts += drops;;

One semicolon should be enough.

And shouldn't checkpatch find typos like this?

>  		}
>  	}
>  }
> diff --git a/lib/librte_pdump/rte_pdump.c
> b/lib/librte_pdump/rte_pdump.c
> index b3c8d5ce4384..3c11bd795bc1 100644
> --- a/lib/librte_pdump/rte_pdump.c
> +++ b/lib/librte_pdump/rte_pdump.c
> @@ -93,11 +93,11 @@ pdump_copy(struct rte_mbuf **pkts, uint16_t
> nb_pkts, void *user_params)
> 
>  	ring_enq = rte_ring_enqueue_burst(ring, (void *)dup_bufs, d_pkts,
> NULL);
>  	if (unlikely(ring_enq < d_pkts)) {
> +		unsigned int drops = d_pkts - ring_enq;
> +
>  		PDUMP_LOG(DEBUG,
>  			"only %d of packets enqueued to ring\n", ring_enq);
> -		do {
> -			rte_pktmbuf_free(dup_bufs[ring_enq]);
> -		} while (++ring_enq < d_pkts);
> +		rte_pktmbuf_free_bulk(&dup_bufs[ring_enq], drops);
>  	}
>  }
> 
> --
> 2.29.2
> 

Acked-by: Morten Brørup <mb at smartsharesystems.com>



More information about the dev mailing list