On Mon, Dec 15, 2025 at 11:49 AM Arnd Bergmann arnd@arndb.de wrote:
Is it always enough to wake up only one waiter? From your description it sounds like it might need wake_up_interruptible_all() instead, but I may be misunderstanding the issue.
I did some digging into waitqueue semantics. AFAICT wake_up_interruptible() will wake all non-exclusive waiters, and up to one exclusive waiter. In our case all waiters are non-exclusive (ignoring epoll with EPOLLEXCLUSIVE).
I do believe there is a different way to fix this, which is a bit more elegant. I've sent a v2.
Best Lorenz