On Mon, Nov 09, 2020 at 10:33:41AM +0000, Ananyev, Konstantin wrote:
> 
> 
> > On Sat, Nov 07, 2020 at 07:57:05PM +0100, Morten Brørup wrote:
> > > > From: Thomas Monjalon [mailto:tho...@monjalon.net]
> > > > Sent: Saturday, November 7, 2020 4:53 PM
> > > >
> > > > The mempool pointer in the mbuf struct is moved
> > > > from the second to the first half.
> > > > It should increase performance on most systems having 64-byte cache 
> > > > line,
> > > > i.e. mbuf is split in two cache lines.
> > >
> > > Perhaps with the #define DEV_TX_OFFLOAD_MBUF_FAST_FREE mentioned by 
> > > Konstantin, it might be better moving m->next instead, at
> > least for applications with the opportunity to set this flag (e.g. 
> > applications with only one mbuf pool).
> > >
> > > Unfortunately, the information about the DEV_TX_OFFLOAD_MBUF_FAST_FREE 
> > > flag came to light after the techboard meeting, and I
> > don't have any benchmarks to support this suggestion, so I guess it's hard 
> > to change the techboard's decision to move the pool pointer.
> > >
> >
> > The thing with FAST_FREE is that it doesn't just indicate that there is
> > only one mbuf pool, but rather that none of the packets are chained mbufs
> > either.
> 
> Hmm, wonder where such assumption comes from?
> There is nothing about forbidding chained mbufs in rte_ethdev.h right now:
> #define DEV_TX_OFFLOAD_MBUF_FAST_FREE   0x00010000
> /**< Device supports optimization for fast release of mbufs.
>  *   When set application must guarantee that per-queue all mbufs comes from
>  *   the same mempool and has refcnt = 1.
>  */
> 

I should have checked before mailing. I was mixing up the refcnt = 1 bit
with chained mbuf support.

/Bruce

Reply via email to