[dpdk-dev] [PATCH v4 00/16] remove mbuf timestamp
Thomas Monjalon
thomas at monjalon.net
Tue Nov 3 13:21:49 CET 2020
The mbuf field timestamp was announced to be removed for three reasons:
- a dynamic field already exist, used for Tx only
- this field always used 8 bytes even if unneeded
- this field is in the first half (cacheline) of mbuf
After this series, the dynamic field timestamp is used for both Rx and Tx
with separate dynamic flags to distinguish when the value is meaningful
without resetting the field during forwarding.
As a consequence, 8 bytes can be re-allocated to dynamic fields
in the first half of mbuf structure.
It is still open to change more the mbuf layout.
This mbuf layout change is important to allow adding more features
(consuming more dynamic fields) during the next year,
and can allow performance improvements with new usages in the first half.
v4:
- use local variable in nfb
- fix flag initialization
- remove useless blank line
v3:
- move ark variables declaration in a .h file
- improve cache locality for octeontx2
- add comments about cache locality in commit logs
- add comment for unused flag offset 17
- add timestamp register functions
- replace lookup with register in drivers and apps
- remove register in ethdev
v2:
- remove optimization to register only once in ethdev
- fix error message in latencystats
- convert rxtx_callbacks macro to inline function
- increase dynamic fields space
- do not move pool field
Thomas Monjalon (16):
eventdev: remove software Rx timestamp
mbuf: add Rx timestamp flag and helpers
latency: switch Rx timestamp to dynamic mbuf field
net/ark: switch Rx timestamp to dynamic mbuf field
net/dpaa2: switch Rx timestamp to dynamic mbuf field
net/mlx5: fix dynamic mbuf offset lookup check
net/mlx5: switch Rx timestamp to dynamic mbuf field
net/nfb: switch Rx timestamp to dynamic mbuf field
net/octeontx2: switch Rx timestamp to dynamic mbuf field
net/pcap: switch Rx timestamp to dynamic mbuf field
app/testpmd: switch Rx timestamp to dynamic mbuf field
examples/rxtx_callbacks: switch timestamp to dynamic field
ethdev: add doxygen comment for Rx timestamp API
mbuf: remove deprecated timestamp field
mbuf: add Tx timestamp registration helper
ethdev: include mbuf registration in Tx timestamp API
app/test-pmd/config.c | 38 -------------
app/test-pmd/util.c | 38 ++++++++++++-
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 | 4 --
doc/guides/rel_notes/release_20_11.rst | 4 ++
drivers/net/ark/ark_ethdev.c | 16 ++++++
drivers/net/ark/ark_ethdev_rx.c | 7 ++-
drivers/net/ark/ark_ethdev_rx.h | 2 +
drivers/net/dpaa2/dpaa2_ethdev.c | 11 ++++
drivers/net/dpaa2/dpaa2_ethdev.h | 2 +
drivers/net/dpaa2/dpaa2_rxtx.c | 25 ++++++---
drivers/net/mlx5/mlx5_ethdev.c | 8 ++-
drivers/net/mlx5/mlx5_rxq.c | 8 +++
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 | 15 ++++-
drivers/net/nfb/nfb_rx.h | 21 +++++--
drivers/net/octeontx2/otx2_ethdev.c | 10 ++++
drivers/net/octeontx2/otx2_rx.h | 19 ++++++-
drivers/net/pcap/rte_eth_pcap.c | 20 ++++++-
examples/rxtx_callbacks/main.c | 16 +++++-
lib/librte_ethdev/rte_ethdev.h | 13 ++++-
.../rte_event_eth_rx_adapter.c | 11 ----
.../rte_event_eth_rx_adapter.h | 6 +-
lib/librte_latencystats/rte_latencystats.c | 30 ++++++++--
lib/librte_mbuf/rte_mbuf.c | 2 -
lib/librte_mbuf/rte_mbuf.h | 2 +-
lib/librte_mbuf/rte_mbuf_core.h | 12 +---
lib/librte_mbuf/rte_mbuf_dyn.c | 51 +++++++++++++++++
lib/librte_mbuf/rte_mbuf_dyn.h | 55 +++++++++++++++++--
lib/librte_mbuf/version.map | 2 +
38 files changed, 431 insertions(+), 179 deletions(-)
--
2.28.0
More information about the dev
mailing list