[PATCH v5 05/22] mbuf: stop using mbuf cacheline marker fields
Stephen Hemminger
stephen at networkplumber.org
Mon Feb 26 19:20:34 CET 2024
On Sat, 24 Feb 2024 11:58:59 +0100
Thomas Monjalon <thomas at monjalon.net> wrote:
> 24/02/2024 09:21, Tyler Retzlaff:
> > Update prefetch inline functions to access rte_mbuf struct fields
> > directly instead of via cacheline{0,1} marker extension fields.
> >
> > Signed-off-by: Tyler Retzlaff <roretzla at linux.microsoft.com>
> [...]
> > rte_mbuf_prefetch_part1(struct rte_mbuf *m)
> > {
> > - rte_prefetch0(&m->cacheline0);
> > + rte_prefetch0(&m->buf_addr);
>
> Should be simply "m", no need to point to the first field explicitly.
>
> [...]
> > rte_mbuf_prefetch_part2(struct rte_mbuf *m)
> > {
> > #if RTE_CACHE_LINE_SIZE == 64
> > - rte_prefetch0(&m->cacheline1);
> > +#if RTE_IOVA_IN_MBUF
> > + rte_prefetch0(&m->next);
> > +#else
> > + rte_prefetch0(&m->dynfield2);
> > +#endif
>
> I think it is better to calculate m + min cache line size
> instead of relying on fields.
>
>
Agree with Thomas, the markers and field dependency are bad idea.
More information about the dev
mailing list