]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
selftests/futex: Order calls to futex_lock_pi
authorNysal Jan K.A <nysal@linux.ibm.com>
Mon, 14 Aug 2023 08:09:27 +0000 (13:39 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 19 Sep 2023 10:22:31 +0000 (12:22 +0200)
commit208383d68510f2f901f6cd0d1831176efc05eae0
treedbcf25ae8607d33c76cc2a31da2c1ed5f3497a17
parentc7802ff51adce9ae2e8392b926943342549de38c
selftests/futex: Order calls to futex_lock_pi

[ Upstream commit fbf4dec702774286db409815ffb077711a96b824 ]

Observed occassional failures in the futex_wait_timeout test:

ok 1 futex_wait relative succeeds
ok 2 futex_wait_bitset realtime succeeds
ok 3 futex_wait_bitset monotonic succeeds
ok 4 futex_wait_requeue_pi realtime succeeds
ok 5 futex_wait_requeue_pi monotonic succeeds
not ok 6 futex_lock_pi realtime returned 0
......

The test expects the child thread to complete some steps before
the parent thread gets to run. There is an implicit expectation
of the order of invocation of futex_lock_pi between the child thread
and the parent thread. Make this order explicit. If the order is
not met, the futex_lock_pi call in the parent thread succeeds and
will not timeout.

Fixes: f4addd54b161 ("selftests: futex: Expand timeout test")
Signed-off-by: Nysal Jan K.A <nysal@linux.ibm.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/testing/selftests/futex/functional/futex_wait_timeout.c