public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH tip/core/rcu 0/3] Cleanups/bugfixes for large systems and TREE_PREEMPT_RCU
@ 2009-09-18 16:49 Paul E. McKenney
  2009-09-18 16:50 ` [PATCH tip/core/rcu 1/3] Add WARN_ON_ONCE() consistency checks covering state transitions Paul E. McKenney
                   ` (3 more replies)
  0 siblings, 4 replies; 14+ messages in thread
From: Paul E. McKenney @ 2009-09-18 16:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: mingo, laijs, dipankar, akpm, mathieu.desnoyers, josh, dvhltc,
	niv, tglx, peterz, rostedt, Valdis.Kletnieks

This set of patches does some cleanups and fixes a bug that prevents
TREE_PREEMPT_RCU from running reliably on large systems (more than
64 CPUs, or on 32-bit systems, more than 32 CPUs).  The patches are
as follows:

1.	Add WARN_ON_ONCE() consistency checks to catch bugs.  These
	are all on slowpaths, so are appropriate for production use.

2.	Apply the results of a code walkthrough of rcutree_plugin.h.
	This includes a fix for a theoretical race that could result in
	excessively long RCU grace periods, or perhaps even hangs/OOMs.

3.	Fix a bug introduced in a bugfix commit #de078d875 that caused
	large systems to only partially initialize the fields in the
	rcu_node tree.  TREE_RCU doesn't care about any of these fields,
	which explains why only TREE_PREEMPT_RCU was broken.

With these fixes, large systems using TREE_PREEMPT_RCU pass moderate
rcutorture runs (but with Josh Triplett's mods that force frequent
preemption within RCU read-side critical sections).  I am sure that
there are more bugs, but these fixes get things much closer.

 b/kernel/rcutree.c        |   13 +++++++++----
 b/kernel/rcutree_plugin.h |   21 ++++++++++++++-------
 kernel/rcutree.c          |   38 +++++++++-----------------------------
 kernel/rcutree_plugin.h   |   16 +++++++++-------
 4 files changed, 41 insertions(+), 47 deletions(-)

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

end of thread, other threads:[~2009-09-19  7:59 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-09-18 16:49 [PATCH tip/core/rcu 0/3] Cleanups/bugfixes for large systems and TREE_PREEMPT_RCU Paul E. McKenney
2009-09-18 16:50 ` [PATCH tip/core/rcu 1/3] Add WARN_ON_ONCE() consistency checks covering state transitions Paul E. McKenney
2009-09-19  7:58   ` [tip:core/urgent] rcu: " tip-bot for Paul E. McKenney
2009-09-18 16:50 ` [PATCH tip/core/rcu 2/3] Apply results of code inspection of kernel/rcutree_plugin.h Paul E. McKenney
2009-09-18 16:58   ` Daniel Walker
2009-09-18 17:00     ` Peter Zijlstra
     [not found]       ` <1253293408.7060.47.camel@desktop>
2009-09-18 17:04         ` Peter Zijlstra
2009-09-18 17:08           ` Daniel Walker
2009-09-18 17:22     ` Paul E. McKenney
2009-09-18 17:56       ` Daniel Walker
2009-09-19  7:58   ` [tip:core/urgent] rcu: " tip-bot for Paul E. McKenney
2009-09-18 16:50 ` [PATCH tip/core/rcu 3/3] Fix thinko in commit #de078d875, actually initialize full tree Paul E. McKenney
2009-09-19  7:59   ` [tip:core/urgent] rcu: Fix thinko, " tip-bot for Paul E. McKenney
2009-09-19  6:55 ` [PATCH tip/core/rcu 0/3] Cleanups/bugfixes for large systems and TREE_PREEMPT_RCU Ingo Molnar

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