[dpdk-stable] patch 'test/distributor: ensure all packets are delivered' has been queued to stable release 19.11.6

luca.boccassi at gmail.com luca.boccassi at gmail.com
Wed Oct 28 11:45:55 CET 2020


Hi,

FYI, your patch has been queued to stable release 19.11.6

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

Thanks.

Luca Boccassi

---
>From b3d6175b8ea44b5349a643e9140cc787d884a4c1 Mon Sep 17 00:00:00 2001
From: Lukasz Wojciechowski <l.wojciechow at partner.samsung.com>
Date: Sat, 17 Oct 2020 05:07:00 +0200
Subject: [PATCH] test/distributor: ensure all packets are delivered

[ upstream commit e1f1400cf6b85bbb6f4b7b088d54758e210343e7 ]

In all distributor tests there is a chance that tests
will send packets to distributor with rte_distributor_process()
before workers are started and requested for packets.

This patch ensures that all packets are delivered to workers
by calling rte_distributor_process() in loop until number
of successfully processed packets reaches required by test.
Change is applied to every first call in test case.

Signed-off-by: Lukasz Wojciechowski <l.wojciechow at partner.samsung.com>
Acked-by: David Hunt <david.hunt at intel.com>
---
 app/test/test_distributor.c | 25 +++++++++++++++++++++----
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/app/test/test_distributor.c b/app/test/test_distributor.c
index e9e8e2c7af..199f88887d 100644
--- a/app/test/test_distributor.c
+++ b/app/test/test_distributor.c
@@ -103,6 +103,7 @@ sanity_test(struct worker_params *wp, struct rte_mempool *p)
 	struct rte_mbuf *returns[BURST*2];
 	unsigned int i, count;
 	unsigned int retries;
+	unsigned int processed;
 
 	printf("=== Basic distributor sanity tests ===\n");
 	clear_packet_count();
@@ -116,7 +117,11 @@ sanity_test(struct worker_params *wp, struct rte_mempool *p)
 	for (i = 0; i < BURST; i++)
 		bufs[i]->hash.usr = 0;
 
-	rte_distributor_process(db, bufs, BURST);
+	processed = 0;
+	while (processed < BURST)
+		processed += rte_distributor_process(db, &bufs[processed],
+			BURST - processed);
+
 	count = 0;
 	do {
 
@@ -304,6 +309,7 @@ sanity_test_with_mbuf_alloc(struct worker_params *wp, struct rte_mempool *p)
 	struct rte_distributor *d = wp->dist;
 	unsigned i;
 	struct rte_mbuf *bufs[BURST];
+	unsigned int processed;
 
 	printf("=== Sanity test with mbuf alloc/free (%s) ===\n", wp->name);
 
@@ -316,7 +322,10 @@ sanity_test_with_mbuf_alloc(struct worker_params *wp, struct rte_mempool *p)
 			bufs[j]->hash.usr = (i+j) << 1;
 		}
 
-		rte_distributor_process(d, bufs, BURST);
+		processed = 0;
+		while (processed < BURST)
+			processed += rte_distributor_process(d,
+				&bufs[processed], BURST - processed);
 	}
 
 	rte_distributor_flush(d);
