Messages in this thread | | | From | Kirill Tkhai <> | Subject | Re: [RFC 0/1] wait queue head; locking considerations | Date | Fri, 06 Dec 2013 20:34:04 +0400 |
| |
Hi,
06.12.2013, 19:24, "Paul Gortmaker" <paul.gortmaker@windriver.com>: > 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |