X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest%2Ftest_rcu_qsbr.c;h=b60dc5099cd138951df2b3cd73fc62248081afd8;hb=0b1e11b0b69d7f36a7d283ae3e85bf63269530da;hp=85d80e0fbdad1fcdeba4c6430e46d41b3d54b29a;hpb=d170527643bcee1ef35390d8ac57ddccf6621b82;p=dpdk.git 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 */