[PATCH 17/20] test: use rte_pktmbuf_free_bulk
Stephen Hemminger
stephen at networkplumber.org
Fri May 8 22:33:38 CEST 2026
Replace open-coded loop with rte_pktmbuf_free_bulk().
Generated by devtools/cocci/free_bulk.cocci.
Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
---
app/test/sample_packet_forward.c | 5 +----
app/test/test_distributor.c | 4 +---
app/test/test_dmadev.c | 6 ++----
app/test/test_ipfrag.c | 4 +---
app/test/test_link_bonding.c | 13 ++++---------
app/test/test_pmd_perf.c | 3 +--
app/test/test_pmd_tap.c | 3 +--
app/test/test_reorder.c | 12 ++++--------
app/test/test_table_ports.c | 12 ++++--------
app/test/test_table_tables.c | 21 +++++++--------------
10 files changed, 26 insertions(+), 57 deletions(-)
diff --git a/app/test/sample_packet_forward.c b/app/test/sample_packet_forward.c
index aa897274d8..70bb75e321 100644
--- a/app/test/sample_packet_forward.c
+++ b/app/test/sample_packet_forward.c
@@ -115,10 +115,7 @@ test_get_mbuf_from_pool(struct rte_mempool **mp, struct rte_mbuf **pbuf,
void
test_put_mbuf_to_pool(struct rte_mempool *mp, struct rte_mbuf **pbuf)
{
- int itr = 0;
-
- for (itr = 0; itr < NUM_PACKETS; itr++)
- rte_pktmbuf_free(pbuf[itr]);
+ rte_pktmbuf_free_bulk(pbuf, NUM_PACKETS);
rte_mempool_free(mp);
}
diff --git a/app/test/test_distributor.c b/app/test/test_distributor.c
index da0a21ea83..ed37ca80f1 100644
--- a/app/test/test_distributor.c
+++ b/app/test/test_distributor.c
@@ -309,7 +309,6 @@ handle_work_with_free_mbufs(void *arg)
alignas(RTE_CACHE_LINE_SIZE) struct rte_mbuf *buf[8];
struct worker_params *wp = arg;
struct rte_distributor *d = wp->dist;
- unsigned int i;
unsigned int num;
unsigned int id = rte_atomic_fetch_add_explicit(&worker_idx, 1, rte_memory_order_relaxed);
@@ -317,8 +316,7 @@ handle_work_with_free_mbufs(void *arg)
while (!quit) {
rte_atomic_fetch_add_explicit(&worker_stats[id].handled_packets, num,
rte_memory_order_relaxed);
- for (i = 0; i < num; i++)
- rte_pktmbuf_free(buf[i]);
+ rte_pktmbuf_free_bulk(buf, num);
num = rte_distributor_get_pkt(d, id, buf, NULL, 0);
}
rte_atomic_fetch_add_explicit(&worker_stats[id].handled_packets, num,
diff --git a/app/test/test_dmadev.c b/app/test/test_dmadev.c
index 5488a1af33..a5772cc843 100644
--- a/app/test/test_dmadev.c
+++ b/app/test/test_dmadev.c
@@ -499,10 +499,8 @@ test_enqueue_sg_copies(int16_t dev_id, uint16_t vchan)
ERR_RETURN("Error:incorrect job id received when no job done, %u [expected %u]\n",
id, 0);
- for (i = 0; i < n_src; i++)
- rte_pktmbuf_free(src[i]);
- for (i = 0; i < n_dst; i++)
- rte_pktmbuf_free(dst[i]);
+ rte_pktmbuf_free_bulk(src, n_src);
+ rte_pktmbuf_free_bulk(dst, n_dst);
/* Verify that completion returns nothing more */
if (rte_dma_completed(dev_id, 0, 1, NULL, NULL) != 0)
diff --git a/app/test/test_ipfrag.c b/app/test/test_ipfrag.c
index 247575d6c5..2c553222c2 100644
--- a/app/test/test_ipfrag.c
+++ b/app/test/test_ipfrag.c
@@ -240,9 +240,7 @@ v6_allocate_packet_of(struct rte_mbuf *b, int fill, size_t s, uint8_t ttl,
static inline void
test_free_fragments(struct rte_mbuf *mb[], uint32_t num)
{
- uint32_t i;
- for (i = 0; i < num; i++)
- rte_pktmbuf_free(mb[i]);
+ rte_pktmbuf_free_bulk(mb, num);
}
static inline void
diff --git a/app/test/test_link_bonding.c b/app/test/test_link_bonding.c
index 19b064771a..eac785610a 100644
--- a/app/test/test_link_bonding.c
+++ b/app/test/test_link_bonding.c
@@ -1476,10 +1476,7 @@ verify_mbufs_ref_count(struct rte_mbuf **mbufs, int nb_mbufs, int val)
static void
free_mbufs(struct rte_mbuf **mbufs, int nb_mbufs)
{
- int i;
-
- for (i = 0; i < nb_mbufs; i++)
- rte_pktmbuf_free(mbufs[i]);
+ rte_pktmbuf_free_bulk(mbufs, nb_mbufs);
}
#define TEST_RR_MEMBER_TX_FAIL_MEMBER_COUNT (2)
@@ -4193,7 +4190,7 @@ testsuite_teardown(void)
static void
free_virtualpmd_tx_queue(void)
{
- int i, member_port, to_free_cnt;
+ int member_port, to_free_cnt;
struct rte_mbuf *pkts_to_free[MAX_PKT_BURST];
/* Free tx queue of virtual pmd */
@@ -4202,8 +4199,7 @@ free_virtualpmd_tx_queue(void)
to_free_cnt = virtual_ethdev_get_mbufs_from_tx_queue(
test_params->member_port_ids[member_port],
pkts_to_free, MAX_PKT_BURST);
- for (i = 0; i < to_free_cnt; i++)
- rte_pktmbuf_free(pkts_to_free[i]);
+ rte_pktmbuf_free_bulk(pkts_to_free, to_free_cnt);
}
}
@@ -4381,8 +4377,7 @@ test_tlb_rx_burst(void)
}
/* free mbufs */
- for (i = 0; i < burst_size; i++)
- rte_pktmbuf_free(rx_pkt_burst[i]);
+ rte_pktmbuf_free_bulk(rx_pkt_burst, burst_size);
/* reset bonding device stats */
rte_eth_stats_reset(test_params->bonding_port_id);
diff --git a/app/test/test_pmd_perf.c b/app/test/test_pmd_perf.c
index 995b0a6f20..dab1751b9a 100644
--- a/app/test/test_pmd_perf.c
+++ b/app/test/test_pmd_perf.c
@@ -602,8 +602,7 @@ poll_burst(void *args)
total, MAX_IDLE - timeout);
/* clean up */
total = pkt_per_port * conf->nb_ports - total;
- for (i = 0; i < total; i++)
- rte_pktmbuf_free(pkts_burst[i]);
+ rte_pktmbuf_free_bulk(pkts_burst, total);
rte_free(pkts_burst);
diff --git a/app/test/test_pmd_tap.c b/app/test/test_pmd_tap.c
index 6d0e8b4f54..f48b69de3b 100644
--- a/app/test/test_pmd_tap.c
+++ b/app/test/test_pmd_tap.c
@@ -192,8 +192,7 @@ test_tap_send_receive(void)
printf("Received %u packets on port %d\n", nb_rx, tap_port0);
/* Free received packets */
- for (i = 0; i < nb_rx; i++)
- rte_pktmbuf_free(rx_mbufs[i]);
+ rte_pktmbuf_free_bulk(rx_mbufs, nb_rx);
return TEST_SUCCESS;
}
diff --git a/app/test/test_reorder.c b/app/test/test_reorder.c
index 8c68e00869..fc922650d6 100644
--- a/app/test/test_reorder.c
+++ b/app/test/test_reorder.c
@@ -208,8 +208,7 @@ test_reorder_insert(void)
ret = 0;
exit:
rte_reorder_free(b);
- for (i = 0; i < INSERT_NUM_BUFS; i++)
- rte_pktmbuf_free(bufs[i]);
+ rte_pktmbuf_free_bulk(bufs, INSERT_NUM_BUFS);
return ret;
}
@@ -382,8 +381,7 @@ test_reorder_drain_up_to_seqn(void)
ret = -1;
goto exit;
}
- for (i = 0; i < 2; i++)
- rte_pktmbuf_free(robufs[i]);
+ rte_pktmbuf_free_bulk(robufs, 2);
memset(robufs, 0, sizeof(robufs));
/* Insert more packets
@@ -406,8 +404,7 @@ test_reorder_drain_up_to_seqn(void)
ret = -1;
goto exit;
}
- for (i = 0; i < 2; i++)
- rte_pktmbuf_free(robufs[i]);
+ rte_pktmbuf_free_bulk(robufs, 2);
memset(robufs, 0, sizeof(robufs));
ret = 0;
@@ -483,8 +480,7 @@ test_reorder_set_seqn(void)
ret = 0;
exit:
rte_reorder_free(b);
- for (i = 0; i < SET_SEQN_NUM_BUFS; i++)
- rte_pktmbuf_free(bufs[i]);
+ rte_pktmbuf_free_bulk(bufs, SET_SEQN_NUM_BUFS);
return ret;
}
diff --git a/app/test/test_table_ports.c b/app/test/test_table_ports.c
index 282ec2a3d2..d617e73810 100644
--- a/app/test/test_table_ports.c
+++ b/app/test/test_table_ports.c
@@ -73,8 +73,7 @@ test_port_ring_reader(void)
if (received_pkts < expected_pkts)
return -6;
- for (i = 0; i < RTE_PORT_IN_BURST_SIZE_MAX; i++)
- rte_pktmbuf_free(res_mbuf[i]);
+ rte_pktmbuf_free_bulk(res_mbuf, RTE_PORT_IN_BURST_SIZE_MAX);
return 0;
}
@@ -156,8 +155,7 @@ test_port_ring_writer(void)
if (received_pkts < expected_pkts)
return -8;
- for (i = 0; i < RTE_PORT_IN_BURST_SIZE_MAX; i++)
- rte_pktmbuf_free(res_mbuf[i]);
+ rte_pktmbuf_free_bulk(res_mbuf, RTE_PORT_IN_BURST_SIZE_MAX);
/* TX Bulk */
for (i = 0; i < RTE_PORT_IN_BURST_SIZE_MAX; i++)
@@ -171,8 +169,7 @@ test_port_ring_writer(void)
if (received_pkts < expected_pkts)
return -8;
- for (i = 0; i < RTE_PORT_IN_BURST_SIZE_MAX; i++)
- rte_pktmbuf_free(res_mbuf[i]);
+ rte_pktmbuf_free_bulk(res_mbuf, RTE_PORT_IN_BURST_SIZE_MAX);
for (i = 0; i < RTE_PORT_IN_BURST_SIZE_MAX; i++)
mbuf[i] = rte_pktmbuf_alloc(pool);
@@ -186,8 +183,7 @@ test_port_ring_writer(void)
if (received_pkts < expected_pkts)
return -9;
- for (i = 0; i < RTE_PORT_IN_BURST_SIZE_MAX; i++)
- rte_pktmbuf_free(res_mbuf[i]);
+ rte_pktmbuf_free_bulk(res_mbuf, RTE_PORT_IN_BURST_SIZE_MAX);
return 0;
}
diff --git a/app/test/test_table_tables.c b/app/test/test_table_tables.c
index 920aa555cb..d2c09c360f 100644
--- a/app/test/test_table_tables.c
+++ b/app/test/test_table_tables.c
@@ -162,8 +162,7 @@ test_table_stub(void)
return -2;
/* Free resources */
- for (i = 0; i < RTE_PORT_IN_BURST_SIZE_MAX; i++)
- rte_pktmbuf_free(mbufs[i]);
+ rte_pktmbuf_free_bulk(mbufs, RTE_PORT_IN_BURST_SIZE_MAX);
return 0;
}
@@ -276,8 +275,7 @@ test_table_array(void)
return -13;
/* Free resources */
- for (i = 0; i < RTE_PORT_IN_BURST_SIZE_MAX; i++)
- rte_pktmbuf_free(mbufs[i]);
+ rte_pktmbuf_free_bulk(mbufs, RTE_PORT_IN_BURST_SIZE_MAX);
status = rte_table_array_ops.f_free(table);
@@ -442,8 +440,7 @@ test_table_lpm(void)
return -23;
/* Free resources */
- for (i = 0; i < RTE_PORT_IN_BURST_SIZE_MAX; i++)
- rte_pktmbuf_free(mbufs[i]);
+ rte_pktmbuf_free_bulk(mbufs, RTE_PORT_IN_BURST_SIZE_MAX);
status = rte_table_lpm_ops.f_free(table);
@@ -620,8 +617,7 @@ test_table_lpm_ipv6(void)
return -24;
/* Free resources */
- for (i = 0; i < RTE_PORT_IN_BURST_SIZE_MAX; i++)
- rte_pktmbuf_free(mbufs[i]);
+ rte_pktmbuf_free_bulk(mbufs, RTE_PORT_IN_BURST_SIZE_MAX);
status = rte_table_lpm_ipv6_ops.f_free(table);
@@ -723,8 +719,7 @@ test_table_hash_lru_generic(struct rte_table_ops *ops, uint32_t key_size)
return -13;
/* Free resources */
- for (i = 0; i < RTE_PORT_IN_BURST_SIZE_MAX; i++)
- rte_pktmbuf_free(mbufs[i]);
+ rte_pktmbuf_free_bulk(mbufs, RTE_PORT_IN_BURST_SIZE_MAX);
status = ops->f_free(table);
@@ -833,8 +828,7 @@ test_table_hash_ext_generic(struct rte_table_ops *ops, uint32_t key_size)
return -13;
/* Free resources */
- for (i = 0; i < RTE_PORT_IN_BURST_SIZE_MAX; i++)
- rte_pktmbuf_free(mbufs[i]);
+ rte_pktmbuf_free_bulk(mbufs, RTE_PORT_IN_BURST_SIZE_MAX);
status = ops->f_free(table);
@@ -1047,8 +1041,7 @@ test_table_hash_cuckoo(void)
return -20;
/* Free resources */
- for (i = 0; i < RTE_PORT_IN_BURST_SIZE_MAX; i++)
- rte_pktmbuf_free(mbufs[i]);
+ rte_pktmbuf_free_bulk(mbufs, RTE_PORT_IN_BURST_SIZE_MAX);
status = rte_table_hash_cuckoo_ops.f_free(table);
--
2.53.0
More information about the dev
mailing list