From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 22CD3A0521;
	Tue,  3 Nov 2020 15:09:46 +0100 (CET)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id BC167CA90;
	Tue,  3 Nov 2020 15:09:44 +0100 (CET)
Received: from wout1-smtp.messagingengine.com (wout1-smtp.messagingengine.com
 [64.147.123.24]) by dpdk.org (Postfix) with ESMTP id F036DCA74
 for <dev@dpdk.org>; Tue,  3 Nov 2020 15:09:42 +0100 (CET)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.42])
 by mailout.west.internal (Postfix) with ESMTP id AC6E5D30;
 Tue,  3 Nov 2020 09:09:40 -0500 (EST)
Received: from mailfrontend1 ([10.202.2.162])
 by compute2.internal (MEProxy); Tue, 03 Nov 2020 09:09:41 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h=
 from:to:cc:subject:date:message-id:in-reply-to:references
 :mime-version:content-transfer-encoding; s=fm2; bh=ImbK6wW88tGlF
 k48Z5xkiXPx2hu/dGjdavNmtdWSuK8=; b=bN31f3a840knxe8K7Lbby/B2XlrEL
 +AyT79aBySoCtxDu5dprBSuXhSjUpQmDvPqZIp14GlUXy2KZ2h+mEPdvXVAPTzUt
 BctYRiYEsPl9sVSDRdN2Rcy5UF8pWy0mjjQtZOWRxi42wbxQph2tO+fF9Wp3Zlh5
 7AnYCA9fEQ48HhVe/GiBJ09BuHd9svyKkI1l9fRYcpZISRIwDyGl6/+EI0pn1d9z
 Da4rGPMFzFIGJj52n2iMBnZ1/PidI5hD8OcxUNH5zl5Thvar+gshyQg73HLNV+FR
 yrDzf2YbKRt8mPCGKHrqW2JUYtyB/4caW95mqZVDuCE5m1wG/lW6EzcQQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:content-transfer-encoding:date:from
 :in-reply-to:message-id:mime-version:references:subject:to
 :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
 fm1; bh=ImbK6wW88tGlFk48Z5xkiXPx2hu/dGjdavNmtdWSuK8=; b=G9zvmzig
 IXnaHeyMwQwpSEdEM/Il82Zm5ASUyfDGmJjWUDXKWq0WIz35j3qMqehkudD87bZw
 PcVWWKqYvxKpq5ClhDPeOZUBbDwvv7lX4U+zrLqSpydQAxsFrBYqR7KbaNC0MU3a
 VEcbWIzJGaVYx1874ohqyJBDjBh1c5gQyURjLhhe/iMt77XyS5ksG6VcZvdEMT7M
 cJ2BYNtR/nOg4uyQW+5FAUKsGWuE5+TW09Wqybn/1HQ+xfme7GiYdeJQrrW4Jtwn
 lq8tZThXjC87zWBiqcVPDe+xBZZJzoL1FG1V0zofW+srCoEmxMC3VeEU8LGcH42x
 F1jT6E9l34Ykow==
X-ME-Sender: <xms:o2ShX2_TEGycl9Os2lZyodmnZr0R-NhJ_tNwKHdJcNe9trAKdJI6rA>
 <xme:o2ShX2vcaZXLqaAMMLkWBJj1WvgdCO1lWtL_bkAjTiASppw12eZ8WXVdl8pnu5MSh
 BVk0d1M5HwLJDpAuA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedujedruddtfedgheekucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
 uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkofgjfhgggfestdekre
 dtredttdenucfhrhhomhepvfhhohhmrghsucfoohhnjhgrlhhonhcuoehthhhomhgrshes
 mhhonhhjrghlohhnrdhnvghtqeenucggtffrrghtthgvrhhnpedvhefgiedvjeegtdevhe
 efhfetleefgfeivefgffevfeejgedtgfeutdehtdegveenucfkphepjeejrddufeegrddv
 tdefrddukeegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrh
 homhepthhhohhmrghssehmohhnjhgrlhhonhdrnhgvth
X-ME-Proxy: <xmx:o2ShX8BTH65lL8Je2Ptkp1rBcTp2RsyUmMos4UOj6KT3Qh-ZA93tkg>
 <xmx:o2ShX-eUeEKAzsMnoHBBjGqJM7FpX386jXjR96pHW8RxvKO0R4JcHw>
 <xmx:o2ShX7O0VnZQ3FrSW-sI1fa8rNLeTEY5K15nchB7GSKZrDuzwmhJmA>
 <xmx:pGShX22hL8aQhkHP_M4rq5JXm2qwE0frCtzwlVSaCaXp14SG393nKQ>
Received: from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184])
 by mail.messagingengine.com (Postfix) with ESMTPA id 57DB5328005E;
 Tue,  3 Nov 2020 09:09:38 -0500 (EST)
From: Thomas Monjalon <thomas@monjalon.net>
To: dev@dpdk.org
Cc: ferruh.yigit@intel.com, david.marchand@redhat.com,
 bruce.richardson@intel.com, olivier.matz@6wind.com,
 andrew.rybchenko@oktetlabs.ru, jerinj@marvell.com, viacheslavo@nvidia.com
Date: Tue,  3 Nov 2020 15:09:15 +0100
Message-Id: <20201103140931.488700-1-thomas@monjalon.net>
X-Mailer: git-send-email 2.28.0
In-Reply-To: <20201029092751.3837177-1-thomas@monjalon.net>
References: <20201029092751.3837177-1-thomas@monjalon.net>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Subject: [dpdk-dev] [PATCH v5 00/16] remove mbuf timestamp
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

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