> From: Bruce Richardson [mailto:bruce.richard...@intel.com] > Sent: Monday, 10 March 2025 16.53 > > On Mon, Mar 10, 2025 at 04:34:23PM +0100, Morten Brørup wrote: > > > From: Bruce Richardson [mailto:bruce.richard...@intel.com] > > > Sent: Monday, 10 March 2025 16.27 > > > > > > On Mon, Mar 10, 2025 at 04:18:35PM +0100, Morten Brørup wrote: > > > > > From: Bruce Richardson [mailto:bruce.richard...@intel.com] > > > > > Sent: Monday, 10 March 2025 14.26 > > > > > > > > > > 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.richard...@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 <m...@smartsharesystems.com> > > > > > > > Thanks for review. > > > > BTW, I recall other Intel drivers having the same "feature": > > > https://elixir.bootlin.com/dpdk/v24.11.1/source/drivers/net/iavf/iavf_r > xtx_vec_avx512.c#L1876 > > > https://elixir.bootlin.com/dpdk/v24.11.1/source/drivers/net/ice/ice_rxt > x_vec_avx512.c#L891 > > > > With the deduplication work I did earlier this release, this code > should > now be shared between ixgbe, i40e, iavf and ice drivers, so we > hopefully > can fix all 4 with one change.
Excellent! Your deduplication already starts paying off. :-) It looks like only the non-deduplicated idpf driver remains to be modified separately: drivers/net/intel/idpf/idpf_common_rxtx_avx512.c