Message ID | 20220613102550.241759-1-wenxuanx.wu@intel.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id DE2D7A0543; Mon, 13 Jun 2022 12:49:01 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8D34F40150; Mon, 13 Jun 2022 12:49:01 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id 04B3F400EF for <dev@dpdk.org>; Mon, 13 Jun 2022 12:48:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1655117340; x=1686653340; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=am7z/0b5uju2/eInqoxT9nRNXwtRYVksvc2De3gh0dw=; b=J2oKL7UDlZW/BbRlBNiW4+n4De5vs/pd+uDwd1PmFV23zq1C1WlJR7za URLQ2KLKSBavIcjc/do9A347JHtEw6zlGmTmFJDGpPS2AvuuH2Z/S7OG7 b7u1+/4S4toqsiInRnvFRY3cwwRJc7oODw5HWyAgUm3bv8TGr7Il5cqOC X2jIfpUKFFTbpLtdZf6LKmO/z0LUUx6HDpPsLb/zOVXjBWyZue2uOIMWn UMOkNQTReViRCwZMQRV3gT6uL8N/yKGZ5rziQohoDLJ0tTbq28xpBJ4Cd q0/OgJO6ejGjVCubIlMKszy9s1d38Orjt1K6Jei5FHw1Sl0d8aYl9V/S7 w==; X-IronPort-AV: E=McAfee;i="6400,9594,10376"; a="258076124" X-IronPort-AV: E=Sophos;i="5.91,297,1647327600"; d="scan'208";a="258076124" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jun 2022 03:48:58 -0700 X-IronPort-AV: E=Sophos;i="5.91,297,1647327600"; d="scan'208";a="617442796" Received: from unknown (HELO localhost.localdomain) ([10.239.251.3]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jun 2022 03:48:55 -0700 From: wenxuanx.wu@intel.com To: thomas@monjalon.net, andrew.rybchenko@oktetlabs.ru, xiaoyun.li@intel.com, ferruh.yigit@xilinx.com, aman.deep.singh@intel.com, dev@dpdk.org, yuying.zhang@intel.com, qi.z.zhang@intel.com, jerinjacobk@gmail.com Cc: stephen@networkplumber.org, Wenxuan Wu <wenxuanx.wu@intel.com> Subject: [PATCH v9 0/4] add an api to support proto based buffer split Date: Mon, 13 Jun 2022 10:25:46 +0000 Message-Id: <20220613102550.241759-1-wenxuanx.wu@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220303060136.36427-1-xuan.ding@intel.com> References: <20220303060136.36427-1-xuan.ding@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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 |
Series |
add an api to support proto based buffer split
|
|
Message
Wu, WenxuanX
June 13, 2022, 10:25 a.m. UTC
From: Wenxuan Wu <wenxuanx.wu@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.
v8->v9:
* Introduce a new api rte_eth_supported_hdrs_get to retrieve supported
ptypes mask of a pmd to split.
* Fix header protocol split check.
* Support header protocol configuration of rxhdrs by default, e.g.
ipv4, ipv6, mac, inner_mac, outer_mac, l3, l4.
* Refine doc.
v7->v8:
* Refine ethdev doc.
* Fix header protocol split check.
v6->v7:
* Fix supported header protocol check.
* Add rxhdrs commands and parameters.
v5->v6:
* The header split deprecation notice is sent.
* Refine the documents, protocol header based buffer split can actually
support multi-segment split.
* Add buffer split protocol header capability.
* Fix some format issues.
v4->v5:
* Use protocol and mbuf_offset based buffer split instead of header split.
* Use RTE_PTYPE* instead of enum rte_eth_rx_header_split_protocol_type.
* Improve the description of rte_eth_rxseg_split.proto.
v3->v4:
* Use RTE_ETH_RX_HEADER_SPLIT_NONE instead of 0.
v2->v3:
* Fix a PMD bug.
* Add rx queue header split check.
* Revise the log and doc.
v1->v2:
* Add support for all header split protocol types.
Wenxuan Wu (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 | 133 ++++++++++++++-
app/test-pmd/config.c | 75 +++++++++
app/test-pmd/parameters.c | 15 +-
app/test-pmd/testpmd.c | 6 +-
app/test-pmd/testpmd.h | 6 +
doc/guides/rel_notes/release_22_07.rst | 2 +
drivers/net/ice/ice_ethdev.c | 38 ++++-
drivers/net/ice/ice_rxtx.c | 220 +++++++++++++++++++++----
drivers/net/ice/ice_rxtx.h | 16 ++
drivers/net/ice/ice_rxtx_vec_common.h | 3 +
lib/ethdev/ethdev_driver.h | 18 ++
lib/ethdev/rte_ethdev.c | 61 +++++--
lib/ethdev/rte_ethdev.h | 36 +++-
lib/ethdev/version.map | 3 +
14 files changed, 582 insertions(+), 50 deletions(-)
Comments
Hi Andrew, > -----Original Message----- > From: wenxuanx.wu@intel.com <wenxuanx.wu@intel.com> > Sent: Monday, June 13, 2022 6:26 PM > To: thomas@monjalon.net; andrew.rybchenko@oktetlabs.ru; Li, Xiaoyun > <xiaoyun.li@intel.com>; ferruh.yigit@xilinx.com; Singh, Aman Deep > <aman.deep.singh@intel.com>; dev@dpdk.org; Zhang, Yuying > <yuying.zhang@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>; > jerinjacobk@gmail.com > Cc: stephen@networkplumber.org; Wu, WenxuanX > <wenxuanx.wu@intel.com> > Subject: [PATCH v9 0/4] add an api to support proto based buffer split > > From: Wenxuan Wu <wenxuanx.wu@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. This protocol based buffer split patch series have been updated to v9. Sincerely thank you for the effort you put into this series. Hope to know your considerations about this series now. Do you think is it possible to get in 22.07? Or there are still some critical gaps need to be solved? Because we don't hope the same thing happens in 22.11. Thanks very much. Regards, Xuan > > v8->v9: > * Introduce a new api rte_eth_supported_hdrs_get to retrieve supported > ptypes mask of a pmd to split. > * Fix header protocol split check. > * Support header protocol configuration of rxhdrs by default, e.g. > ipv4, ipv6, mac, inner_mac, outer_mac, l3, l4. > * Refine doc. > > v7->v8: > * Refine ethdev doc. > * Fix header protocol split check. > > v6->v7: > * Fix supported header protocol check. > * Add rxhdrs commands and parameters. > > v5->v6: > * The header split deprecation notice is sent. > * Refine the documents, protocol header based buffer split can actually > support multi-segment split. > * Add buffer split protocol header capability. > * Fix some format issues. > > v4->v5: > * Use protocol and mbuf_offset based buffer split instead of header split. > * Use RTE_PTYPE* instead of enum rte_eth_rx_header_split_protocol_type. > * Improve the description of rte_eth_rxseg_split.proto. > > v3->v4: > * Use RTE_ETH_RX_HEADER_SPLIT_NONE instead of 0. > > v2->v3: > * Fix a PMD bug. > * Add rx queue header split check. > * Revise the log and doc. > > v1->v2: > * Add support for all header split protocol types. > > Wenxuan Wu (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 | 133 ++++++++++++++- > app/test-pmd/config.c | 75 +++++++++ > app/test-pmd/parameters.c | 15 +- > app/test-pmd/testpmd.c | 6 +- > app/test-pmd/testpmd.h | 6 + > doc/guides/rel_notes/release_22_07.rst | 2 + > drivers/net/ice/ice_ethdev.c | 38 ++++- > drivers/net/ice/ice_rxtx.c | 220 +++++++++++++++++++++---- > drivers/net/ice/ice_rxtx.h | 16 ++ > drivers/net/ice/ice_rxtx_vec_common.h | 3 + > lib/ethdev/ethdev_driver.h | 18 ++ > lib/ethdev/rte_ethdev.c | 61 +++++-- > lib/ethdev/rte_ethdev.h | 36 +++- > lib/ethdev/version.map | 3 + > 14 files changed, 582 insertions(+), 50 deletions(-) > > -- > 2.25.1
21/06/2022 10:56, Ding, Xuan: > This protocol based buffer split patch series have been updated to v9. > Sincerely thank you for the effort you put into this series. > > Hope to know your considerations about this series now. > Do you think is it possible to get in 22.07? Or there are still some critical gaps need to be solved? > Because we don't hope the same thing happens in 22.11. My quick comment, I think you must better care about all details. Precise explanations are very important. It is more encouraging to review when we see the author tried hard to avoid any confusion or approximation.
Hi, > -----Original Message----- > From: Thomas Monjalon <thomas@monjalon.net> > Sent: Thursday, July 7, 2022 5:10 PM > To: Wu, WenxuanX <wenxuanx.wu@intel.com>; Ding, Xuan > <xuan.ding@intel.com> > Cc: andrew.rybchenko@oktetlabs.ru; dev@dpdk.org; Li, Xiaoyun > <xiaoyun.li@intel.com>; ferruh.yigit@xilinx.com; dev@dpdk.org; Zhang, > Yuying <yuying.zhang@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>; > jerinjacobk@gmail.com; stephen@networkplumber.org; Zhang, Qi Z > <qi.z.zhang@intel.com>; Richardson, Bruce <bruce.richardson@intel.com>; > Mcnamara, John <john.mcnamara@intel.com> > Subject: Re: [PATCH v9 0/4] add an api to support proto based buffer split > > 21/06/2022 10:56, Ding, Xuan: > > This protocol based buffer split patch series have been updated to v9. > > Sincerely thank you for the effort you put into this series. > > > > Hope to know your considerations about this series now. > > Do you think is it possible to get in 22.07? Or there are still some critical > gaps need to be solved? > > Because we don't hope the same thing happens in 22.11. > > My quick comment, I think you must better care about all details. > Precise explanations are very important. > It is more encouraging to review when we see the author tried hard to avoid > any confusion or approximation. Thanks a lot to all the reviewers for the effort on this series. So far, although we tried to make the explanation or documentation detailed, there must have some places that are not clearly explained or the doc is not good enough. We will do more self-checks and try to refine where it might not be clear. Your comments are welcome. Regards, Xuan > >