[PATCH v3 0/1] mbuf: add optional no-copy dynamic field storage
Randy L Tice
rtice at cisco.com
Mon Sep 28 20:16:54 CEST 2026
This revision reworks the optional dynfield3 area around explicit no-copy
semantics.
The area remains managed by the dynamic mbuf field registry, but is only
used by fields registered with RTE_MBUF_DYNFIELD_F_NO_COPY. Normal
fields, with flags set to 0, continue to use the existing copied dynamic
field storage and are prevented from overlapping dynfield3. The generic
mbuf dynamic-field copy helper remains unchanged and copies only the
existing copied storage.
This keeps the registry benefits for consumers that need additional mbuf
metadata, while making the non-copy behavior explicit per field and
avoiding a build-wide dynfield3 copy policy.
Randy Tice (1):
mbuf: add optional no-copy dynamic field storage
---
v3:
- Reserve dynfield3 only for fields registered with
RTE_MBUF_DYNFIELD_F_NO_COPY.
- Keep flags=0 dynamic fields in existing copied dynamic-field storage.
- Prevent copied fields from overlapping or straddling dynfield3.
- Drop the mbuf_dynfield3_copy build option and avoid changing
rte_mbuf_dynfield_copy().
- Widen dynamic-field allocator score storage to uint16_t.
- Disable mempool/octeontx when mbuf_dynfield3_size is non-zero.
- Add mbuf unit-test coverage for no-copy placement and copy behavior.
- Add devtools build coverage with mbuf_dynfield3_size enabled.
- Update programmer guide, release notes and commit rationale.
Validation:
- git diff --check HEAD~1..HEAD
- devtools/check-git-log.sh -n1
- devtools/checkpatches.sh -n1
- ninja -C build-v3-dynfield3
- build-v3-dynfield3/app/dpdk-test ... mbuf_autotest
- ninja -C build-generic
app/test/test_mbuf.c | 72 ++++++++++++++++++++++++--
config/meson.build | 5 ++
devtools/test-meson-builds.sh | 3 ++
doc/guides/prog_guide/mbuf_lib.rst | 9 ++++
doc/guides/rel_notes/release_26_11.rst | 17 +++++-
drivers/mempool/octeontx/meson.build | 5 ++
lib/mbuf/rte_mbuf_core.h | 6 +++
lib/mbuf/rte_mbuf_dyn.c | 54 ++++++++++++++++---
lib/mbuf/rte_mbuf_dyn.h | 11 +++-
meson_options.txt | 2 +
10 files changed, 172 insertions(+), 12 deletions(-)
--
2.35.6
More information about the dev
mailing list