On Thu, Jul 8, 2021 at 12:46 PM Peter Oskolkov <posk@xxxxxxx> wrote: [...] > Pretty much everything works, with one issue: when a worker > blocks, we need to wake its server in umcg_wq_worker_sleeping > called from sched_submit_work within preempt_disable block. > As the server_tid is set by the userspace, it can point to > a running/spinning task, and so wake_server will hang waiting > for ttwu() to succeed. I do not think this is appropriate, > but I am not sure at the moment how to resolve this. Any sugestions? [...] I think I can solve this by carefully ordering state changes (both umcg state and task state) and maybe sending a signal to the wakee if not enough. I'll try this approach in v0.3.