public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 0/6] rcu: Userspace RCU extended quiescent state
@ 2012-07-06 12:00 Frederic Weisbecker
  2012-07-06 12:00 ` [PATCH 1/6] rcu: Settle config for userspace " Frederic Weisbecker
                   ` (5 more replies)
  0 siblings, 6 replies; 18+ messages in thread
From: Frederic Weisbecker @ 2012-07-06 12:00 UTC (permalink / raw)
  To: Paul E. McKenney
  Cc: LKML, Frederic Weisbecker, Alessio Igor Bogani, Andrew Morton,
	Avi Kivity, Chris Metcalf, Christoph Lameter, Geoff Levand,
	Gilad Ben Yossef, Hakan Akkan, Ingo Molnar, Josh Triplett,
	Kevin Hilman, Max Krasnyansky, Peter Zijlstra, Stephen Hemminger,
	Steven Rostedt, Sven-Thorsten Dietrich, Thomas Gleixner,
	H. Peter Anvin

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


^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2012-07-10  9:18 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-06 12:00 [RFC PATCH 0/6] rcu: Userspace RCU extended quiescent state Frederic Weisbecker
2012-07-06 12:00 ` [PATCH 1/6] rcu: Settle config for userspace " Frederic Weisbecker
2012-07-06 16:31   ` Paul E. McKenney
2012-07-09 17:42     ` Frederic Weisbecker
2012-07-06 12:00 ` [PATCH 2/6] rcu: Allow rcu_user_enter()/exit() to nest Frederic Weisbecker
2012-07-06 16:27   ` Paul E. McKenney
2012-07-09 17:39     ` Frederic Weisbecker
2012-07-08 15:54   ` Avi Kivity
2012-07-09 17:45     ` Frederic Weisbecker
2012-07-06 12:00 ` [PATCH 3/6] rcu: Exit RCU extended QS on preemption in irq exit Frederic Weisbecker
2012-07-06 12:00 ` [PATCH 4/6] x86: Use the new schedule_user API on user preemption Frederic Weisbecker
2012-07-06 12:00 ` [PATCH 5/6] x86: Kernel entry/exit hooks for RCU Frederic Weisbecker
2012-07-06 12:00 ` [PATCH 6/6] x86: Exit RCU extended QS on notify resume Frederic Weisbecker
2012-07-06 16:33   ` Paul E. McKenney
2012-07-06 20:43     ` Josh Triplett
2012-07-08 21:17       ` Paul E. McKenney
2012-07-10  9:18         ` Frederic Weisbecker
2012-07-09 17:43     ` Frederic Weisbecker

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox