From patchwork Tue Apr 26 11:13:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wu, WenxuanX" X-Patchwork-Id: 110276 Return-Path: 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 CC9C1A00C4; Tue, 26 Apr 2022 13:36:25 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A068B40C35; Tue, 26 Apr 2022 13:36:25 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id CFEF040691 for ; Tue, 26 Apr 2022 13:36:22 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1650972983; x=1682508983; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=C70PyYnYyBNZFBInyCXDt21jAYnSJgj6JK+w0ggOXj0=; b=bv5Ws11rIeRUBH+LBKohpd85+aTWEQ2Rpu71TuS3g3w8T2erN0qq1rpJ F50WECb4wwq7LvSg1xdfGk3H08LkKQ3jK/e2RUK+SgKONTN92D1N7s77I eC6q+n73sqqmmBfoXM51iTutZZnnQXFO7jjyw8TfK3s1eYKwIcygxgezn 6zUGNtpWuXMQoLDii6fk+2OMZNfl8Ka0MGgzDONLdljSSzrjkB+oQAQ8s NlGJYyIwxX4sHRZObW1a+MyHm7EY/baVItKr1YXoBp1kIaU2etITGP91b falm6cYci7b+IORTxVYAn/pTl8eyF8/62R6K6AFDVqfqg/tXnCFiXViSw Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10328"; a="265714195" X-IronPort-AV: E=Sophos;i="5.90,290,1643702400"; d="scan'208";a="265714195" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2022 04:36:21 -0700 X-IronPort-AV: E=Sophos;i="5.90,290,1643702400"; d="scan'208";a="579842277" Received: from unknown (HELO localhost.localdomain) ([10.239.251.3]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2022 04:36:17 -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, mb@smartsharesystems.com, viacheslavo@nvidia.com, ping.yu@intel.com, xuan.ding@intel.com, yuanx.wang@intel.com, wenxuanx.wu@intel.com Subject: [PATCH v5 0/3] ethdev: introduce protocol based buffer split Date: Tue, 26 Apr 2022 11:13:35 +0000 Message-Id: <20220426111338.1074785-1-wenxuanx.wu@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220402104109.472078-2-wenxuanx.wu@intel.com> References: <20220402104109.472078-2-wenxuanx.wu@intel.com> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Wenxuan Wu Protocol based buffer split consists of splitting a received packet into two separate regions 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 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 two different mempools. 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 (3): ethdev: introduce protocol type based buffer split app/testpmd: add proto based buffer split config net/ice: support proto based buf split in Rx path app/test-pmd/cmdline.c | 118 ++++++++++++++ app/test-pmd/testpmd.c | 7 +- app/test-pmd/testpmd.h | 2 + drivers/net/ice/ice_ethdev.c | 10 +- drivers/net/ice/ice_rxtx.c | 217 ++++++++++++++++++++++---- drivers/net/ice/ice_rxtx.h | 16 ++ drivers/net/ice/ice_rxtx_vec_common.h | 3 + lib/ethdev/rte_ethdev.c | 36 ++++- lib/ethdev/rte_ethdev.h | 21 ++- 9 files changed, 388 insertions(+), 42 deletions(-)