[v8,17/17] test/distributor: fix quitting workers
diff mbox series

Message ID 20201017030701.16134-18-l.wojciechow@partner.samsung.com
State Accepted
Delegated to: David Marchand
Headers show
Series
  • fix distributor synchronization issues
Related show

Checks

Context Check Description
ci/Intel-compilation success Compilation OK
ci/iol-mellanox-Performance success Performance Testing PASS
ci/travis-robot success Travis build: passed
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-testing success Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/checkpatch success coding style OK

Commit Message

Lukasz Wojciechowski Oct. 17, 2020, 3:07 a.m. UTC
Sending number of packets equal to number of workers isn't enough
to stop all workers in burst version of distributor as more than
one packet can be matched and consumed by a single worker. This way
some of workers might not be awaken from rte_distributor_get_pkt().

This patch fixes it by sending packets one by one. Each sent packet
causes exactly one worker to quit.

Fixes: 775003ad2f96 ("distributor: add new burst-capable library")
Cc: david.hunt@intel.com
Cc: stable@dpdk.org

Signed-off-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
---
 app/test/test_distributor.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Honnappa Nagarahalli Oct. 17, 2020, 9:15 p.m. UTC | #1
<snip>

> 
> Sending number of packets equal to number of workers isn't enough to stop
> all workers in burst version of distributor as more than one packet can be
> matched and consumed by a single worker. This way some of workers might
> not be awaken from rte_distributor_get_pkt().
> 
> This patch fixes it by sending packets one by one. Each sent packet causes
> exactly one worker to quit.
> 
> Fixes: 775003ad2f96 ("distributor: add new burst-capable library")
> Cc: david.hunt@intel.com
> Cc: stable@dpdk.org
> 
> Signed-off-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
Looks good.
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>

> ---
>  app/test/test_distributor.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/app/test/test_distributor.c b/app/test/test_distributor.c index
> a4af0a39c..e0cb698e1 100644
> --- a/app/test/test_distributor.c
> +++ b/app/test/test_distributor.c
> @@ -769,9 +769,10 @@ quit_workers(struct worker_params *wp, struct
> rte_mempool *p)
> 
>  	zero_quit = 0;
>  	quit = 1;
> -	for (i = 0; i < num_workers; i++)
> +	for (i = 0; i < num_workers; i++) {
>  		bufs[i]->hash.usr = i << 1;
> -	rte_distributor_process(d, bufs, num_workers);
> +		rte_distributor_process(d, &bufs[i], 1);
> +	}
> 
>  	rte_distributor_process(d, NULL, 0);
>  	rte_distributor_flush(d);
> --
> 2.17.1

Patch
diff mbox series

diff --git a/app/test/test_distributor.c b/app/test/test_distributor.c
index a4af0a39c..e0cb698e1 100644
--- a/app/test/test_distributor.c
+++ b/app/test/test_distributor.c
@@ -769,9 +769,10 @@  quit_workers(struct worker_params *wp, struct rte_mempool *p)
 
 	zero_quit = 0;
 	quit = 1;
-	for (i = 0; i < num_workers; i++)
+	for (i = 0; i < num_workers; i++) {
 		bufs[i]->hash.usr = i << 1;
-	rte_distributor_process(d, bufs, num_workers);
+		rte_distributor_process(d, &bufs[i], 1);
+	}
 
 	rte_distributor_process(d, NULL, 0);
 	rte_distributor_flush(d);