From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from nbfkord-smmo03.seg.att.com (nbfkord-smmo03.seg.att.com [209.65.160.84]) by dpdk.org (Postfix) with ESMTP id A72802A5E for ; Thu, 2 Mar 2017 08:09:00 +0100 (CET) Received: from unknown [12.187.104.26] (EHLO webmail.solarflare.com) by nbfkord-smmo03.seg.att.com(mxl_mta-7.2.4-7) over TLS secured channel with ESMTP id b05c7b85.0.5404478.00-2323.11892283.nbfkord-smmo03.seg.att.com (envelope-from ); Thu, 02 Mar 2017 07:09:00 +0000 (UTC) X-MXL-Hash: 58b7c50c278001cf-d4cac4ac4312911f34cc9d3bec82a43ad6a1f2ca Received: from ocex03.SolarFlarecom.com (10.20.40.36) by ocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server (TLS) id 15.0.1044.25; Wed, 1 Mar 2017 23:08:57 -0800 Received: from opal.uk.solarflarecom.com (10.17.10.1) by ocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server (TLS) id 15.0.1044.25 via Frontend Transport; Wed, 1 Mar 2017 23:08:56 -0800 Received: from uklogin.uk.solarflarecom.com (uklogin.uk.solarflarecom.com [10.17.10.10]) by opal.uk.solarflarecom.com (8.13.8/8.13.8) with ESMTP id v2278tmq001864 for ; Thu, 2 Mar 2017 07:08:55 GMT Received: from uklogin.uk.solarflarecom.com (localhost.localdomain [127.0.0.1]) by uklogin.uk.solarflarecom.com (8.13.8/8.13.8) with ESMTP id v2278tCK014883 for ; Thu, 2 Mar 2017 07:08:55 GMT From: Andrew Rybchenko To: Date: Thu, 2 Mar 2017 07:07:06 +0000 Message-ID: <1488438439-14776-1-git-send-email-arybchenko@solarflare.com> X-Mailer: git-send-email 1.8.2.3 MIME-Version: 1.0 Content-Type: text/plain X-AnalysisOut: [v=2.1 cv=HuVwbhnS c=1 sm=1 tr=0 a=8BlWFWvVlq5taO8ncb8nKg==] X-AnalysisOut: [:17 a=6Iz7jQTuP9IA:10 a=pPxqNZtwk8r1TrCumYQA:9] X-Spam: [F=0.2000000000; CM=0.500; S=0.200(2015072901)] X-MAIL-FROM: X-SOURCE-IP: [12.187.104.26] Subject: [dpdk-dev] [PATCH 00/13] Improve Solarflare PMD performance 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, 02 Mar 2017 07:09:01 -0000 Implement EF10 (SFN7xxx and SFN8xxx) native datapaths which may be chosen per device using PCI whitelist device arguments. libefx-based datapath implementation is bound to API and structure imposed by the libefx. It has many indirect function calls to provide HW abstraction (bad for CPU pipeline) and uses many data structures: driver Rx/Tx queue, driver event queue, libefx Rx/Tx queue, libefx event queue, libefx NIC (bad for cache). Native datapath implementation is fully separated from control path to be able to use alternative control path if required (e.g. kernel-aware). Native datapaths show better performance than libefx-based. Andrew Rybchenko (13): net/sfc: callbacks should depend on EvQ usage net/sfc: emphasis that RSS hash flag is an Rx queue flag net/sfc: do not use Rx queue control state on datapath net/sfc: factor out libefx-based Rx datapath net/sfc: Rx scatter is a datapath-dependent feature net/sfc: implement EF10 native Rx datapath net/sfc: factory out libefx-based Tx datapath net/sfc: VLAN insertion is a datapath dependent feature net/sfc: TSO is a datapath dependent feature net/sfc: implement EF10 native Tx datapath net/sfc: multi-segment support as is Tx datapath features net/sfc: implement simple EF10 native Tx datapath net/sfc: support Rx packed stream EF10-specific datapath doc/guides/nics/sfc_efx.rst | 45 +++ drivers/net/sfc/Makefile | 4 + drivers/net/sfc/efsys.h | 2 +- drivers/net/sfc/sfc.h | 4 + drivers/net/sfc/sfc_dp.c | 89 +++++ drivers/net/sfc/sfc_dp.h | 91 +++++ drivers/net/sfc/sfc_dp_rx.h | 216 ++++++++++++ drivers/net/sfc/sfc_dp_tx.h | 177 ++++++++++ drivers/net/sfc/sfc_ef10_ps_rx.c | 659 ++++++++++++++++++++++++++++++++++++ drivers/net/sfc/sfc_ef10_rx.c | 713 +++++++++++++++++++++++++++++++++++++++ drivers/net/sfc/sfc_ef10_tx.c | 517 ++++++++++++++++++++++++++++ drivers/net/sfc/sfc_ethdev.c | 171 ++++++++-- drivers/net/sfc/sfc_ev.c | 272 +++++++++++++-- drivers/net/sfc/sfc_ev.h | 27 +- drivers/net/sfc/sfc_kvargs.c | 11 + drivers/net/sfc/sfc_kvargs.h | 19 ++ drivers/net/sfc/sfc_rx.c | 329 ++++++++++++++---- drivers/net/sfc/sfc_rx.h | 79 +++-- drivers/net/sfc/sfc_tso.c | 22 +- drivers/net/sfc/sfc_tx.c | 331 +++++++++++++----- drivers/net/sfc/sfc_tx.h | 95 ++++-- 21 files changed, 3604 insertions(+), 269 deletions(-) create mode 100644 drivers/net/sfc/sfc_dp.c create mode 100644 drivers/net/sfc/sfc_dp.h create mode 100644 drivers/net/sfc/sfc_dp_rx.h create mode 100644 drivers/net/sfc/sfc_dp_tx.h create mode 100644 drivers/net/sfc/sfc_ef10_ps_rx.c create mode 100644 drivers/net/sfc/sfc_ef10_rx.c create mode 100644 drivers/net/sfc/sfc_ef10_tx.c -- 1.8.2.3