This patch adds build-time optional backing storage for the Dynamic
Mbuf Fields allocator.

The new mbuf_dynfield3_cnt Meson option reserves an additional
cache-line-aligned area at the end of struct rte_mbuf. The default value
is zero, so the default mbuf layout is unchanged. A non-zero value makes
the area available to the dynamic mbuf field allocator and to the normal
dynamic-field copy path.

The enabled configuration increases sizeof(struct rte_mbuf). The release
note calls out mempool/octeontx as a known fixed-size assumption that
needs follow-up before that driver can be built with a non-zero setting.

Validation:
- devtools/check-git-log.sh -n1
- devtools/checkpatches.sh -n1
- devtools/checkpatches.sh on exported patch
- devtools/get-maintainer.sh on exported patch
- Meson setup with default mbuf_dynfield3_cnt
- Meson setup with invalid -Dmbuf_dynfield3_cnt=1, which failed at
  configure time with the expected cache-line multiple error
- native Meson/Ninja build with default mbuf_dynfield3_cnt
- native Meson/Ninja build with -Dmbuf_dynfield3_cnt=0
- native Meson/Ninja build with -Dmbuf_dynfield3_cnt=8 and
  -Ddisable_drivers=mempool/octeontx

Randy Tice (1):
  mbuf: add optional dynfield3 storage

 app/test/test_mbuf.c                   |  5 +++--
 config/meson.build                     | 10 ++++++++++
 doc/guides/rel_notes/release_26_11.rst | 15 +++++++++++++++
 lib/mbuf/rte_mbuf.h                    |  3 +++
 lib/mbuf/rte_mbuf_core.h               | 16 ++++++++++++++++
 lib/mbuf/rte_mbuf_dyn.c                |  3 +++
 meson_options.txt                      |  2 ++
 7 files changed, 52 insertions(+), 2 deletions(-)

-- 
2.35.6

Reply via email to