From: Yuan Wang <yuanx.wang@intel.com>
To: dev@dpdk.org
Cc: thomas@monjalon.net, andrew.rybchenko@oktetlabs.ru,
ferruh.yigit@xilinx.com, mdr@ashroe.eu, xiaoyun.li@intel.com,
aman.deep.singh@intel.com, yuying.zhang@intel.com,
qi.z.zhang@intel.com, qiming.yang@intel.com,
jerinjacobk@gmail.com, viacheslavo@nvidia.com,
stephen@networkplumber.org, xuan.ding@intel.com,
hpothula@marvell.com, yaqi.tang@intel.com,
Yuan Wang <yuanx.wang@intel.com>
Subject: [PATCH v4 0/4] support protocol based buffer split
Date: Tue, 20 Sep 2022 19:12:39 +0800 [thread overview]
Message-ID: <20220920111243.1290998-1-yuanx.wang@intel.com> (raw)
In-Reply-To: <20220812181552.2908067-1-yuanx.wang@intel.com>
Protocol type based buffer split consists of splitting a received packet
into several separate segments based on the packet content. It is useful
in some scenarios, such as GPU acceleration. The splitting will help to
enable true zero copy and hence improve the performance significantly.
This patchset aims to support protocol header split based on current buffer
split. When Rx queue is configured with RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT
offload and corresponding protocol, packets received will be directly split
into different mempools.
Change log:
v4:
Change proto_hdr to a bit mask of RTE_PTYPE_*.
Add the description on how to put the unsplit packages.
Use proto_hdr to determine whether to use protocol based split.
v3:
Fix mail thread.
v2:
Add mbuf dump to the driver's buffer split path.
Add buffer split to the driver feature list.
Remove unsupported header protocols from the driver.
Yuan Wang (4):
ethdev: introduce protocol header API
ethdev: introduce protocol hdr based buffer split
app/testpmd: add rxhdrs commands and parameters
net/ice: support buffer split in Rx path
app/test-pmd/cmdline.c | 124 +++++++++++++-
app/test-pmd/config.c | 70 ++++++++
app/test-pmd/parameters.c | 16 +-
app/test-pmd/testpmd.c | 2 +
app/test-pmd/testpmd.h | 6 +
doc/guides/rel_notes/release_22_11.rst | 16 ++
drivers/net/ice/ice_ethdev.c | 32 +++-
drivers/net/ice/ice_rxtx.c | 215 +++++++++++++++++++++----
drivers/net/ice/ice_rxtx.h | 16 ++
drivers/net/ice/ice_rxtx_vec_common.h | 3 +
lib/ethdev/ethdev_driver.h | 15 ++
lib/ethdev/rte_ethdev.c | 106 ++++++++++--
lib/ethdev/rte_ethdev.h | 49 +++++-
lib/ethdev/version.map | 3 +
14 files changed, 625 insertions(+), 48 deletions(-)
--
2.25.1
next prev parent reply other threads:[~2022-09-20 3:28 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-12 18:15 [PATCH " Yuan Wang
2022-08-12 18:15 ` [PATCH 1/4] ethdev: introduce protocol header API Yuan Wang
2022-08-12 18:15 ` [PATCH 2/4] ethdev: introduce protocol hdr based buffer split Yuan Wang
2022-08-12 18:15 ` [PATCH 3/4] app/testpmd: add rxhdrs commands and parameters Yuan Wang
2022-08-12 18:15 ` [PATCH 4/4] net/ice: support buffer split in Rx path Yuan Wang
2022-09-01 22:33 ` [PATCH v2 0/4] support protocol based buffer split Yuan Wang
2022-09-01 22:34 ` [PATCH v2 1/4] ethdev: introduce protocol header API Yuan Wang
2022-09-01 22:35 ` [PATCH v2 2/4] ethdev: introduce protocol hdr based buffer split Yuan Wang
2022-09-01 22:36 ` [PATCH v2 3/4] app/testpmd: add rxhdrs commands and parameters Yuan Wang
2022-09-01 22:37 ` [PATCH v2 4/4] net/ice: support buffer split in Rx path Yuan Wang
2022-09-02 19:10 ` [PATCH v3 0/4] support protocol based buffer split Yuan Wang
2022-09-02 19:10 ` [PATCH v3 1/4] ethdev: introduce protocol header API Yuan Wang
2022-09-12 11:24 ` Andrew Rybchenko
2022-09-16 8:34 ` Wang, YuanX
2022-09-02 19:10 ` [PATCH v3 2/4] ethdev: introduce protocol hdr based buffer split Yuan Wang
2022-09-12 11:47 ` Andrew Rybchenko
2022-09-16 8:38 ` Wang, YuanX
2022-09-20 5:35 ` Andrew Rybchenko
2022-09-22 3:13 ` Wang, YuanX
2022-09-13 7:56 ` Suanming Mou
2022-09-16 8:39 ` Wang, YuanX
2022-09-02 19:10 ` [PATCH v3 3/4] app/testpmd: add rxhdrs commands and parameters Yuan Wang
2022-09-02 19:10 ` [PATCH v3 4/4] net/ice: support buffer split in Rx path Yuan Wang
2022-09-20 11:12 ` Yuan Wang [this message]
2022-09-20 11:12 ` [PATCH v4 1/4] ethdev: introduce protocol header API Yuan Wang
2022-09-20 11:12 ` [PATCH v4 2/4] ethdev: introduce protocol hdr based buffer split Yuan Wang
2022-09-20 11:12 ` [PATCH v4 3/4] app/testpmd: add rxhdrs commands and parameters Yuan Wang
2022-09-20 11:12 ` [PATCH v4 4/4] net/ice: support buffer split in Rx path Yuan Wang
2022-09-26 9:40 ` [PATCH v5 0/4] support protocol based buffer split Yuan Wang
2022-09-26 9:40 ` [PATCH v5 1/4] ethdev: introduce protocol header API Yuan Wang
2022-09-26 9:40 ` [PATCH v5 2/4] ethdev: introduce protocol hdr based buffer split Yuan Wang
2022-09-28 15:42 ` Wang, YuanX
2022-09-26 9:40 ` [PATCH v5 3/4] app/testpmd: add rxhdrs commands and parameters Yuan Wang
2022-09-26 9:40 ` [PATCH v5 4/4] net/ice: support buffer split in Rx path Yuan Wang
2022-09-29 18:59 ` [PATCH v6 0/4] support protocol based buffer split Yuan Wang
2022-09-29 18:59 ` [PATCH v6 1/4] ethdev: introduce protocol header API Yuan Wang
2022-09-29 18:59 ` [PATCH v6 2/4] ethdev: introduce protocol hdr based buffer split Yuan Wang
2022-09-29 18:59 ` [PATCH v6 3/4] app/testpmd: add rxhdrs commands and parameters Yuan Wang
2022-09-29 18:59 ` [PATCH v6 4/4] net/ice: support buffer split in Rx path Yuan Wang
2022-09-30 6:45 ` Tang, Yaqi
2022-10-01 21:05 ` [PATCH v7 0/4] support protocol based buffer split Yuan Wang
2022-10-01 21:05 ` [PATCH v7 1/4] ethdev: introduce protocol header API Yuan Wang
2022-10-03 7:04 ` Andrew Rybchenko
2022-10-04 2:21 ` Wang, YuanX
2022-10-04 7:52 ` Andrew Rybchenko
2022-10-04 15:00 ` Wang, YuanX
2022-10-01 21:05 ` [PATCH v7 2/4] ethdev: introduce protocol hdr based buffer split Yuan Wang
2022-10-02 4:01 ` Wang, YuanX
2022-10-03 7:47 ` Andrew Rybchenko
2022-10-04 2:48 ` Wang, YuanX
2022-10-04 8:22 ` Andrew Rybchenko
2022-10-04 15:01 ` Wang, YuanX
2022-10-01 21:05 ` [PATCH v7 3/4] app/testpmd: add rxhdrs commands and parameters Yuan Wang
2022-10-01 21:05 ` [PATCH v7 4/4] net/ice: support buffer split in Rx path Yuan Wang
2022-10-05 23:18 ` [PATCH v8 0/4] support protocol based buffer split Yuan Wang
2022-10-05 23:18 ` [PATCH v8 1/4] ethdev: introduce protocol header API Yuan Wang
2022-10-06 10:11 ` Andrew Rybchenko
2022-10-05 23:18 ` [PATCH v8 2/4] ethdev: introduce protocol hdr based buffer split Yuan Wang
2022-10-06 10:11 ` Andrew Rybchenko
2022-10-08 14:30 ` Ding, Xuan
2022-10-05 23:18 ` [PATCH v8 3/4] app/testpmd: add rxhdrs commands and parameters Yuan Wang
2022-10-06 10:12 ` Andrew Rybchenko
2022-10-05 23:18 ` [PATCH v8 4/4] net/ice: support buffer split in Rx path Yuan Wang
2022-10-06 10:12 ` Andrew Rybchenko
2022-10-06 10:13 ` [PATCH v8 0/4] support protocol based buffer split Andrew Rybchenko
2022-10-09 20:25 ` [PATCH v9 " Yuan Wang
2022-10-09 14:58 ` Andrew Rybchenko
2022-10-10 2:45 ` Ding, Xuan
2022-10-09 20:25 ` [PATCH v9 1/4] ethdev: introduce protocol header API Yuan Wang
2022-10-09 20:25 ` [PATCH v9 2/4] ethdev: introduce protocol hdr based buffer split Yuan Wang
2022-10-09 20:25 ` [PATCH v9 3/4] app/testpmd: add rxhdrs commands and parameters Yuan Wang
2022-10-09 20:25 ` [PATCH v9 4/4] net/ice: support buffer split in Rx path Yuan Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220920111243.1290998-1-yuanx.wang@intel.com \
--to=yuanx.wang@intel.com \
--cc=aman.deep.singh@intel.com \
--cc=andrew.rybchenko@oktetlabs.ru \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@xilinx.com \
--cc=hpothula@marvell.com \
--cc=jerinjacobk@gmail.com \
--cc=mdr@ashroe.eu \
--cc=qi.z.zhang@intel.com \
--cc=qiming.yang@intel.com \
--cc=stephen@networkplumber.org \
--cc=thomas@monjalon.net \
--cc=viacheslavo@nvidia.com \
--cc=xiaoyun.li@intel.com \
--cc=xuan.ding@intel.com \
--cc=yaqi.tang@intel.com \
--cc=yuying.zhang@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).