[dpdk-stable] patch 'examples/vmdq: fix RSS configuration' has been queued to LTS release 18.11.9

Kevin Traynor ktraynor at redhat.com
Thu May 28 18:22:49 CEST 2020


Hi,

FYI, your patch has been queued to LTS release 18.11.9

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

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/140a1096df2a7603248e6fd3b9eace6402b79854

Thanks.

Kevin.

---
>From 140a1096df2a7603248e6fd3b9eace6402b79854 Mon Sep 17 00:00:00 2001
From: Junyu Jiang <junyux.jiang at intel.com>
Date: Wed, 25 Mar 2020 06:32:48 +0000
Subject: [PATCH] examples/vmdq: fix RSS configuration

[ upstream commit 8f5b4af736a9ffb2e2a2d3b4c2a75055a23c2a95 ]

In order that all queues of pools can receive packets,
add enable-rss argument to change RSS configuration.

Fixes: 6bb97df521aa ("examples/vmdq: new app")

Signed-off-by: Junyu Jiang <junyux.jiang at intel.com>
Acked-by: Xiaoyun Li <xiaoyun.li at intel.com>
Tested-by: Yingya Han <yingyax.han at intel.com>
---
 examples/vmdq/main.c | 39 ++++++++++++++++++++++++++++++++++-----
 1 file changed, 34 insertions(+), 5 deletions(-)

diff --git a/examples/vmdq/main.c b/examples/vmdq/main.c
index 7e0e1a8bc3..2c0e8a596c 100644
--- a/examples/vmdq/main.c
+++ b/examples/vmdq/main.c
@@ -60,4 +60,5 @@ static uint32_t enabled_port_mask;
 static uint32_t num_queues = 8;
 static uint32_t num_pools = 8;
+static uint8_t rss_enable;
 
 /* empty vmdq configuration structure. Filled in programatically */
@@ -144,4 +145,11 @@ get_eth_conf(struct rte_eth_conf *eth_conf, uint32_t num_pools)
 	(void)(rte_memcpy(&eth_conf->rx_adv_conf.vmdq_rx_conf, &conf,
 		   sizeof(eth_conf->rx_adv_conf.vmdq_rx_conf)));
+	if (rss_enable) {
+		eth_conf->rxmode.mq_mode = ETH_MQ_RX_VMDQ_RSS;
+		eth_conf->rx_adv_conf.rss_conf.rss_hf = ETH_RSS_IP |
+							ETH_RSS_UDP |
+							ETH_RSS_TCP |
+							ETH_RSS_SCTP;
+	}
 	return 0;
 }
@@ -165,4 +173,5 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
 	uint16_t queues_per_pool;
 	uint32_t max_nb_pools;
