[dpdk-dev] [PATCH 00/15] remove mbuf timestamp
Thomas Monjalon
thomas at monjalon.net
Thu Oct 29 10:27:35 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,
and bonus...
the mempool pointer can be promoted to the first half of mbuf!
This mbuf layout change is important to allow adding more features
(consuming more dynamic fields) during the next year
and can bring some performance improvement.
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 | 12 +++-
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, 502 insertions(+), 184 deletions(-)
--
2.28.0
More information about the dev
mailing list