From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Rybchenko Subject: [PATCH 00/23] net/sfc: support equal stride super-buffer Rx mode Date: Thu, 19 Apr 2018 12:36:43 +0100 Message-ID: <1524137826-5675-1-git-send-email-arybchenko@solarflare.com> Mime-Version: 1.0 Content-Type: text/plain To: Return-path: Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [67.231.154.164]) by dpdk.org (Postfix) with ESMTP id 188D26CC4 for ; Thu, 19 Apr 2018 13:37:16 +0200 (CEST) Received: from webmail.solarflare.com (webmail.solarflare.com [12.187.104.26]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1-us4.ppe-hosted.com (Proofpoint Essentials ESMTP Server) with ESMTPS id DEA77B40068 for ; Thu, 19 Apr 2018 11:37:14 +0000 (UTC) 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 w3JBb97F000647 for ; Thu, 19 Apr 2018 12:37:09 +0100 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 w3JBb9mv005732 for ; Thu, 19 Apr 2018 12:37:09 +0100 List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Add support for dedicated DPDK firmware variant which has equal stride super-buffer Rx mode. The Rx mode uses bucket mempool manager which supports allocation of contiguos block of mbufs. It allows to achieve higher packet rate on Rx than traditional single packet Rx mode. Also the Rx mode supports rte_flow MARK and FLAG actions. It should be applied on top of [1], [2], [3], [4], [5]. [1] https://dpdk.org/ml/archives/dev/2018-April/098035.html [2] https://dpdk.org/ml/archives/dev/2018-April/098047.html [3] https://dpdk.org/ml/archives/dev/2018-April/095872.html [4] https://dpdk.org/ml/archives/dev/2018-April/097354.html [5] https://dpdk.org/ml/archives/dev/2018-April/097365.html There are a number of known checkpatches.sh warnings in base driver due to coding style difference and in the PMD itself due to postive errno used inside the driver. Andrew Rybchenko (18): net/sfc/base: update autogenerated MCDI and TLV headers net/sfc/base: make RxQ type data an union net/sfc/base: detect equal stride super-buffer support net/sfc/base: support equal stride super-buffer Rx mode net/sfc/base: add equal stride super-buffer prefix layout net/sfc: factor out function to push Rx doorbell net/sfc: prepare EF10 Rx event parser to be reused net/sfc: move EF10 Rx event parser to shared header net/sfc: conditionally compile support for tunnel packets net/sfc: allow one Rx queue entry carry many packet buffers net/sfc: allow to take mbuf pool into account when sizing net/sfc: support equal stride super-buffer Rx mode net/sfc: support callback to check if mempool is supported net/sfc: check mempool when equal stride super-buffer used net/sfc: support DPDK firmware variant net/sfc: add Rx descriptor wait timeout net/sfc: support flow marks in equal stride super-buffer Rx doc: advertise equal stride super-buffer Rx mode support in net/sfc Roman Zhukov (5): net/sfc/base: get actions MARK and FLAG support net/sfc/base: support MARK and FLAG actions in filters net/sfc/base: get max supported value for action MARK net/sfc: make processing of flow rule actions more uniform net/sfc: support MARK and FLAG actions in flow API doc/guides/nics/sfc_efx.rst | 42 ++- doc/guides/rel_notes/release_18_05.rst | 2 + drivers/net/sfc/Makefile | 1 + drivers/net/sfc/base/ef10_ev.c | 30 +- drivers/net/sfc/base/ef10_filter.c | 31 +- drivers/net/sfc/base/ef10_impl.h | 14 +- drivers/net/sfc/base/ef10_nic.c | 27 +- drivers/net/sfc/base/ef10_rx.c | 84 ++++- drivers/net/sfc/base/ef10_tlv_layout.h | 22 ++ drivers/net/sfc/base/efx.h | 44 ++- drivers/net/sfc/base/efx_check.h | 7 + drivers/net/sfc/base/efx_filter.c | 21 ++ drivers/net/sfc/base/efx_impl.h | 25 +- drivers/net/sfc/base/efx_regs_ef10.h | 15 + drivers/net/sfc/base/efx_regs_mcdi.h | 646 +++++++++++++++++++++++++++++++- drivers/net/sfc/base/efx_rx.c | 70 +++- drivers/net/sfc/base/siena_nic.c | 5 + drivers/net/sfc/efsys.h | 2 + drivers/net/sfc/meson.build | 1 + drivers/net/sfc/sfc.c | 35 ++ drivers/net/sfc/sfc.h | 2 + drivers/net/sfc/sfc_dp.h | 3 +- drivers/net/sfc/sfc_dp_rx.h | 27 +- drivers/net/sfc/sfc_ef10.h | 34 ++ drivers/net/sfc/sfc_ef10_essb_rx.c | 666 +++++++++++++++++++++++++++++++++ drivers/net/sfc/sfc_ef10_rx.c | 185 +-------- drivers/net/sfc/sfc_ef10_rx_ev.h | 169 +++++++++ drivers/net/sfc/sfc_ethdev.c | 23 ++ drivers/net/sfc/sfc_ev.c | 34 ++ drivers/net/sfc/sfc_flow.c | 119 +++++- drivers/net/sfc/sfc_kvargs.c | 1 + drivers/net/sfc/sfc_kvargs.h | 10 +- drivers/net/sfc/sfc_rx.c | 51 ++- drivers/net/sfc/sfc_rx.h | 1 + drivers/net/sfc/sfc_tweak.h | 8 + 35 files changed, 2204 insertions(+), 253 deletions(-) create mode 100644 drivers/net/sfc/sfc_ef10_essb_rx.c create mode 100644 drivers/net/sfc/sfc_ef10_rx_ev.h -- 2.7.4