DPDK patches and discussions
 help / color / mirror / Atom feed
From: Andrew Rybchenko <arybchenko@solarflare.com>
To: <dev@dpdk.org>
Subject: [dpdk-dev] [PATCH 15/23] net/sfc: support DPDK firmware variant
Date: Thu, 19 Apr 2018 12:36:58 +0100	[thread overview]
Message-ID: <1524137826-5675-16-git-send-email-arybchenko@solarflare.com> (raw)
In-Reply-To: <1524137826-5675-1-git-send-email-arybchenko@solarflare.com>

DPDK firmware variant supports equal stride super-buffer Rx mode which
provides higher packet rate and packet marks but requires dedicated
mempool manager with contiguous object block allocation (e.g. bucket).

Also the firmware supports subvariant without checksumming on Tx which
allows to reach higher packet rates on transmit if checksumming is not
required.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ivan Malov <ivan.malov@oktetlabs.ru>
---
 doc/guides/nics/sfc_efx.rst  | 6 +++++-
 drivers/net/sfc/sfc.c        | 4 ++++
 drivers/net/sfc/sfc_kvargs.h | 4 +++-
 3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/doc/guides/nics/sfc_efx.rst b/doc/guides/nics/sfc_efx.rst
index bbc6e61..19b1087 100644
--- a/doc/guides/nics/sfc_efx.rst
+++ b/doc/guides/nics/sfc_efx.rst
@@ -354,7 +354,7 @@ boolean parameters value.
   value will select a fixed update period of **1000** milliseconds
 
 - ``fw_variant`` [dont-care|full-feature|ultra-low-latency|
-  capture-packed-stream] (default **dont-care**)
+  capture-packed-stream|dpdk] (default **dont-care**)
 
   Choose the preferred firmware variant to use. In order for the selected
   option to have an effect, the **sfboot** utility must be configured with the
@@ -367,6 +367,10 @@ boolean parameters value.
   **ultra-low-latency** chooses firmware with fewer features but lower latency.
   **capture-packed-stream** chooses firmware for SolarCapture packed stream
   mode.
+  **dpdk** chooses DPDK firmware with equal stride super-buffer Rx mode
+  for higher Rx packet rate and packet marks support and firmware subvariant
+  without checksumming on transmit for higher Tx packet rate if
+  checksumming is not required.
 
 
 Dynamic Logging Parameters
diff --git a/drivers/net/sfc/sfc.c b/drivers/net/sfc/sfc.c
index 37248bc..5458f39 100644
--- a/drivers/net/sfc/sfc.c
+++ b/drivers/net/sfc/sfc.c
@@ -829,6 +829,8 @@ sfc_kvarg_fv_variant_handler(__rte_unused const char *key,
 		*value = EFX_FW_VARIANT_LOW_LATENCY;
 	else if (strcasecmp(value_str, SFC_KVARG_FW_VARIANT_PACKED_STREAM) == 0)
 		*value = EFX_FW_VARIANT_PACKED_STREAM;
+	else if (strcasecmp(value_str, SFC_KVARG_FW_VARIANT_DPDK) == 0)
+		*value = EFX_FW_VARIANT_DPDK;
 	else
 		return -EINVAL;
 
@@ -886,6 +888,8 @@ sfc_fw_variant2str(efx_fw_variant_t efv)
 		return SFC_KVARG_FW_VARIANT_LOW_LATENCY;
 	case EFX_RXDP_PACKED_STREAM_FW_ID:
 		return SFC_KVARG_FW_VARIANT_PACKED_STREAM;
+	case EFX_RXDP_DPDK_FW_ID:
+		return SFC_KVARG_FW_VARIANT_DPDK;
 	default:
 		return "unknown";
 	}
