[EXT] Re: [PATCH] examples/ipsec-secgw: fix IPsec performance drop
Rahul Bhansali
rbhansali at marvell.com
Wed Feb 7 07:46:52 CET 2024
> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit at amd.com>
> Sent: Tuesday, February 6, 2024 11:55 PM
> To: Rahul Bhansali <rbhansali at marvell.com>; dev at dpdk.org; Radu Nicolau
> <radu.nicolau at intel.com>; Akhil Goyal <gakhil at marvell.com>; Konstantin
> Ananyev <konstantin.ananyev at huawei.com>; Anoob Joseph
> <anoobj at marvell.com>
> Subject: [EXT] Re: [PATCH] examples/ipsec-secgw: fix IPsec performance drop
>
> External Email
>
> ----------------------------------------------------------------------
> On 2/6/2024 12:38 PM, Rahul Bhansali wrote:
> > 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 <rbhansali at 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);
> > }
> >
>
> Hi Rahul,
>
> Do you think the 'rte_pktmbuf_free_bulk()' API performance can be improved by
> similar change?
Hi Ferruh,
Currently 'rte_pktmbuf_free_bulk() is not inline. If we make that along with __rte_pktmbuf_free_seg_via_array() both inline then performance can be improved similar.
More information about the dev
mailing list