[RFC PATCH 00/11] rcu: Userspace RCU extended quiescent state v2

July 11th, 2012 - 02:30 pm ET by Frederic Weisbecker | Report spam
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 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/
email Follow the discussionReplies 2 repliesReplies Make a reply

Replies

#1 Paul E. McKenney
July 16th, 2012 - 06:20 pm ET | Report spam
On Wed, Jul 11, 2012 at 08:26:29PM +0200, Frederic Weisbecker wrote:
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.



Thank you, Frederic, I have queued these:

git://git.kernel.org/pub/scm/linux/...ux-rcu.git rcu/idle

I had to rework patch 4 a bit to take into account that I dropped the
rcu_switch_from() patch, please check it to make sure that I didn't
rework it out of existence.

Thanx, Paul

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
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Similar topics