[dpdk-dev] [PATCH 00/15] remove mbuf userdata

Thomas Monjalon thomas at monjalon.net
Mon Oct 26 06:20:50 CET 2020


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.


Thomas Monjalon (15):
  examples: enclose DPDK includes with angle brackets
  kni: move header file from EAL
  mbuf: fix typo in dynamic field convention note
  node: switch IPv4 metadata to dynamic mbuf field
  security: switch metadata to dynamic mbuf field
  event/sw: switch test counter to dynamic mbuf field
  net/ark: ignore user data
  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         | 16 +++-
 app/test-eventdev/test_order_common.h         |  5 +
 app/test-eventdev/test_order_queue.c          |  4 +-
 app/test/test_distributor.c                   | 27 +++++-
 app/test/test_graph.c                         | 93 +++++++++++--------
 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          | 22 ++++-
 drivers/net/ark/ark_ddm.h                     |  2 +-
 drivers/net/ark/ark_ethdev_rx.c               |  1 -
 drivers/net/ark/ark_ethdev_tx.c               |  1 -
 drivers/net/ark/ark_udm.h                     |  2 +-
 drivers/net/bnxt/bnxt_ethdev.c                | 19 ++++
 drivers/net/bnxt/bnxt_rxr.c                   |  5 +-
 drivers/net/bnxt/bnxt_rxr.h                   |  2 +
 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          |  2 +
 drivers/net/vmxnet3/vmxnet3_rxtx.c            | 10 +-
 examples/bbdev_app/main.c                     | 67 ++++++++-----
 examples/bond/main.c                          | 11 +--
 examples/ipsec-secgw/ipsec-secgw.c            | 15 ++-
 examples/ipsec-secgw/ipsec.h                  |  3 +
 examples/ipsec-secgw/ipsec_worker.c           | 13 ++-
 examples/rxtx_callbacks/main.c                | 19 +++-
 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                  |  7 ++
 lib/librte_node/ip4_rewrite.c                 | 10 ++
 lib/librte_node/node_private.h                | 12 ++-
 lib/librte_security/rte_security.c            | 10 ++
 lib/librte_security/rte_security.h            |  5 +
 lib/librte_security/rte_security_driver.h     | 20 ++++
 lib/librte_security/version.map               |  2 +
 49 files changed, 357 insertions(+), 133 deletions(-)
 rename lib/{librte_eal/linux/include => librte_kni}/rte_kni_common.h (97%)

-- 
2.28.0



More information about the dev mailing list