LWN.net Logo

rcu: preemptible expedited grace periods and cleanups

From:  "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To:  linux-kernel@vger.kernel.org
Subject:  [PATCH tip/core/rcu 0/4] rcu: preemptible expedited grace periods and cleanups
Date:  Wed, 2 Dec 2009 12:09:55 -0800
Cc:  mingo@elte.hu, laijs@cn.fujitsu.com, dipankar@in.ibm.com, akpm@linux-foundation.org, mathieu.desnoyers@polymtl.ca, josh@joshtriplett.org, dvhltc@us.ibm.com, niv@us.ibm.com, tglx@linutronix.de, peterz@infradead.org, rostedt@goodmis.org, Valdis.Kletnieks@vt.edu, dhowells@redhat.com
Archive-link:  Article, Thread

This patchset includes some cleanups, improved diagnostics, and an
implementation of expedited preemptible RCU grace periods that is
actually expedited:

1.	Rename the "quiet" functions.  The name rcu_quiet_cpu() was
	clear enough, but now that we have four flavors of quietness
	with more on the way, we need more meaningful names.

2.	Enable a fourth level of the rcu_node hierarchy.  No, we really
	don't need the ability to run on million-CPU SMP systems at the
	moment, but the additional level allows more vigorous
	stress-testing on 16-CPU systems.

3.	Add an implementation of synchronize_rcu_expedited() that
	actually expedites preemptible-RCU grace periods.

4.	Make RCU_CPU_STALL_DETECTOR be on by default.  If this works
	well, the #ifdefs will eventually be removed to reduce testing
	load.

This patchset is intended for 2.6.34, but has passed sufficient testing
that it could safely be included in 2.6.33, if desired.

 b/kernel/rcutorture.c     |   34 +++++--
 b/kernel/rcutree.c        |   66 ++++++++-------
 b/kernel/rcutree.h        |    3 
 b/kernel/rcutree_plugin.h |   13 +--
 b/kernel/rcutree_trace.c  |   11 +-
 b/lib/Kconfig.debug       |    3 
 kernel/rcutree.c          |   16 ++-
 kernel/rcutree.h          |   51 ++++++++++-
 kernel/rcutree_plugin.h   |  198 +++++++++++++++++++++++++++++++++++++++++++---
 9 files changed, 324 insertions(+), 71 deletions(-)

Copyright © 2009, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds