[dpdk-dev] [PATCH v5 00/15] remove mbuf userdata
Thomas Monjalon
thomas at monjalon.net
Fri Oct 30 18:29:25 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.
v5:
- ARK field types different for Rx and Tx
- replace macros with inline functions
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
Thomas Monjalon (15):
eventdev: remove software Rx timestamp
mbuf: add Rx timestamp dynamic flag
ethdev: register mbuf field and flags for timestamp
latency: switch timestamp to dynamic mbuf field
net/ark: switch timestamp to dynamic mbuf field
net/dpaa2: switch timestamp to dynamic mbuf field
net/mlx5: fix dynamic mbuf offset lookup check
net/mlx5: switch timestamp to dynamic mbuf field
net/nfb: switch timestamp to dynamic mbuf field
net/octeontx2: switch timestamp to dynamic mbuf field
net/pcap: switch timestamp to dynamic mbuf field
app/testpmd: switch timestamp to dynamic mbuf field
examples/rxtx_callbacks: switch timestamp to dynamic field
mbuf: remove deprecated timestamp field
mbuf: move pool pointer in hotter first half
app/test-pmd/config.c | 38 ----------
app/test-pmd/util.c | 39 ++++++++++-
app/test/test_mbuf.c | 1 -
doc/guides/nics/mlx5.rst | 5 +-
.../prog_guide/event_ethernet_rx_adapter.rst | 6 +-
doc/guides/rel_notes/deprecation.rst | 6 --
doc/guides/rel_notes/release_20_11.rst | 4 ++
drivers/net/ark/ark_ethdev.c | 23 ++++++
drivers/net/ark/ark_ethdev_rx.c | 10 ++-
drivers/net/dpaa2/dpaa2_ethdev.c | 20 ++++++
drivers/net/dpaa2/dpaa2_ethdev.h | 2 +
drivers/net/dpaa2/dpaa2_rxtx.c | 25 +++++--
drivers/net/mlx5/mlx5_rxq.c | 36 ++++++++++
drivers/net/mlx5/mlx5_rxtx.c | 8 +--
drivers/net/mlx5/mlx5_rxtx.h | 19 +++++
drivers/net/mlx5/mlx5_rxtx_vec_altivec.h | 41 +++++------
drivers/net/mlx5/mlx5_rxtx_vec_neon.h | 43 ++++++------
drivers/net/mlx5/mlx5_rxtx_vec_sse.h | 35 +++++-----
drivers/net/mlx5/mlx5_trigger.c | 2 +-
drivers/net/mlx5/mlx5_txq.c | 2 +-
drivers/net/nfb/nfb_rx.c | 23 +++++-
drivers/net/nfb/nfb_rx.h | 18 +++--
drivers/net/octeontx2/otx2_ethdev.c | 33 +++++++++
drivers/net/octeontx2/otx2_rx.h | 19 ++++-
drivers/net/octeontx2/version.map | 7 ++
drivers/net/pcap/rte_eth_pcap.c | 29 +++++++-
examples/rxtx_callbacks/main.c | 17 ++++-
lib/librte_ethdev/rte_ethdev.c | 70 +++++++++++++++++++
lib/librte_ethdev/rte_ethdev.h | 13 +++-
.../rte_event_eth_rx_adapter.c | 11 ---
.../rte_event_eth_rx_adapter.h | 6 +-
lib/librte_kni/rte_kni_common.h | 3 +-
lib/librte_latencystats/rte_latencystats.c | 48 +++++++++++--
lib/librte_mbuf/rte_mbuf.c | 2 -
lib/librte_mbuf/rte_mbuf.h | 1 -
lib/librte_mbuf/rte_mbuf_core.h | 15 +---
lib/librte_mbuf/rte_mbuf_dyn.h | 11 +--
37 files changed, 507 insertions(+), 184 deletions(-)
--
2.28.0
More information about the dev
mailing list