patches for DPDK stable branches
 help / color / mirror / Atom feed
From: Yuanhan Liu <yliu@fridaylinux.org>
To: Ivan Malov <ivan.malov@oktetlabs.ru>
Cc: Andrew Rybchenko <arybchenko@solarflare.com>,
	dpdk stable <stable@dpdk.org>
Subject: [dpdk-stable] patch 'net/sfc: process RSS settings on Rx configure step' has been queued to LTS release 17.11.3
Date: Sun,  6 May 2018 14:36:38 +0800	[thread overview]
Message-ID: <20180506063639.23196-25-yliu@fridaylinux.org> (raw)
In-Reply-To: <20180506063639.23196-1-yliu@fridaylinux.org>

Hi,

FYI, your patch has been queued to LTS release 17.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/09/18. So please
shout if anyone has objections.

Thanks.

	--yliu

---
>From ec3882def363854ef1c2393e76cbe13a972d28ca Mon Sep 17 00:00:00 2001
From: Ivan Malov <ivan.malov@oktetlabs.ru>
Date: Wed, 25 Apr 2018 18:51:41 +0100
Subject: [PATCH] net/sfc: process RSS settings on Rx configure step

[ upstream commit 7803554a9e388538fc3ad32dedffbbe2dde055c8 ]

One may submit advanced RSS settings as part of
rte_eth_conf to customise RSS configuration from
the very beginning. Currently the driver does not
check that piece of settings and proceeds with
default choices for RSS hash functions and RSS key.

This patch implements the required processing.

Fixes: 4ec1fc3ba881 ("net/sfc: add basic stubs for RSS support on driver attach")

Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
 drivers/net/sfc/sfc_rx.c | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c
index be778d387..8fc93d682 100644
--- a/drivers/net/sfc/sfc_rx.c
+++ b/drivers/net/sfc/sfc_rx.c
@@ -1096,6 +1096,41 @@ sfc_efx_to_rte_hash_type(efx_rx_hash_type_t efx_hash_types)
 
 #if EFSYS_OPT_RX_SCALE
 static int
+sfc_rx_process_adv_conf_rss(struct sfc_adapter *sa,
+			    struct rte_eth_rss_conf *conf)
+{
+	efx_rx_hash_type_t efx_hash_types = sa->rss_hash_types;
+
+	if (sa->rss_support != EFX_RX_SCALE_EXCLUSIVE) {
+		if ((conf->rss_hf != 0 && conf->rss_hf != SFC_RSS_OFFLOADS) ||
+		    conf->rss_key != NULL)
+			return EINVAL;
+	}
+
+	if (conf->rss_hf != 0) {
+		if ((conf->rss_hf & ~SFC_RSS_OFFLOADS) != 0) {
+			sfc_err(sa, "unsupported hash functions requested");
+			return EINVAL;
+		}
+
+		efx_hash_types = sfc_rte_to_efx_hash_type(conf->rss_hf);
+	}
+
+	if (conf->rss_key != NULL) {
+		if (conf->rss_key_len != sizeof(sa->rss_key)) {
+			sfc_err(sa, "RSS key size is wrong (should be %lu)",
+				sizeof(sa->rss_key));
+			return EINVAL;
+		}
+		rte_memcpy(sa->rss_key, conf->rss_key, sizeof(sa->rss_key));
+	}
+
+	sa->rss_hash_types = efx_hash_types;
+
+	return 0;
+}
+
+static int
 sfc_rx_rss_config(struct sfc_adapter *sa)
 {
 	int rc = 0;
@@ -1347,16 +1382,23 @@ sfc_rx_configure(struct sfc_adapter *sa)
 			   MIN(sa->rxq_count, EFX_MAXRSS) : 0;
 
 	if (sa->rss_channels > 0) {
+		struct rte_eth_rss_conf *adv_conf_rss;
 		unsigned int sw_index;
 
 		for (sw_index = 0; sw_index < EFX_RSS_TBL_SIZE; ++sw_index)
 			sa->rss_tbl[sw_index] = sw_index % sa->rss_channels;
+
+		adv_conf_rss = &dev_conf->rx_adv_conf.rss_conf;
+		rc = sfc_rx_process_adv_conf_rss(sa, adv_conf_rss);
+		if (rc != 0)
+			goto fail_rx_process_adv_conf_rss;
 	}
 #endif
 
 done:
 	return 0;
 
+fail_rx_process_adv_conf_rss:
 fail_rx_qinit_info:
 fail_rxqs_realloc:
 fail_rxqs_alloc:
-- 
2.11.0

  parent reply	other threads:[~2018-05-06  6:38 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-06  6:36 [dpdk-stable] patch 'mbuf: fix Tx checksum offload API doc' " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'mbuf: improve tunnel Tx offloads " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'app/crypto-perf: fix excess crypto device error' " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'examples/l2fwd-crypto: fix the default aead assignments' " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'crypto/zuc: do not set default op status' " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'crypto/zuc: batch ops with same transform' " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'crypto/dpaa2_sec: fix HMAC supported digest sizes' " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'mk: fix make defconfig on FreeBSD' " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'mempool: fix leak when no objects are populated' " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'test: fix memory flags test for low NUMA nodes number' " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'test/mempool: fix autotest retry' " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'bus/pci: fix find device implementation' " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'net/sfc: add missing Rx fini on RSS setup fail path' " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'net/bnxt: set padding flags in Rx descriptor' " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'net/bnxt: fix endianness of flag' " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'net/bnxt: fix Rx checksum flags for tunnel frames' " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'net/bnxt: free memory allocated for VF filters' " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'net/ixgbe: enable vector PMD for icc 32 bits' " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'net/bnx2x: fix for PCI FLR after ungraceful exit' " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'net/bnxt: avoid invalid vnic id in set L2 Rx mask' " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'app/testpmd: fix command token' " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'net/nfp: fix mbufs releasing when stop or close' " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'net/tap: fix icc build' " Yuanhan Liu
2018-05-06  6:36 ` [dpdk-stable] patch 'drivers/net: fix link autoneg value for virtual PMDs' " Yuanhan Liu
2018-05-06  6:36 ` Yuanhan Liu [this message]
2018-05-06  6:36 ` [dpdk-stable] patch 'net/sfc: ignore spec bits not covered by mask' " Yuanhan Liu

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=20180506063639.23196-25-yliu@fridaylinux.org \
    --to=yliu@fridaylinux.org \
    --cc=arybchenko@solarflare.com \
    --cc=ivan.malov@oktetlabs.ru \
    --cc=stable@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).