[dpdk-dev] [PATCH v2 0/8] mbuf: structure reorganization

Thomas Monjalon thomas.monjalon at 6wind.com
Wed Apr 5 11:37:39 CEST 2017

2017-04-04 18:27, Olivier Matz:
> Based on discussions done in [1] and in this thread, this patchset reorganizes
> the mbuf.
> The main changes are:
> - reorder structure to increase vector performance on some non-ia
>   platforms.
> - add a 64bits timestamp field in the 1st cache line. This timestamp
>   is not normalized, i.e. no unit or time reference is enforced. A
>   library may be added to do this job in the future.
> - m->next, m->nb_segs, and m->refcnt are always initialized for mbufs
>   in the pool, avoiding the need of setting m->next (located in the
>   2nd cache line) in the Rx path for mono-segment packets.
> - change port and nb_segs to 16 bits
> - move seqn in the 2nd cache line

Applied, thanks for the long work

We need to add a patch to bump ABIVER and document the changes.

> Things discussed but not done in the patchset:
> - move refcnt and nb_segs to the 2nd cache line: many drivers sets
>   them in the Rx path, so it could introduce a performance regression, or
>   it would require to change all the drivers, which is not an easy task.

If it is worth to move these fields in 2nd cache line,
can we plan to rework drivers for not setting them in Rx?

> Once this patchset is pushed, the Rx path of drivers could be optimized a bit,
> by removing writes to m->next, m->nb_segs and m->refcnt. The patch 4/8 gives an
> idea of what could be done.

Yes drivers patches are welcome :)
Please target RC2 for these changes.

More information about the dev mailing list