From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B7255C00A89 for ; Fri, 30 Oct 2020 17:29:53 +0000 (UTC) Received: from dpdk.org (dpdk.org [92.243.14.124]) by mail.kernel.org (Postfix) with ESMTP id 74CC420756 for ; Fri, 30 Oct 2020 17:29:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 74CC420756 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=monjalon.net Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dev-bounces@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 587342E8D; Fri, 30 Oct 2020 18:29:50 +0100 (CET) Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com [66.111.4.26]) by dpdk.org (Postfix) with ESMTP id B941A2D41 for ; Fri, 30 Oct 2020 18:29:47 +0100 (CET) Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id 424E25C0228; Fri, 30 Oct 2020 13:29:47 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Fri, 30 Oct 2020 13:29:47 -0400 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=/yzXffVLvTn74 b6UqekSxmKWXXddD84hQDFwgp36U0E=; b=DWiqMJIAlSgv0O5nVxz6dhYe6s1L9 wgUHfdeKUP5y01SiaMgM60A30tTEbP+S+sl10fs9l5mOGdASwWywFvSaSbZKI7fS hcSrgk0GE6rupF+bbp+yiD/4H4+ODGSJyv3ZJqRkcM0X4OgAVwqOv7pWm6qD5eK2 GH3UvfPy4pqkM2K5GRVTNz4OiEzeeaUYVBe6PgZE/xvjqV/wV1G1PK7aoEzybCwi TIai8RD19yC6IMU17JLAjBYglRW49Bz7u68T4dNN7SsYv7G5aeRjlDOy4Oji/F8o NhIdww3710kydmMUZrCGajtAhNvwRhaMH8TKhXjrvI9ylsdCnom/uoeHw== 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=/yzXffVLvTn74b6UqekSxmKWXXddD84hQDFwgp36U0E=; b=m4lTC8Li geJyZq21+mfsvCJOVKexrLhRX1bjjyHaS2gTZeqZyhK9Yvvqmm56qChymPSirEoZ UNFUHv/VIbj9Lxu8UTCanWEr6aOXDNUqV2M1tm1Yk1jFIeuaHYN5PGrkZleaTCGS FdXyHxCxDxTqOVjzWBpwVen6TJGoJptvb5RSshfuwUlBQodQ3Yjc5Erfbp1WCjC0 A5XI/YcTNexdIL3D271hXggfBJuJqMVU2Z9Ap/oogyg2I6GkFgmsSTqT45ATFAhp Tu/WscAP6/Kja7vemVrfWprDxEBsr4PaGT/TN5ZzNmsTEYKoqXEXiHFnVj90nUwE Y28nfrnSrk31Lw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedujedrleehgdeliecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhephffvufffkffojghfggfgsedtkeertd ertddtnecuhfhrohhmpefvhhhomhgrshcuofhonhhjrghlohhnuceothhhohhmrghssehm ohhnjhgrlhhonhdrnhgvtheqnecuggftrfgrthhtvghrnhepvdehgfeivdejgedtveehfe fhteelfefgieevgfffveefjeegtdfguedthedtgeevnecukfhppeejjedrudefgedrvddt fedrudekgeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhroh hmpehthhhomhgrshesmhhonhhjrghlohhnrdhnvght 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 074623064680; Fri, 30 Oct 2020 13:29:44 -0400 (EDT) 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, akhil.goyal@nxp.com, jerinj@marvell.com Date: Fri, 30 Oct 2020 18:29:25 +0100 Message-Id: <20201030172940.1073558-1-thomas@monjalon.net> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201026052105.1561859-1-thomas@monjalon.net> References: <20201026052105.1561859-1-thomas@monjalon.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v5 00/15] remove mbuf userdata 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 userdata (aliased as udata64) was announced to be removed for two reasons: - applications, libraries and drivers used the same field for different purposes, with a risk of usage conflict. - this field always used 8 bytes even if unneeded Some dynamic fields are created when needed to replace the big static userdata field. As a consequence, 8 bytes can be re-allocated to dynamic fields. This mbuf layout change is important to allow adding more features (consuming more dynamic fields) during the next year. v5: - ARK field types different for Rx and Tx - replace macros with inline functions v4 (thanks Jerin, Nithin and Ed): - move rte_node dynfield offset to hotter context in cache - move test-eventdev dynfield offset to hotter context in cache - split ARK user data for Rx and Tx + more ARK fixes v3 (thanks Olivier): - use typedef for new field types - fix node field type - initialize offsets to -1 - add more inline functions - inline rte_security_dynfield_is_registered - add PMD-specific userdata field for ARK v2 (thanks David & Andrew): - fix some indentations - return -rte_errno consistently - make some type casts more precise - define dynfield types in macros - hide field description in rte_security - do not lookup security dynfield in ipsec-secgw - do not use the existing timestamp field for other purpose Thomas Monjalon (15): 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 mbuf: move pool pointer in hotter first half 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 | 6 -- 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 | 70 +++++++++++++++++++ lib/librte_ethdev/rte_ethdev.h | 13 +++- .../rte_event_eth_rx_adapter.c | 11 --- .../rte_event_eth_rx_adapter.h | 6 +- lib/librte_kni/rte_kni_common.h | 3 +- lib/librte_latencystats/rte_latencystats.c | 48 +++++++++++-- lib/librte_mbuf/rte_mbuf.c | 2 - lib/librte_mbuf/rte_mbuf.h | 1 - lib/librte_mbuf/rte_mbuf_core.h | 15 +--- lib/librte_mbuf/rte_mbuf_dyn.h | 11 +-- 37 files changed, 507 insertions(+), 184 deletions(-) -- 2.28.0