diff --git a/drivers/net/sfc/sfc_kvargs.h b/drivers/net/sfc/sfc_kvargs.h
index 057002e..9f21cfd 100644
--- a/drivers/net/sfc/sfc_kvargs.h
+++ b/drivers/net/sfc/sfc_kvargs.h
@@ -53,11 +53,13 @@ extern "C" {
 #define SFC_KVARG_FW_VARIANT_FULL_FEATURED	"full-feature"
 #define SFC_KVARG_FW_VARIANT_LOW_LATENCY	"ultra-low-latency"
 #define SFC_KVARG_FW_VARIANT_PACKED_STREAM	"capture-packed-stream"
+#define SFC_KVARG_FW_VARIANT_DPDK		"dpdk"
 #define SFC_KVARG_VALUES_FW_VARIANT \
 	"[" SFC_KVARG_FW_VARIANT_DONT_CARE "|" \
 	    SFC_KVARG_FW_VARIANT_FULL_FEATURED "|" \
 	    SFC_KVARG_FW_VARIANT_LOW_LATENCY "|" \
-	    SFC_KVARG_FW_VARIANT_PACKED_STREAM "]"
+	    SFC_KVARG_FW_VARIANT_PACKED_STREAM "|" \
+	    SFC_KVARG_FW_VARIANT_DPDK "]"
 
 struct sfc_adapter;
 
-- 
2.7.4

  parent reply	other threads:[~2018-04-19 11:37 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-19 11:36 [dpdk-dev] [PATCH 00/23] net/sfc: support equal stride super-buffer Rx mode Andrew Rybchenko
2018-04-19 11:36 ` [dpdk-dev] [PATCH 01/23] net/sfc/base: update autogenerated MCDI and TLV headers Andrew Rybchenko
2018-04-19 11:36 ` [dpdk-dev] [PATCH 02/23] net/sfc/base: make RxQ type data an union Andrew Rybchenko
2018-04-19 11:36 ` [dpdk-dev] [PATCH 03/23] net/sfc/base: detect equal stride super-buffer support Andrew Rybchenko
2018-04-19 11:36 ` [dpdk-dev] [PATCH 04/23] net/sfc/base: support equal stride super-buffer Rx mode Andrew Rybchenko
2018-04-19 11:36 ` [dpdk-dev] [PATCH 05/23] net/sfc/base: add equal stride super-buffer prefix layout Andrew Rybchenko
2018-04-19 11:36 ` [dpdk-dev] [PATCH 06/23] net/sfc: factor out function to push Rx doorbell Andrew Rybchenko
2018-04-19 11:36 ` [dpdk-dev] [PATCH 07/23] net/sfc: prepare EF10 Rx event parser to be reused Andrew Rybchenko
2018-04-19 11:36 ` [dpdk-dev] [PATCH 08/23] net/sfc: move EF10 Rx event parser to shared header Andrew Rybchenko
2018-04-19 11:36 ` [dpdk-dev] [PATCH 09/23] net/sfc: conditionally compile support for tunnel packets Andrew Rybchenko
2018-04-19 11:36 ` [dpdk-dev] [PATCH 10/23] net/sfc: allow one Rx queue entry carry many packet buffers Andrew Rybchenko
2018-04-19 11:36 ` [dpdk-dev] [PATCH 11/23] net/sfc: allow to take mbuf pool into account when sizing Andrew Rybchenko
2018-04-19 11:36 ` [dpdk-dev] [PATCH 12/23] net/sfc: support equal stride super-buffer Rx mode Andrew Rybchenko
2018-04-19 11:36 ` [dpdk-dev] [PATCH 13/23] net/sfc: support callback to check if mempool is supported Andrew Rybchenko
2018-04-19 11:36 ` [dpdk-dev] [PATCH 14/23] net/sfc: check mempool when equal stride super-buffer used Andrew Rybchenko
2018-04-19 11:36 ` Andrew Rybchenko [this message]
2018-04-19 11:36 ` [dpdk-dev] [PATCH 16/23] net/sfc: add Rx descriptor wait timeout Andrew Rybchenko
2018-04-19 11:37 ` [dpdk-dev] [PATCH 17/23] net/sfc: support flow marks in equal stride super-buffer Rx Andrew Rybchenko
2018-04-19 11:37 ` [dpdk-dev] [PATCH 18/23] net/sfc/base: get actions MARK and FLAG support Andrew Rybchenko
2018-04-19 11:37 ` [dpdk-dev] [PATCH 19/23] net/sfc/base: support MARK and FLAG actions in filters Andrew Rybchenko
2018-04-19 11:37 ` [dpdk-dev] [PATCH 20/23] net/sfc/base: get max supported value for action MARK Andrew Rybchenko
2018-04-19 11:37 ` [dpdk-dev] [PATCH 21/23] net/sfc: make processing of flow rule actions more uniform Andrew Rybchenko
2018-04-19 11:37 ` [dpdk-dev] [PATCH 22/23] net/sfc: support MARK and FLAG actions in flow API Andrew Rybchenko
2018-04-19 11:37 ` [dpdk-dev] [PATCH 23/23] doc: advertise equal stride super-buffer Rx mode support in net/sfc Andrew Rybchenko
2018-04-26 22:47 ` [dpdk-dev] [PATCH 00/23] net/sfc: support equal stride super-buffer Rx mode Ferruh Yigit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1524137826-5675-16-git-send-email-arybchenko@solarflare.com \
    --to=arybchenko@solarflare.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).