From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id D89FA3256 for ; Thu, 5 Oct 2017 02:56:00 +0200 (CEST) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga105.jf.intel.com with ESMTP; 04 Oct 2017 17:55:59 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,479,1500966000"; d="scan'208";a="906874064" Received: from fyigit-mobl1.ger.corp.intel.com (HELO [10.241.225.26]) ([10.241.225.26]) by FMSMGA003.fm.intel.com with ESMTP; 04 Oct 2017 17:55:57 -0700 To: "Ananyev, Konstantin" , Shahaf Shuler , "thomas@monjalon.net" , "arybchenko@solarflare.com" , "jerin.jacob@caviumnetworks.com" Cc: "dev@dpdk.org" References: <2601191342CEEE43887BDE71AB9772585FAA3F12@IRSMSX103.ger.corp.intel.com> From: Ferruh Yigit Message-ID: Date: Thu, 5 Oct 2017 01:55:57 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <2601191342CEEE43887BDE71AB9772585FAA3F12@IRSMSX103.ger.corp.intel.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH v6 0/4] ethdev new offloads API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Oct 2017 00:56:01 -0000 On 10/4/2017 5:12 PM, Ananyev, Konstantin wrote: > > >> -----Original Message----- >> From: Shahaf Shuler [mailto:shahafs@mellanox.com] >> Sent: Wednesday, October 4, 2017 9:18 AM >> To: Ananyev, Konstantin ; thomas@monjalon.net; arybchenko@solarflare.com; >> jerin.jacob@caviumnetworks.com; Yigit, Ferruh >> Cc: dev@dpdk.org >> Subject: [PATCH v6 0/4] ethdev new offloads API >> >> Tx offloads configuration is per queue. Tx offloads are enabled by default, >> and can be disabled using ETH_TXQ_FLAGS_NO* flags. >> This behaviour is not consistent with the Rx side where the Rx offloads >> configuration is per port. Rx offloads are disabled by default and enabled >> according to bit field in rte_eth_rxmode structure. >> >> Moreover, considering more Tx and Rx offloads will be added >> over time, the cost of managing them all inside the PMD will be tremendous, >> as the PMD will need to check the matching for the entire offload set >> for each mbuf it handles. >> In addition, on the current approach each Rx offload added breaks the >> ABI compatibility as it requires to add entries to existing bit-fields. >> >> The series address above issues by defining a new offloads API. >> In the new API, offloads are divided into per-port and per-queue offloads, >> with a corresponding capability for each. >> The offloads are disabled by default. Each offload can be enabled or >> disabled using the existing DEV_TX_OFFLOADS_* or DEV_RX_OFFLOADS_* flags. >> Such API will enable to easily add or remove offloads, without breaking the >> ABI compatibility. >> >> In order to provide a smooth transition between the APIs the following actions >> were taken: >> * The old offloads API is kept for the meanwhile. >> * Helper function which copy from old to new API were added to ethdev, >> enabling the PMD to support only one of the APIs. >> * Helper function which copy from new to old API were also added, >> to enable application to use the new API with PMD which still supports >> the old one. >> >> Per discussion made on the RFC of this series [1], the integration plan which was >> decided is to do the transition in two phases: >> * ethdev API will move on 17.11. >> * Apps and examples will move on 18.02. >> >> This to enable PMD maintainers sufficient time to adopt the new API. >> >> [1] >> http://dpdk.org/ml/archives/dev/2017-August/072643.html >> >> on v6: >> - Move mbuf fast free Tx offload to a seperate patch. >> >> on v5: >> - Fix documentation. >> - Fix comments on port offloads configuration. >> >> on v4: >> - Added another patch for documentation. >> - Fixed ETH_TXQ_FLAGS_IGNORE flag override. >> - Clarify the description of DEV_TX_OFFLOAD_MBUF_FAST_FREE offload. >> >> on v3: >> - Introduce the DEV_TX_OFFLOAD_MBUF_FAST_FREE to act as an equivalent >> for the no refcnt and single mempool flags. >> - Fix features documentation. >> - Fix comment style. >> >> on v2: >> - Taking new approach of dividing offloads into per-queue and per-port one. >> - Postpone the Tx/Rx public struct renaming to 18.02 >> - Squash the helper functions into the Rx/Tx offloads intro patches. >> >> Shahaf Shuler (4): >> ethdev: introduce Rx queue offloads API >> ethdev: introduce Tx queue offloads API >> ethdev: add mbuf fast free Tx offload >> doc: add details on ethdev offloads API >> >> doc/guides/nics/features.rst | 66 +++++--- >> doc/guides/nics/features/default.ini | 1 + >> doc/guides/prog_guide/poll_mode_drv.rst | 20 +++ >> lib/librte_ether/rte_ethdev.c | 223 +++++++++++++++++++++++++-- >> lib/librte_ether/rte_ethdev.h | 89 ++++++++++- >> 5 files changed, 359 insertions(+), 40 deletions(-) >> >> Series-reviewed-by: Andrew Rybchenko > Acked-by: Konstantin Ananyev Series applied to dpdk-next-net/master, thanks.