On 29.01.24 23:23, Edgecombe, Rick P wrote: > On Fri, 2024-01-19 at 14:56 +0100, Stefan Liebler wrote: >> I've reduced the test (see attachement) and now have only one process >> with three threads. > > This tests fails on my setup as well: > main: start 3 threads. > #0: started: fct=1 > #1: started: fct=1 > #2: started: fct=1 > #2: mutex_timedlock failed with 22 (round=28772) > > But, after this patch: > https://lore.kernel.org/all/20240116130810.ji1YCxpg@xxxxxxxxxxxxx/ > > ...the attached test hangs. > > However, the glibc test that was failing for me "nptl/tst-robustpi8" > passes with the linked patch applied. So I think that patch fixes the > issue I hit. > > What is passing supposed to look like on the attached test? kernel commit "futex: Prevent the reuse of stale pi_state" https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/patch/?id=e626cb02ee8399fd42c415e542d031d185783903 fixes the issue on s390x. With this commit, the test runs to the end: main: start 3 threads. #0: started: fct=1 #1: started: fct=1 #2: started: fct=1 #2: REACHED round 100000000. => exit #0: REACHED round 100000000. => exit #1: REACHED round 100000000. => exit main: end. If you want you can reduce the number of rounds by compiling with -DROUNDS=XYZ or manually adjusting the ROUNDS macro define.