patch 'efd: allow more CPU sockets in table creation' has been queued to stable release 19.11.11

christian.ehrhardt at canonical.com christian.ehrhardt at canonical.com
Tue Nov 30 17:34:08 CET 2021


Hi,

FYI, your patch has been queued to stable release 19.11.11

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before December 10th 2021. 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/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/6cf6872c059b56665f44563e30e43eed8f1031f0

Thanks.

Christian Ehrhardt <christian.ehrhardt at canonical.com>

---
>From 6cf6872c059b56665f44563e30e43eed8f1031f0 Mon Sep 17 00:00:00 2001
From: Pablo de Lara <pablo.de.lara.guarch at intel.com>
Date: Tue, 28 Sep 2021 13:58:39 +0000
Subject: [PATCH] efd: allow more CPU sockets in table creation

[ upstream commit 8751a7e9832b2908d28aae4f1bac9babe4f9ded1 ]

rte_efd_create() function was using uint8_t for a socket bitmask,
for one of its parameters.
This limits the maximum of NUMA sockets to be 8.
Changing to uint64_t increases it to 64, which should be
more future-proof.

Coverity issue: 366390
Fixes: 56b6ef874f8 ("efd: new Elastic Flow Distributor library")

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch at intel.com>
Acked-by: John McNamara <john.mcnamara at intel.com>
Acked-by: Yipeng Wang <yipeng1.wang at intel.com>
Tested-by: David Christensen <drc at linux.vnet.ibm.com>
---
 app/test/test_efd.c      | 5 +++--
 app/test/test_efd_perf.c | 4 ++--
 lib/librte_efd/rte_efd.c | 2 +-
 lib/librte_efd/rte_efd.h | 2 +-
 4 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/app/test/test_efd.c b/app/test/test_efd.c
