Re: [PATCH RESEND] selftests/futex: Order calls in futex_requeue

From: André Almeida
Date: Wed Sep 04 2024 - 09:24:06 EST


Hi Edward,

Thanks for your patch!

Em 03/09/2024 17:39, Edward Liaw escreveu:
Similar to fbf4dec70277 ("selftests/futex: Order calls to
futex_lock_pi"), which fixed a flake in futex_lock_pi due to racing
between the parent and child threads.

The same issue can occur in the futex_requeue test, because it expects
waiterfn to make progress to futex_wait before the parent starts to
requeue. This is mitigated by the parent sleeping for WAKE_WAIT_US, but
it still fails occasionally. This can be reproduced by adding a sleep in
the waiterfn before futex_wait:

TAP version 13
1..2
not ok 1 futex_requeue simple returned: 0
not ok 2 futex_requeue simple returned: 0
not ok 3 futex_requeue many returned: 0
not ok 4 futex_requeue many returned: 0

Instead, replace the sleep with barriers to make the sequencing
explicit.


Reviewed-by: André Almeida <andrealmeid@xxxxxxxxxx>