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 54E99A04DD;
	Wed, 28 Oct 2020 11:27:01 +0100 (CET)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id BBC29C958;
	Wed, 28 Oct 2020 11:26:58 +0100 (CET)
Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com
 [66.111.4.28]) by dpdk.org (Postfix) with ESMTP id 7BC35C8F8
 for <dev@dpdk.org>; Wed, 28 Oct 2020 11:26:57 +0100 (CET)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.42])
 by mailout.nyi.internal (Postfix) with ESMTP id F41D85C019E;
 Wed, 28 Oct 2020 06:26:55 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute2.internal (MEProxy); Wed, 28 Oct 2020 06:26:56 -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=/vWNrvgyex6Hd
 etkBU13Q9UNtZyQJ+uW2Bgf8CCE64s=; b=Gv6mWWY3WP9g+ffxzpvZ7m/LiyEMq
 wlN7VCXOa7CycOph5tBk5AKyNdeyi/QT6nmGtWR0U41eSHr7OYxAaeRjU7w8CG1z
 sfoifUUmjitk2G7p7jUW/hui0sAAnZOu9zrYWxXUzLHkgypuNJkMyK5k3F1jkGri
 dPjsqAu849kdqaY1A1jza/aLz0gOOgW5dc/agUh5i3GH3oMiikjMuH1J+JnB6sRZ
 xhrfqg73L+rLOIWiYCrGUklhdfkGk74x2aRBqd1GlsUJ78PlmQ3CA9dIymYN/ZRQ
 lDi6ewVzgPDdtClkvtULX8Eu1F7ACZ5t/XStQaE/v86+Jw2D72YSSrmCQ==
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=/vWNrvgyex6HdetkBU13Q9UNtZyQJ+uW2Bgf8CCE64s=; b=qYGIQlnI
 QjDyZSdO1EhG67lmUu9C15FZ/Jo9GD85wP0EN5ggl/Uu+VXNqVLvj20OnFByi9Am
 0aVS6aO8F14v5iS/VcmmgDhh4NBEQEluRe8AMvszHO8vwocLiZnjjDjf9Y5FuMlu
 ngUdSX7W9G/BepYmP8+LOxjWXweCHfMrK1zsj84WCIfbSuUYP69GWMVw3ooc1/Zd
 H3UTbkoYbOPOaQDU+BpAJnDQo8ckt6Wtmqcff0p/94ZnVf0MXZPEvZ+kTjmyuzV6
 K4T/+tjYQq2EMdkaDNsrQaLdIeyZypGXXvYZvoQ8VDHW+2N/rR5ql9DF8+cVBBEa
 vP38wD6Dn3i+XA==
X-ME-Sender: <xms:bkeZX_qYcLEyNNj5bBwT8n60pekG0fesarppMBovYj29J-M7-rlxbw>
 <xme:bkeZX5raz9Bki_cFNhbYh6Am3n2qjYlXhmUvgm6QeSfSCOB1QuUr-l1Kz1b3xbB-K
 fl3EQmniYsVW5s-dQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedujedrledugdduhecutefuodetggdotefrodftvf
 curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
 uegrihhlohhuthemuceftddtnecunecujfgurhephffvufffkffojghfggfgsedtkeertd
 ertddtnecuhfhrohhmpefvhhhomhgrshcuofhonhhjrghlohhnuceothhhohhmrghssehm
 ohhnjhgrlhhonhdrnhgvtheqnecuggftrfgrthhtvghrnhepheejhfdvffeuheeiveduvd
 efieeghfdtvddvtdehhefgkeefhfdthfetffegteeunecuffhomhgrihhnpegtohhnfhdr
 ihhnnecukfhppeejjedrudefgedrvddtfedrudekgeenucevlhhushhtvghrufhiiigvpe
 dtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehthhhomhgrshesmhhonhhjrghlohhnrdhn
 vght
X-ME-Proxy: <xmx:bkeZX8PHPrBOY86njbWt0oGIbNlsZ3WFQ9vH5XxwD3oeNbiXb1htwA>
 <xmx:bkeZXy6s2_i2_tAxEt_h7XE_MSjotTUGRf3jHm9APsUdTgXAyYd0nA>
 <xmx:bkeZX-5n5SxGSFz9h3P6YfP72HpV_H8Rt0zA5vl0_PaLBcSRp5KfbQ>
 <xmx:b0eZX50b_fDIeJpLXIU6F1M5pARh7xqLwsZuk1T05mkDnCzl7kQEzg>
Received: from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184])
 by mail.messagingengine.com (Postfix) with ESMTPA id 0D55E3280065;
 Wed, 28 Oct 2020 06:26:53 -0400 (EDT)
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, akhil.goyal@nxp.com
Date: Wed, 28 Oct 2020 11:26:25 +0100
Message-Id: <20201028102640.3191964-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 v4 00/15] remove mbuf userdata
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 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.


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


Ed Czeck (1):
  net/ark: switch user data to dynamic mbuf fields

