Re: [RFC 0/1] wait queue head; locking considerations
From: Kirill Tkhai
Date: Fri Dec 06 2013 - 11:34:14 EST
Hi,
06.12.2013, 19:24, "Paul Gortmaker" <paul.gortmaker@xxxxxxxxxxxxx>:
> Peter pointed out[1] that the simple wait queues in RT could
> run any number of wakeups with the wait queue head lock held.
>
> It turns out that this isnt really specific to RT, but it is
> mainline too -- all the __wake_up_XYZ that in turn use the
> __wake_up_common boiler plate end up looping over all the
> callbacks (normally ttwu) while holding the head lock.
<snip>
One more problem with wait queues in RT case.
Wait queues moving from spinlocks to rt_mutexes makes timerfd
not irqsafe on RT. This makes it unusable for some user tasks.
> fs/timerfd.c | 26 ++++++-------
> include/linux/wait.h | 36 +++++++++++++++---
> kernel/sched/completion.c | 24 ++++++------
> kernel/sched/core.c | 8 ++--
> kernel/sched/wait.c | 44 +++++++++++-----------
> mm/filemap.c | 4 +-
> net/sunrpc/sched.c | 4 +-
> 14 files changed, 150 insertions(+), 126 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/