[dpdk-dev] [PATCH v5 00/16] remove mbuf timestamp
Olivier Matz
olivier.matz at 6wind.com
Tue Nov 3 15:17:56 CET 2020
On Tue, Nov 03, 2020 at 03:09:15PM +0100, Thomas Monjalon wrote:
> 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.
>
>
> v5:
> - add a blank line between different kind of ARK variables
> - move registration after octeontx2 VF config
> - register also in otx2_nix_timesync_enable
>
> 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 | 17 ++++++
> 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_ptp.c | 8 +++
> 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 | 14 ++++-
> .../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 +
> 39 files changed, 440 insertions(+), 180 deletions(-)
>
> --
> 2.28.0
>
For the series:
Acked-by: Olivier Matz <olivier.matz at 6wind.com>
More information about the dev
mailing list