From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id EC9A6A04E7; Tue, 3 Nov 2020 01:14:29 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4FC954C87; Tue, 3 Nov 2020 01:14:28 +0100 (CET) Received: from wout4-smtp.messagingengine.com (wout4-smtp.messagingengine.com [64.147.123.20]) by dpdk.org (Postfix) with ESMTP id A7CD24C6B for ; Tue, 3 Nov 2020 01:14:25 +0100 (CET) Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.west.internal (Postfix) with ESMTP id 5D9F2B5F; Mon, 2 Nov 2020 19:14:20 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Mon, 02 Nov 2020 19:14:20 -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=W+x1+jig7YBF/ jfAdbG+7Zz5WK/ihBGkRL6wqIB0/wc=; b=XgpUWwlwu+cnB3ZOS1q7xxSq1DzCM QP+qRKOAhJpFd121Z44hYYLqVqTXzOgJWu7jMa60rN5xl3WGCl6lVbap8KPWWoU1 j0HP4vqyuyLuWJL1FQdSB6cQRou+1806wwlluCdQ3a4JXlX8NVRpoqQP9FYeH+n9 ZKqjbRsGVPx2oIMlZnMit7kDkTvnPcybMcK4WjbMEws0hG6pV+NuDUku0NbmZfTY V0ldbdzDagpy+KuH9jWLkhAnQvn3pcnWXwL+mD+02LvlNVRM6UaM//aHU1+CnfIr KM7L37pzr1+AgcU4qxk2XeeDe1q5biDmbEcu7hlwh54zxjf9x06abeyPw== 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=W+x1+jig7YBF/jfAdbG+7Zz5WK/ihBGkRL6wqIB0/wc=; b=jEumKs+F VZfS5kuI1QNvwH9c4i46Ql9E//2yPdlcMoDxWyurfXwbzWE3zD3+dMJkRAoqqxjT KfWUJB6kNL2CUDe3XvLlJzDfof4AVAbs9gb0Xfu9HjxqD+y4hnjFFpoOiRke2Sl9 qmM93HCiXlkLyrqn0aHB90W23AseCzErbe8GIyCvJSzLzVt9Gg39Ua/V/okAiEC3 0bcCguRWm3eM+AZ93BDJSfTT5fu2GYQ3toOgSZBIUyHZucXK+ykHD4BHNcrMgFFa u8gMPEa9mpjPBVR7pduuMCSaqTau7OtvbtuUv4CsG8LXWa5rX4vc6CKm6VzqCXSV 6xo0a1e+uhdt1g== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedujedruddtvddgudejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkofgjfhgggfestdekre dtredttdenucfhrhhomhepvfhhohhmrghsucfoohhnjhgrlhhonhcuoehthhhomhgrshes mhhonhhjrghlohhnrdhnvghtqeenucggtffrrghtthgvrhhnpedvhefgiedvjeegtdevhe efhfetleefgfeivefgffevfeejgedtgfeutdehtdegveenucfkphepjeejrddufeegrddv tdefrddukeegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrh homhepthhhohhmrghssehmohhnjhgrlhhonhdrnhgvth X-ME-Proxy: Received: from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184]) by mail.messagingengine.com (Postfix) with ESMTPA id C73E5306467E; Mon, 2 Nov 2020 19:14:17 -0500 (EST) From: Thomas Monjalon 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 01:13:51 +0100 Message-Id: <20201103001407.2931963-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 v3 00/16] remove mbuf timestamp X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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. 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 | 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 | 16 ++++++ 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 | 18 ++++-- drivers/net/octeontx2/otx2_ethdev.c | 10 ++++ 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 | 13 ++++- .../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 + 38 files changed, 429 insertions(+), 179 deletions(-) -- 2.28.0