[dpdk-dev] [PATCH v6 00/15] remove mbuf userdata
Thomas Monjalon
thomas at monjalon.net
Fri Oct 30 18:44:26 CET 2020
The mbuf field userdata (aliased as udata64)
was announced to be removed for two reasons:
- applications, libraries and drivers used the same field
for different purposes, with a risk of usage conflict.
- this field always used 8 bytes even if unneeded
Some dynamic fields are created when needed to replace
the big static userdata field.
As a consequence, 8 bytes can be re-allocated to dynamic fields.
This mbuf layout change is important to allow adding more features
(consuming more dynamic fields) during the next year.
v6:
- ARK field types different for Rx and Tx
- replace macros with inline functions
v5: sent "timestamp series" by mistake
v4 (thanks Jerin, Nithin and Ed):
- move rte_node dynfield offset to hotter context in cache
- move test-eventdev dynfield offset to hotter context in cache
- split ARK user data for Rx and Tx + more ARK fixes
v3 (thanks Olivier):
- use typedef for new field types
- fix node field type
- initialize offsets to -1
- add more inline functions
- inline rte_security_dynfield_is_registered
- add PMD-specific userdata field for ARK
v2 (thanks David & Andrew):
- fix some indentations
- return -rte_errno consistently
- make some type casts more precise
- define dynfield types in macros
- hide field description in rte_security
- do not lookup security dynfield in ipsec-secgw
- do not use the existing timestamp field for other purpose
Ed Czeck (1):
net/ark: switch user data to dynamic mbuf fields
Nithin Dabilpuram (1):
node: switch IPv4 metadata to dynamic mbuf field
Thomas Monjalon (13):
examples: enclose DPDK includes with angle brackets
kni: move header file from EAL
mbuf: fix typo in dynamic field convention note
security: switch metadata to dynamic mbuf field
event/sw: switch test counter to dynamic mbuf field
net/bnxt: switch CFA code to dynamic mbuf field
net/vmxnet3: switch MSS hint to dynamic mbuf field
test/distributor: switch sequence to dynamic mbuf field
test/graph: switch user data to dynamic mbuf field
app/eventdev: switch flow ID to dynamic mbuf field
examples/bbdev: switch to dynamic mbuf field
examples/rxtx_callbacks: switch TSC to dynamic field
mbuf: remove userdata field
app/test-eventdev/test_order_atq.c | 4 +-
app/test-eventdev/test_order_common.c | 21 ++-
app/test-eventdev/test_order_common.h | 21 +++
app/test-eventdev/test_order_queue.c | 4 +-
app/test/test_distributor.c | 32 ++++-
app/test/test_graph.c | 99 ++++++++------
doc/api/doxy-api-index.md | 1 +
doc/api/doxy-api.conf.in | 1 +
doc/guides/prog_guide/rte_security.rst | 9 +-
doc/guides/rel_notes/deprecation.rst | 1 -
doc/guides/rel_notes/release_20_11.rst | 3 +
doc/guides/sample_app_ug/rxtx_callbacks.rst | 4 +-
drivers/crypto/octeontx2/otx2_cryptodev_sec.c | 5 +-
drivers/event/sw/sw_evdev_selftest.c | 28 +++-
drivers/net/ark/ark_ethdev.c | 39 ++++++
drivers/net/ark/ark_ethdev_rx.c | 3 +-
drivers/net/ark/ark_ethdev_tx.c | 3 +-
drivers/net/ark/meson.build | 2 +
drivers/net/ark/rte_pmd_ark.h | 125 ++++++++++++++++++
drivers/net/ark/version.map | 7 +
drivers/net/bnxt/bnxt_ethdev.c | 19 +++
drivers/net/bnxt/bnxt_rxr.c | 2 +-
drivers/net/bnxt/bnxt_rxr.h | 10 ++
drivers/net/bnxt/rte_pmd_bnxt.h | 3 +
drivers/net/ixgbe/ixgbe_ipsec.c | 5 +-
drivers/net/ixgbe/ixgbe_rxtx.c | 6 +-
drivers/net/octeontx2/otx2_ethdev.h | 1 +
drivers/net/octeontx2/otx2_ethdev_sec.c | 5 +-
drivers/net/octeontx2/otx2_ethdev_sec_tx.h | 2 +-
drivers/net/octeontx2/otx2_rx.h | 2 +-
drivers/net/vmxnet3/vmxnet3_ethdev.c | 15 +++
drivers/net/vmxnet3/vmxnet3_ethdev.h | 11 ++
drivers/net/vmxnet3/vmxnet3_rxtx.c | 9 +-
examples/bbdev_app/main.c | 72 ++++++----
examples/bond/main.c | 11 +-
examples/ipsec-secgw/ipsec-secgw.c | 9 +-
examples/ipsec-secgw/ipsec_worker.c | 12 +-
examples/rxtx_callbacks/main.c | 24 +++-
kernel/linux/kni/meson.build | 2 +-
lib/librte_eal/linux/include/meson.build | 1 -
lib/librte_kni/meson.build | 2 +-
.../include => librte_kni}/rte_kni_common.h | 2 +-
lib/librte_mbuf/rte_mbuf_core.h | 8 +-
lib/librte_mbuf/rte_mbuf_dyn.h | 2 +-
lib/librte_node/ip4_lookup.c | 40 ++++--
lib/librte_node/ip4_lookup_neon.h | 20 ++-
lib/librte_node/ip4_lookup_sse.h | 36 +++--
lib/librte_node/ip4_rewrite.c | 49 +++++--
lib/librte_node/node_private.h | 13 +-
lib/librte_security/rte_security.c | 16 +++
lib/librte_security/rte_security.h | 42 ++++++
lib/librte_security/rte_security_driver.h | 3 +
lib/librte_security/version.map | 2 +
53 files changed, 681 insertions(+), 187 deletions(-)
create mode 100644 drivers/net/ark/rte_pmd_ark.h
rename lib/{librte_eal/linux/include => librte_kni}/rte_kni_common.h (98%)
--
2.28.0
More information about the dev
mailing list