[PATCH] net/i40e: Fast release optimizations
Morten Brørup
mb at smartsharesystems.com
Wed Jun 25 13:15:57 CEST 2025
> From: Bruce Richardson [mailto:bruce.richardson at intel.com]
> Sent: Wednesday, 25 June 2025 12.48
>
> On Tue, Jun 24, 2025 at 06:12:38AM +0000, Morten Brørup wrote:
> > When fast releasing mbufs, the mbufs are not accessed, so do not
> prefetch
> > them.
> > This saves a mbuf load operation for each fast released TX mbuf.
> >
> > When fast release of mbufs is enabled for a TX queue, cache the mbuf
> > mempool pointer in the TX queue structure.
> > This saves one mbuf load operation for each burst of fast released TX
> > mbufs.
> >
> > The txep->mbuf pointer is not used after the mbuf has been freed, so
> do
> > not reset the pointer.
> > This saves a txep store operation for each TX mbuf freed.
> >
> > Signed-off-by: Morten Brørup <mb at smartsharesystems.com>
> > ---
> > drivers/net/intel/common/tx.h | 5 +++
> > .../i40e/i40e_recycle_mbufs_vec_common.c | 4 +-
> > drivers/net/intel/i40e/i40e_rxtx.c | 39 ++++++++++--------
> -
> > 3 files changed, 28 insertions(+), 20 deletions(-)
> >
> Thanks, Morten. This optimization probably applies other places in our
> drivers too. I'll look at this patch - and where else it can apply - for
> 25.11, since we are nearing the end of the 25.07 release cycle.
Agreed. Also about waiting until 25.11.
Note when reviewing...
I also considered replacing:
if (txq->offloads & RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE)
with:
if (txq->fast_free_mp != NULL)
However, I assume txq->offloads is hot in the cache, while txq->fast_free_mp is only relevant if using fast free, and thus not as hot.
So I chose not to.
More information about the dev
mailing list