From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 891C31B6A0 for ; Wed, 4 Oct 2017 18:13:43 +0200 (CEST) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Oct 2017 09:13:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,477,1500966000"; d="scan'208";a="135142023" Received: from irsmsx154.ger.corp.intel.com ([163.33.192.96]) by orsmga004.jf.intel.com with ESMTP; 04 Oct 2017 09:13:40 -0700 Received: from irsmsx103.ger.corp.intel.com ([169.254.3.49]) by IRSMSX154.ger.corp.intel.com ([169.254.12.83]) with mapi id 14.03.0319.002; Wed, 4 Oct 2017 17:12:58 +0100 From: "Ananyev, Konstantin" To: Shahaf Shuler , "thomas@monjalon.net" , "arybchenko@solarflare.com" , "jerin.jacob@caviumnetworks.com" , "Yigit, Ferruh" CC: "dev@dpdk.org" Thread-Topic: [PATCH v6 0/4] ethdev new offloads API Thread-Index: AQHTPOldMOJZc3KSdUeszwKIEyvDyqLT3ULQ Date: Wed, 4 Oct 2017 16:12:57 +0000 Message-ID: <2601191342CEEE43887BDE71AB9772585FAA3F12@IRSMSX103.ger.corp.intel.com> References: In-Reply-To: Accept-Language: en-IE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNGRjMTc0OTAtMjY2Ny00MDRlLWE2NzktZTg5ZmU0YWI4NDdjIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6IlhjSDl0THN3QUtiM2Z1WU8wbWJ4bE1JVGcxY3hEV041YUFEYW5TWEFNeEE9In0= x-ctpclassification: CTP_IC dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [163.33.239.182] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 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: Wed, 04 Oct 2017 16:13:44 -0000 > -----Original Message----- > From: Shahaf Shuler [mailto:shahafs@mellanox.com] > Sent: Wednesday, October 4, 2017 9:18 AM > To: Ananyev, Konstantin ; thomas@monjalon.n= et; arybchenko@solarflare.com; > jerin.jacob@caviumnetworks.com; Yigit, Ferruh > Cc: dev@dpdk.org > Subject: [PATCH v6 0/4] ethdev new offloads API >=20 > Tx offloads configuration is per queue. Tx offloads are enabled by defaul= t, > 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 enable= d > according to bit field in rte_eth_rxmode structure. >=20 > Moreover, considering more Tx and Rx offloads will be added > over time, the cost of managing them all inside the PMD will be tremendou= s, > 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. >=20 > 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 t= he > ABI compatibility. >=20 > In order to provide a smooth transition between the APIs the following ac= tions > 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. >=20 > Per discussion made on the RFC of this series [1], the integration plan w= hich 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. >=20 > This to enable PMD maintainers sufficient time to adopt the new API. >=20 > [1] > http://dpdk.org/ml/archives/dev/2017-August/072643.html >=20 > on v6: > - Move mbuf fast free Tx offload to a seperate patch. >=20 > on v5: > - Fix documentation. > - Fix comments on port offloads configuration. >=20 > 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. >=20 > 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. >=20 > on v2: > - Taking new approach of dividing offloads into per-queue and per-port o= ne. > - Postpone the Tx/Rx public struct renaming to 18.02 > - Squash the helper functions into the Rx/Tx offloads intro patches. >=20 > 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 >=20 > 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(-) >=20 > Series-reviewed-by: Andrew Rybchenko >=20 > -- Acked-by: Konstantin Ananyev > 2.12.0