index a779a71f2d..1f443c7d92 100644
--- a/app/test/test_efd.c
+++ b/app/test/test_efd.c
@@ -96,9 +96,9 @@ static struct flow_key keys[5] = {
 /* Array to store the data */
 static efd_value_t data[5];
 
-static inline uint8_t efd_get_all_sockets_bitmask(void)
+static inline uint64_t efd_get_all_sockets_bitmask(void)
 {
-	uint8_t all_cpu_sockets_bitmask = 0;
+	uint64_t all_cpu_sockets_bitmask = 0;
 	unsigned int i;
 	unsigned int next_lcore = rte_get_master_lcore();
 	const int val_true = 1, val_false = 0;
@@ -448,6 +448,7 @@ static int test_efd_creation_with_bad_parameters(void)
 static int
 test_efd(void)
 {
+	test_socket_id = rte_socket_id();
 
 	/* Unit tests */
 	if (test_add_delete() < 0)
diff --git a/app/test/test_efd_perf.c b/app/test/test_efd_perf.c
index d47622d5ca..c7d6e1e426 100644
--- a/app/test/test_efd_perf.c
+++ b/app/test/test_efd_perf.c
@@ -29,9 +29,9 @@
 #endif
 static unsigned int test_socket_id;
 
-static inline uint8_t efd_get_all_sockets_bitmask(void)
+static inline uint64_t efd_get_all_sockets_bitmask(void)
 {
-	uint8_t all_cpu_sockets_bitmask = 0;
+	uint64_t all_cpu_sockets_bitmask = 0;
 	unsigned int i;
 	unsigned int next_lcore = rte_get_master_lcore();
 	const int val_true = 1, val_false = 0;
diff --git a/lib/librte_efd/rte_efd.c b/lib/librte_efd/rte_efd.c
index 3fd1f1c97b..7b72e8572f 100644
--- a/lib/librte_efd/rte_efd.c
+++ b/lib/librte_efd/rte_efd.c
@@ -494,7 +494,7 @@ efd_search_hash(struct rte_efd_table * const table,
 
 struct rte_efd_table *
 rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
-		uint8_t online_cpu_socket_bitmask, uint8_t offline_cpu_socket)
+		uint64_t online_cpu_socket_bitmask, uint8_t offline_cpu_socket)
 {
 	struct rte_efd_table *table = NULL;
 	uint8_t *key_array = NULL;
diff --git a/lib/librte_efd/rte_efd.h b/lib/librte_efd/rte_efd.h
index c2be4c09ae..d3d7befd0c 100644
--- a/lib/librte_efd/rte_efd.h
+++ b/lib/librte_efd/rte_efd.h
@@ -139,7 +139,7 @@ typedef uint16_t efd_hashfunc_t;
  */
 struct rte_efd_table *
 rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
-	uint8_t online_cpu_socket_bitmask, uint8_t offline_cpu_socket);
+	uint64_t online_cpu_socket_bitmask, uint8_t offline_cpu_socket);
 
 /**
  * Releases the resources from an EFD table
-- 
2.34.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-11-30 16:50:08.628977870 +0100
+++ 0044-efd-allow-more-CPU-sockets-in-table-creation.patch	2021-11-30 16:50:05.658872561 +0100
@@ -1 +1 @@
-From 8751a7e9832b2908d28aae4f1bac9babe4f9ded1 Mon Sep 17 00:00:00 2001
+From 6cf6872c059b56665f44563e30e43eed8f1031f0 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 8751a7e9832b2908d28aae4f1bac9babe4f9ded1 ]
+
@@ -22,2 +24,2 @@
- lib/efd/rte_efd.c        | 2 +-
- lib/efd/rte_efd.h        | 2 +-
+ lib/librte_efd/rte_efd.c | 2 +-
+ lib/librte_efd/rte_efd.h | 2 +-
@@ -27 +29 @@
-index 180dc4748e..1b249e0447 100644
+index a779a71f2d..1f443c7d92 100644
@@ -30 +32 @@
-@@ -91,9 +91,9 @@ static struct flow_key keys[5] = {
+@@ -96,9 +96,9 @@ static struct flow_key keys[5] = {
@@ -40 +42 @@
- 	unsigned int next_lcore = rte_get_main_lcore();
+ 	unsigned int next_lcore = rte_get_master_lcore();
@@ -42 +44 @@
-@@ -443,6 +443,7 @@ static int test_efd_creation_with_bad_parameters(void)
+@@ -448,6 +448,7 @@ static int test_efd_creation_with_bad_parameters(void)
@@ -51 +53 @@
-index 1c47704475..f3fe3b1736 100644
+index d47622d5ca..c7d6e1e426 100644
@@ -64 +66 @@
- 	unsigned int next_lcore = rte_get_main_lcore();
+ 	unsigned int next_lcore = rte_get_master_lcore();
@@ -66,5 +68,5 @@
-diff --git a/lib/efd/rte_efd.c b/lib/efd/rte_efd.c
-index 5bf517fee9..86ef46863c 100644
---- a/lib/efd/rte_efd.c
-+++ b/lib/efd/rte_efd.c
-@@ -495,7 +495,7 @@ efd_search_hash(struct rte_efd_table * const table,
+diff --git a/lib/librte_efd/rte_efd.c b/lib/librte_efd/rte_efd.c
+index 3fd1f1c97b..7b72e8572f 100644
+--- a/lib/librte_efd/rte_efd.c
++++ b/lib/librte_efd/rte_efd.c
+@@ -494,7 +494,7 @@ efd_search_hash(struct rte_efd_table * const table,
@@ -79 +81 @@
-diff --git a/lib/efd/rte_efd.h b/lib/efd/rte_efd.h
+diff --git a/lib/librte_efd/rte_efd.h b/lib/librte_efd/rte_efd.h
@@ -81,2 +83,2 @@
---- a/lib/efd/rte_efd.h
-+++ b/lib/efd/rte_efd.h
+--- a/lib/librte_efd/rte_efd.h
++++ b/lib/librte_efd/rte_efd.h


More information about the stable mailing list