From 1b32cc619b617dd356afffbf347569409db037ef Mon Sep 17 00:00:00 2001 From: Gavin Hu Date: Mon, 25 Nov 2019 11:36:33 +0800 Subject: [PATCH] test/rcu: fix build for small number of cores MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit If the RTE_MAX_LCORE is less than 10, a compilation error is generated: app/test/test_rcu_qsbr.c:234:10: error: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Werror=sign-compare] The cause is (RTE_MAX_LCORE - 10) results in a negative value. To fix, use rte_rand() to find a number between 0 and RTE_MAX_LCORE. Fixes: b87089b0bb19 ("test/rcu: add API and functional tests") Cc: stable@dpdk.org Signed-off-by: Gavin Hu Reviewed-by: Honnappa Nagarahalli Reviewed-by: Steve Capper Reviewed-by: Dharmik Thakkar --- app/test/test_rcu_qsbr.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/test/test_rcu_qsbr.c b/app/test/test_rcu_qsbr.c index 85d80e0fbd..b60dc5099c 100644 --- a/app/test/test_rcu_qsbr.c +++ b/app/test/test_rcu_qsbr.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include "test.h" @@ -168,6 +169,7 @@ test_rcu_qsbr_thread_unregister(void) { unsigned int num_threads[3] = {1, RTE_MAX_LCORE, 1}; unsigned int i, j; + unsigned int skip_thread_id; uint64_t token; int ret; @@ -227,10 +229,11 @@ test_rcu_qsbr_thread_unregister(void) token = rte_rcu_qsbr_start(t[0]); TEST_RCU_QSBR_RETURN_IF_ERROR( (token != (TEST_RCU_QSBR_CNT_INIT + 1)), "QSBR Start"); + skip_thread_id = rte_rand() % RTE_MAX_LCORE; /* Update quiescent state counter */ for (i = 0; i < num_threads[j]; i++) { /* Skip one update */ - if (i == (RTE_MAX_LCORE - 10)) + if ((j == 1) && (i == skip_thread_id)) continue; rte_rcu_qsbr_quiescent(t[0], (j == 2) ? (RTE_MAX_LCORE - 1) : i); @@ -242,7 +245,7 @@ test_rcu_qsbr_thread_unregister(void) TEST_RCU_QSBR_RETURN_IF_ERROR((ret == 0), "Non-blocking QSBR check"); /* Update the previously skipped thread */ - rte_rcu_qsbr_quiescent(t[0], RTE_MAX_LCORE - 10); + rte_rcu_qsbr_quiescent(t[0], skip_thread_id); } /* Validate the updates */ -- 2.20.1