[PATCH] net/intel: allow fast-free to empty cache
Varghese, Vipin
Vipin.Varghese at amd.com
Mon Jun 9 07:12:57 CEST 2025
[Public]
Snipped
> > > When freeing transmitted mbufs, there is no reason to send the freed
> > > mbufs directly to the ring if the cache is empty - only if it is
> > > zero size (in which case the cache pointer is NULL). Therefore,
> > > remove the empty check and only check for a null cache pointer.
> > >
> > > Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
> > > ---
> > > drivers/net/intel/common/tx.h | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/net/intel/common/tx.h
> > > b/drivers/net/intel/common/tx.h index d9cf4474fc..d361fe64ab 100644
> > > --- a/drivers/net/intel/common/tx.h
> > > +++ b/drivers/net/intel/common/tx.h
> > > @@ -143,7 +143,7 @@ ci_tx_free_bufs_vec(struct ci_tx_queue *txq,
> > > ci_desc_done_fn desc_done, bool ctx
> > > void **cache_objs;
> > > struct rte_mempool_cache *cache =
> > > rte_mempool_default_cache(mp, rte_lcore_id());
> > >
> > > - if (!cache || cache->len == 0)
> > > + if (cache == NULL)
> > > goto normal;
> > >
> > > cache_objs = &cache->objs[cache->len];
> > > --
> > > 2.43.0
> >
> > Yep, it did look strange.
> > Reviewed-by: Morten Brørup <mb at smartsharesystems.com>
> >
> Applied to dpdk-next-net-intel.
Reviewed-by: Vipin.Varghese at amd.com
Tested-by: Thiyagarajan.P at amd.com
At AMD we tested the code change on the platform `AMD Siena EPYC 8534P using Intel E810 2CQDA2`.
- simd: AVX512
- TEST: DPDK-TESTPMD in tx mode
- cmd: `./dpdk-testpmd -l 15,16,17 --force-max-simd-bitwidth=512 -a c1:00.0 -a c1:00.1 -- -i --nb-cores=2 --nb-ports=2 --rxq=1 --txq=1 --rxd=1024 --txd=1024 --forward-mode=txonly -a`
- Before vs After
-- TX-RX Desc 1024, TX-RX 1Q: 117.12, 117.13
-- TX-RX Desc 1024, TX-RX 2Q: 117.13, 117.17
-- TX-RX Desc 2048, TX-RX 1Q: 117.16, 117.18
-- TX-RX Desc 2048, TX-RX 2Q: 117.13, 117.15
>
> /Bruce
More information about the dev
mailing list