Hi, On 18.09.21 01:16, Luis Claudio R. Goncalves wrote:
If I revert "futex: Futex_unlock_pi() determinism" pi_stress will work. With the patch applied the process just hangs. I've attached gdb to see what's going on in this case:
Thanks for all the tips. It took me a while to figure out what's wrong. The hint was in the reverted patch... The patch depends on the 'newly'
introduced locking rules (pi_state->pi_mutex.wait_lock, hb->lock), though the stable backport is not shipping it. Here the hint: However, now that modifying wait_list is done while holding both hb->lock and wait_lock, the scenario can be avoided entirely by acquiring wait_lock while still holding hb-lock. Doing a hand-over, without leaving a hole. After a quick test merge of put_pi_state() from v4.9-rt things seem to start working again. I need some more time to polish and verify all changes but at least I know now what's wrong. Daniel