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. Thomas Monjalon (14): 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 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 | 4 -- 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 | 65 +++++++++++++++++++ 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 | 48 ++++++++++++-- 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 | 1 + lib/librte_mbuf/rte_mbuf_dyn.h | 11 ++-- 37 files changed, 501 insertions(+), 179 deletions(-) -- 2.28.0