@@ -410,6 +419,7 @@ sanity_test_with_worker_shutdown(struct worker_params *wp,
 	struct rte_mbuf *bufs2[BURST];
 	unsigned int i;
 	unsigned int failed = 0;
+	unsigned int processed = 0;
 
 	printf("=== Sanity test of worker shutdown ===\n");
 
@@ -427,7 +437,10 @@ sanity_test_with_worker_shutdown(struct worker_params *wp,
 	for (i = 0; i < BURST; i++)
 		bufs[i]->hash.usr = 1;
 
-	rte_distributor_process(d, bufs, BURST);
+	processed = 0;
+	while (processed < BURST)
+		processed += rte_distributor_process(d, &bufs[processed],
+			BURST - processed);
 	rte_distributor_flush(d);
 
 	/* at this point, we will have processed some packets and have a full
@@ -489,6 +502,7 @@ test_flush_with_worker_shutdown(struct worker_params *wp,
 	struct rte_mbuf *bufs[BURST];
 	unsigned int i;
 	unsigned int failed = 0;
+	unsigned int processed;
 
 	printf("=== Test flush fn with worker shutdown (%s) ===\n", wp->name);
 
@@ -503,7 +517,10 @@ test_flush_with_worker_shutdown(struct worker_params *wp,
 	for (i = 0; i < BURST; i++)
 		bufs[i]->hash.usr = 0;
 
-	rte_distributor_process(d, bufs, BURST);
+	processed = 0;
+	while (processed < BURST)
+		processed += rte_distributor_process(d, &bufs[processed],
+			BURST - processed);
 	/* at this point, we will have processed some packets and have a full
 	 * backlog for the other ones at worker 0.
 	 */
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-10-28 10:35:17.769708130 +0000
+++ 0196-test-distributor-ensure-all-packets-are-delivered.patch	2020-10-28 10:35:11.804834440 +0000
@@ -1,8 +1,10 @@
-From e1f1400cf6b85bbb6f4b7b088d54758e210343e7 Mon Sep 17 00:00:00 2001
+From b3d6175b8ea44b5349a643e9140cc787d884a4c1 Mon Sep 17 00:00:00 2001
 From: Lukasz Wojciechowski <l.wojciechow at partner.samsung.com>
 Date: Sat, 17 Oct 2020 05:07:00 +0200
 Subject: [PATCH] test/distributor: ensure all packets are delivered
 
+[ upstream commit e1f1400cf6b85bbb6f4b7b088d54758e210343e7 ]
+
 In all distributor tests there is a chance that tests
 will send packets to distributor with rte_distributor_process()
 before workers are started and requested for packets.
@@ -12,16 +14,14 @@
 of successfully processed packets reaches required by test.
 Change is applied to every first call in test case.
 
-Cc: stable at dpdk.org
-
 Signed-off-by: Lukasz Wojciechowski <l.wojciechow at partner.samsung.com>
 Acked-by: David Hunt <david.hunt at intel.com>
 ---
- app/test/test_distributor.c | 32 +++++++++++++++++++++++++++-----
- 1 file changed, 27 insertions(+), 5 deletions(-)
+ app/test/test_distributor.c | 25 +++++++++++++++++++++----
+ 1 file changed, 21 insertions(+), 4 deletions(-)
 
 diff --git a/app/test/test_distributor.c b/app/test/test_distributor.c
-index cfae5a1ac9..a4af0a39c6 100644
+index e9e8e2c7af..199f88887d 100644
 --- a/app/test/test_distributor.c
 +++ b/app/test/test_distributor.c
 @@ -103,6 +103,7 @@ sanity_test(struct worker_params *wp, struct rte_mempool *p)
@@ -105,27 +105,6 @@
  	/* at this point, we will have processed some packets and have a full
  	 * backlog for the other ones at worker 0.
  	 */
-@@ -585,6 +602,7 @@ sanity_mark_test(struct worker_params *wp, struct rte_mempool *p)
- 	unsigned int i, count, id;
- 	unsigned int sorted[buf_count], seq;
- 	unsigned int failed = 0;
-+	unsigned int processed;
- 
- 	printf("=== Marked packets test ===\n");
- 	clear_packet_count();
-@@ -615,7 +633,11 @@ sanity_mark_test(struct worker_params *wp, struct rte_mempool *p)
- 
- 	count = 0;
- 	for (i = 0; i < buf_count/burst; i++) {
--		rte_distributor_process(db, &bufs[i * burst], burst);
-+		processed = 0;
-+		while (processed < burst)
-+			processed += rte_distributor_process(db,
-+				&bufs[i * burst + processed],
-+				burst - processed);
- 		count += rte_distributor_returned_pkts(db, &returns[count],
- 			buf_count - count);
- 	}
 -- 
 2.20.1
 


More information about the stable mailing list