> -----Original Message----- > From: dev <[email protected]> On Behalf Of David Christensen > Sent: Friday, September 3, 2021 1:41 AM > To: [email protected] > Cc: Phil Yang <[email protected]>; [email protected]; David Christensen > <[email protected]> > Subject: [dpdk-dev] [PATCH] test/atomic: fix false failures for 128-bit atomic > compare exchange test > > When checking the results of the rte_atomic128_cmp_exchange() function, > current code compares the values of a uint32_t and a uint64_t variable. > If the number of lcores used by the test is large, or the value of the > iteration > count N is increased, the variable size mimatch can cause a false test > failure. > Modify the comparison to compare uint64_t values. > > Fixes: fa3253c534b1 ("test/atomic: add 128-bit atomic compare exchange > test") > Cc: [email protected]
This mail address is unreachable. I reproduced the issue on a 160-core aarch64 machine with increased N. Tested-by: Ruifeng Wang <[email protected]> Reviewed-by: Ruifeng Wang <[email protected]> > > Signed-off-by: David Christensen <[email protected]> > --- > app/test/test_atomic.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/app/test/test_atomic.c b/app/test/test_atomic.c index > f10f555af8..ce0c259bd7 100644 > --- a/app/test/test_atomic.c > +++ b/app/test/test_atomic.c > @@ -591,7 +591,7 @@ test_atomic(void) > rte_atomic32_clear(&synchro); > > iterations = count128.val[0] - count128.val[1]; > - if (iterations != 4*N*(rte_lcore_count()-1)) { > + if (iterations != (uint64_t)4*N*(rte_lcore_count()-1)) { > printf("128-bit compare and swap failed\n"); > return -1; > } > -- > 2.27.0