Nithin Dabilpuram (1):
  node: switch IPv4 metadata to dynamic mbuf field

Thomas Monjalon (13):
  examples: enclose DPDK includes with angle brackets
  kni: move header file from EAL
  mbuf: fix typo in dynamic field convention note
  security: switch metadata to dynamic mbuf field
  event/sw: switch test counter to dynamic mbuf field
  net/bnxt: switch CFA code to dynamic mbuf field
  net/vmxnet3: switch MSS hint to dynamic mbuf field
  test/distributor: switch sequence to dynamic mbuf field
  test/graph: switch user data to dynamic mbuf field
  app/eventdev: switch flow ID to dynamic mbuf field
  examples/bbdev: switch to dynamic mbuf field
  examples/rxtx_callbacks: switch to dynamic mbuf field
  mbuf: remove userdata field

 app/test-eventdev/test_order_atq.c            |   4 +-
 app/test-eventdev/test_order_common.c         |  21 ++-
 app/test-eventdev/test_order_common.h         |  21 +++
 app/test-eventdev/test_order_queue.c          |   4 +-
 app/test/test_distributor.c                   |  28 +++-
 app/test/test_graph.c                         |  94 +++++++------
 doc/api/doxy-api-index.md                     |   1 +
 doc/api/doxy-api.conf.in                      |   1 +
 doc/guides/prog_guide/rte_security.rst        |   9 +-
 doc/guides/rel_notes/deprecation.rst          |   1 -
 doc/guides/rel_notes/release_20_11.rst        |   3 +
 doc/guides/sample_app_ug/rxtx_callbacks.rst   |   4 +-
 drivers/crypto/octeontx2/otx2_cryptodev_sec.c |   5 +-
 drivers/event/sw/sw_evdev_selftest.c          |  23 +++-
 drivers/net/ark/ark_ethdev.c                  |  39 ++++++
 drivers/net/ark/ark_ethdev_rx.c               |   3 +-
 drivers/net/ark/ark_ethdev_tx.c               |   3 +-
 drivers/net/ark/meson.build                   |   2 +
 drivers/net/ark/rte_pmd_ark.h                 | 123 ++++++++++++++++++
 drivers/net/ark/version.map                   |   7 +
 drivers/net/bnxt/bnxt_ethdev.c                |  19 +++
 drivers/net/bnxt/bnxt_rxr.c                   |   2 +-
 drivers/net/bnxt/bnxt_rxr.h                   |   5 +
 drivers/net/bnxt/rte_pmd_bnxt.h               |   3 +
 drivers/net/ixgbe/ixgbe_ipsec.c               |   5 +-
 drivers/net/ixgbe/ixgbe_rxtx.c                |   6 +-
 drivers/net/octeontx2/otx2_ethdev.h           |   1 +
 drivers/net/octeontx2/otx2_ethdev_sec.c       |   5 +-
 drivers/net/octeontx2/otx2_ethdev_sec_tx.h    |   2 +-
 drivers/net/octeontx2/otx2_rx.h               |   2 +-
 drivers/net/vmxnet3/vmxnet3_ethdev.c          |  15 +++
 drivers/net/vmxnet3/vmxnet3_ethdev.h          |   6 +
 drivers/net/vmxnet3/vmxnet3_rxtx.c            |   9 +-
 examples/bbdev_app/main.c                     |  79 +++++++----
 examples/bond/main.c                          |  11 +-
 examples/ipsec-secgw/ipsec-secgw.c            |   9 +-
 examples/ipsec-secgw/ipsec_worker.c           |  12 +-
 examples/rxtx_callbacks/main.c                |  20 ++-
 examples/tep_termination/vxlan_setup.c        |   2 +-
 kernel/linux/kni/meson.build                  |   2 +-
 lib/librte_eal/linux/include/meson.build      |   1 -
 lib/librte_kni/meson.build                    |   2 +-
 .../include => librte_kni}/rte_kni_common.h   |   3 +-
 lib/librte_mbuf/rte_mbuf_core.h               |   8 +-
 lib/librte_mbuf/rte_mbuf_dyn.h                |   2 +-
 lib/librte_node/ip4_lookup.c                  |  40 ++++--
 lib/librte_node/ip4_lookup_neon.h             |  20 ++-
 lib/librte_node/ip4_lookup_sse.h              |  36 +++--
 lib/librte_node/ip4_rewrite.c                 |  49 +++++--
 lib/librte_node/node_private.h                |  13 +-
 lib/librte_security/rte_security.c            |  16 +++
 lib/librte_security/rte_security.h            |  42 ++++++
 lib/librte_security/rte_security_driver.h     |   3 +
 lib/librte_security/version.map               |   2 +
 54 files changed, 659 insertions(+), 189 deletions(-)
 create mode 100644 drivers/net/ark/rte_pmd_ark.h
 rename lib/{librte_eal/linux/include => librte_kni}/rte_kni_common.h (97%)

-- 
2.28.0