+	uint64_t rss_hf_tmp;
 
 	/*
@@ -204,4 +213,15 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
 		return -1;
 
+	rss_hf_tmp = port_conf.rx_adv_conf.rss_conf.rss_hf;
+	port_conf.rx_adv_conf.rss_conf.rss_hf &=
+		dev_info.flow_type_rss_offloads;
+	if (port_conf.rx_adv_conf.rss_conf.rss_hf != rss_hf_tmp) {
+		printf("Port %u modified RSS hash function based on hardware support,"
+			"requested:%#"PRIx64" configured:%#"PRIx64"\n",
+			port,
+			rss_hf_tmp,
+			port_conf.rx_adv_conf.rss_conf.rss_hf);
+	}
+
 	/*
 	 * Though in this example, we only receive packets from the first queue
@@ -347,5 +367,6 @@ vmdq_usage(const char *prgname)
 {
 	printf("%s [EAL options] -- -p PORTMASK]\n"
-	"  --nb-pools NP: number of pools\n",
+	"  --nb-pools NP: number of pools\n"
+	"  --enable-rss: enable RSS (disabled by default)\n",
 	       prgname);
 }
@@ -361,4 +382,5 @@ vmdq_parse_args(int argc, char **argv)
 	static struct option long_option[] = {
 		{"nb-pools", required_argument, NULL, 0},
+		{"enable-rss", 0, NULL, 0},
 		{NULL, 0, 0, 0}
 	};
@@ -378,9 +400,16 @@ vmdq_parse_args(int argc, char **argv)
 			break;
 		case 0:
-			if (vmdq_parse_num_pools(optarg) == -1) {
-				printf("invalid number of pools\n");
-				vmdq_usage(prgname);
-				return -1;
+			if (!strcmp(long_option[option_index].name,
+			    "nb-pools")) {
+				if (vmdq_parse_num_pools(optarg) == -1) {
+					printf("invalid number of pools\n");
+					vmdq_usage(prgname);
+					return -1;
+				}
 			}
+
+			if (!strcmp(long_option[option_index].name,
+			    "enable-rss"))
+				rss_enable = 1;
 			break;
 
-- 
2.21.3

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-05-28 17:13:02.314661380 +0100
+++ 0062-examples-vmdq-fix-RSS-configuration.patch	2020-05-28 17:12:59.137555586 +0100
@@ -1 +1 @@
-From 8f5b4af736a9ffb2e2a2d3b4c2a75055a23c2a95 Mon Sep 17 00:00:00 2001
+From 140a1096df2a7603248e6fd3b9eace6402b79854 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 8f5b4af736a9ffb2e2a2d3b4c2a75055a23c2a95 ]
+
@@ -10 +11,0 @@
-Cc: stable at dpdk.org
@@ -16,3 +17,2 @@
- doc/guides/sample_app_ug/vmdq_forwarding.rst |  6 +--
- examples/vmdq/main.c                         | 39 +++++++++++++++++---
- 2 files changed, 37 insertions(+), 8 deletions(-)
+ examples/vmdq/main.c | 39 ++++++++++++++++++++++++++++++++++-----
+ 1 file changed, 34 insertions(+), 5 deletions(-)
@@ -20,19 +19,0 @@
-diff --git a/doc/guides/sample_app_ug/vmdq_forwarding.rst b/doc/guides/sample_app_ug/vmdq_forwarding.rst
-index d2585687bb..c3a3439e51 100644
---- a/doc/guides/sample_app_ug/vmdq_forwarding.rst
-+++ b/doc/guides/sample_app_ug/vmdq_forwarding.rst
-@@ -27,11 +27,11 @@ While the Intel® X710 or XL710 Ethernet Controller NICs support many configurat
- And queues numbers for each VMDq pool can be changed by setting CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM
- in config/common_* file.
--The nb-pools parameter can be passed on the command line, after the EAL parameters:
-+The nb-pools and enable-rss parameters can be passed on the command line, after the EAL parameters:
- 
- .. code-block:: console
- 
--    ./build/vmdq_app [EAL options] -- -p PORTMASK --nb-pools NP
-+    ./build/vmdq_app [EAL options] -- -p PORTMASK --nb-pools NP --enable-rss
- 
--where, NP can be 8, 16 or 32.
-+where, NP can be 8, 16 or 32, rss is disabled by default.
- 
- In Linux* user space, the application can display statistics with the number of packets received on each queue.
@@ -40 +21 @@
-index a66dd533c8..d08826c868 100644
+index 7e0e1a8bc3..2c0e8a596c 100644
@@ -67 +48 @@
-@@ -210,4 +219,15 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
+@@ -204,4 +213,15 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
@@ -83 +64 @@
-@@ -364,5 +384,6 @@ vmdq_usage(const char *prgname)
+@@ -347,5 +367,6 @@ vmdq_usage(const char *prgname)
@@ -91 +72 @@
-@@ -378,4 +399,5 @@ vmdq_parse_args(int argc, char **argv)
+@@ -361,4 +382,5 @@ vmdq_parse_args(int argc, char **argv)
@@ -97 +78 @@
-@@ -395,9 +417,16 @@ vmdq_parse_args(int argc, char **argv)
+@@ -378,9 +400,16 @@ vmdq_parse_args(int argc, char **argv)



More information about the stable mailing list