lkml.org 
[lkml]   [2012]   [Jul]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[RFC PATCH 0/6] rcu: Userspace RCU extended quiescent state
Date
Hi,

Although this feature is useless alone, it is necessary to prepare
our kernel to be more tickless. With this, RCU doesn't need the tick
anymore on a CPU running in userspace.

I've made it a standalone feature because maintaining it on a big
tree like nohz cpusets doesn't scale. I'm trying to integrate the
components piecewise now as much as possible.

Once we have everything in place, this should be merged into
a CONFIG_NO_HZ_FULL option.

So what do you think? The version I use in my nohz cpusets is
doing a bit differently: instead of hooking in entry.S, it hooks
in higher level exception handlers (do_debug(), do_page_fault(), etc...)
and syscall slow path.

This version rather hooks in low level entry code. I'm not sure which is
the best. Both have their pros and cons. This is mostly about details.

I can cook a patchset with hooks on the higher level handlers to show
you if you want.

I also don't know yet if I should keep the previous TIF_NOHZ and use
syscalls slow path or not.

Yeah I'm still a bit brainstorming...

git://github.com/fweisbec/linux-dynticks.git
rcu/user

Frederic Weisbecker (6):
rcu: Settle config for userspace extended quiescent state
rcu: Allow rcu_user_enter()/exit() to nest
rcu: Exit RCU extended QS on preemption in irq exit
x86: Use the new schedule_user API on user preemption
x86: Kernel entry/exit hooks for RCU
x86: Exit RCU extended QS on notify resume

arch/Kconfig | 13 +++++++++++++
arch/x86/Kconfig | 1 +
arch/x86/include/asm/rcu.h | 7 +++++++
arch/x86/kernel/entry_64.S | 33 +++++++++++++++++++++++++++++----
arch/x86/kernel/signal.c | 2 ++
init/Kconfig | 10 ++++++++++
kernel/rcutree.c | 42 ++++++++++++++++++++++++++++++++++--------
kernel/sched/core.c | 7 +++++++
8 files changed, 103 insertions(+), 12 deletions(-)
create mode 100644 arch/x86/include/asm/rcu.h

--
1.7.5.4



\
 
 \ /
  Last update: 2012-07-06 14:41    [W:0.104 / U:0.816 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site