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

