[1/2] pdump: use rte_pktmbuf_free bulk
Checks
Commit Message
Use rte_pktmbuf_free_bulk instead of loop when freeing
packets.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
app/pdump/main.c | 8 ++++----
lib/librte_pdump/rte_pdump.c | 6 +++---
2 files changed, 7 insertions(+), 7 deletions(-)
Comments
> From: dev [mailto:dev-bounces@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@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@smartsharesystems.com>
@@ -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;;
}
}
}
@@ -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);
}
}