Hi, There are significant changes this time. I reverted back to using a TIF flag to hook on syscalls slow path and put the hooks on high level exception handlers instead of low level ones.
It makes the code more portable between x86-32 and x86-64, it makes the hooks clearer and easier to review and the overhead is lowered in the off-case. This can be even better if we use jump labels later. Thanks. git://github.com/fweisbec/linux-dynticks.git rcu/user-2 Frederic Weisbecker (11): rcu: Settle config for userspace extended quiescent state rcu: Allow rcu_user_enter()/exit() to nest rcu: Ignore userspace extended quiescent state by default rcu: Switch task's syscall hooks on context switch x86: Syscall hooks for userspace RCU extended QS x86: Exception hooks for userspace RCU extended QS rcu: Exit RCU extended QS on kernel preemption after irq/exception rcu: Exit RCU extended QS on user preemption x86: Use the new schedule_user API on userspace preemption x86: Exit RCU extended QS on notify resume rcu: Userspace RCU extended QS selftest arch/Kconfig | 10 ++++++ arch/um/drivers/mconsole_kern.c | 2 +- arch/x86/Kconfig | 1 + arch/x86/include/asm/rcu.h | 20 +++++++++++ arch/x86/include/asm/thread_info.h | 10 ++++-- arch/x86/kernel/entry_64.S | 8 ++-- arch/x86/kernel/ptrace.c | 5 +++ arch/x86/kernel/signal.c | 4 ++ arch/x86/kernel/traps.c | 30 ++++++++++++---- arch/x86/mm/fault.c | 13 ++++++- include/linux/rcupdate.h | 10 ++++++ include/linux/sched.h | 20 ++++++----- init/Kconfig | 18 ++++++++++ kernel/rcutree.c | 64 +++++++++++++++++++++++++++++++----- kernel/rcutree.h | 4 ++ kernel/sched/core.c | 10 +++++- 16 files changed, 192 insertions(+), 37 deletions(-) create mode 100644 arch/x86/include/asm/rcu.h -- 1.7.5.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/