[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