Offset wrongly used num_tx_workers instead of num_rx_workers which caused 
threads to be badly joined.

Without this patch:
$    ./test/performance/odp_pktio_perf  -c 3
Segmentation fault (core dumped)

Signed-off-by: Nicolas Morey-Chaisemartin <nmo...@kalray.eu>
---
 test/performance/odp_pktio_perf.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/test/performance/odp_pktio_perf.c 
b/test/performance/odp_pktio_perf.c
index 6d9b66c..3a22f9d 100644
--- a/test/performance/odp_pktio_perf.c
+++ b/test/performance/odp_pktio_perf.c
@@ -605,18 +605,18 @@ static int run_test_single(odp_cpumask_t *thd_mask_tx,
        odph_linux_pthread_create(&thd_tbl[0], thd_mask_rx,
                                  run_thread_rx, &args_rx);
        odp_barrier_wait(&gbl_args->rx_barrier);
+       num_rx_workers = odp_cpumask_count(thd_mask_rx);
 
        /* then start transmitters */
        num_tx_workers    = odp_cpumask_count(thd_mask_tx);
        args_tx.pps       = status->pps_curr / num_tx_workers;
        args_tx.duration  = gbl_args->args.duration;
        args_tx.batch_len = gbl_args->args.tx_batch_len;
-       odph_linux_pthread_create(&thd_tbl[num_tx_workers], thd_mask_tx,
+       odph_linux_pthread_create(&thd_tbl[num_rx_workers], thd_mask_tx,
                                  run_thread_tx, &args_tx);
        odp_barrier_wait(&gbl_args->tx_barrier);
 
        /* wait for transmitter threads to terminate */
-       num_rx_workers = odp_cpumask_count(thd_mask_rx);
        odph_linux_pthread_join(&thd_tbl[num_rx_workers],
                                num_tx_workers);
 
_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to