Single packet free using rte_pktmbuf_free_bulk() is dropping the performance. On cn10k, maximum of ~4% drop observed for IPsec event mode single SA outbound case.
To fix this issue, single packet free will use rte_pktmbuf_free API. Fixes: bd7c063561b3 ("examples/ipsec-secgw: use bulk free") Signed-off-by: Rahul Bhansali <rbhans...@marvell.com> --- examples/ipsec-secgw/ipsec-secgw.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/examples/ipsec-secgw/ipsec-secgw.h b/examples/ipsec-secgw/ipsec-secgw.h index 8baab44ee7..ec33a982df 100644 --- a/examples/ipsec-secgw/ipsec-secgw.h +++ b/examples/ipsec-secgw/ipsec-secgw.h @@ -229,11 +229,10 @@ free_reassembly_fail_pkt(struct rte_mbuf *mb) } /* helper routine to free bulk of packets */ -static inline void -free_pkts(struct rte_mbuf *mb[], uint32_t n) +static __rte_always_inline void +free_pkts(struct rte_mbuf *mb[], const uint32_t n) { - rte_pktmbuf_free_bulk(mb, n); - + n == 1 ? rte_pktmbuf_free(mb[0]) : rte_pktmbuf_free_bulk(mb, n); core_stats_update_drop(n); } -- 2.25.1