On 2023-02-27 10:52:59 [+0100], Frédéric Martinsons wrote: > I don't know how to go deeper to understand why preempt-rt is blocking > of this, any ideas ? The blocking / wake mechanism is different. There should be only one waiter so the rcuwait_wait_*() mechanism has to work. The previously used swait* may add multiple waiters to the queue but also wakes only one waiter at a time. > Another question is about the impact of reverting commit > https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git/commit/?h=v4.19-rt&id=7fcfa8b616d360ab9ea1da94c2200f0708e0188b > , what are the risk of doing that ? That has been used before and the rcu-wait mechanism is what we use upstream. That revert should case no harm. I would need to reproduce this to figure out if this is a generic problem or if the backport is bad. Basically speaking (and you could add printks to figure that out) manage_workers() should wake on task and that should be the one waiting in put_unbound_pool(). But this is somehow not happening based on your description. Sebastian