All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: linux-kernel@vger.kernel.org
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
Subject: [PATCH tip/core/rcu 0/18] v5 add lockdep-based diagnostics to rcu_dereference()
Date: Wed, 17 Feb 2010 12:29:24 -0800	[thread overview]
Message-ID: <20100217202924.GA29007@linux.vnet.ibm.com> (raw)

Hello!

This patch series adds lockdep-based checking to the rcu_dereference()
primitive in order to flag misuses of RCU.  The first four patches put
the RCU infrastructure in place, the next eight use this infrastructure
in the net, sched, vfs, radix-tree, idr, and security subsystems, and the
last patch documents how to use the new lockdep-checked rcu_dereference()
primitives.  The remaining five patches are other changes that also need
to be applied.

The new (and default-disabled) CONFIG_PROVE_RCU makes this safe to include
in tip/core/rcu -- unlike v2, your system won't complain about RCU misuse
unless you ask it to.  There are still several situations that trigger
on systems I have access to (and I have email out on a couple of them),
some of the remaining will be triggered only by hardware I don't have
access to and kernel features I am unfamiliar with.  So this is ready
for some more-general testing.

Changes since v4 (http://lkml.org/lkml/2010/2/11/356)

o	Apply review comments from Peter Ziljstra.

o	Another documentation update.

o	Fixes that avoid overflowing signed integers.

o	Rebased Thomas Gleixner's raw-spinlock patch on this series.
	(Thomas's original at http://lkml.org/lkml/2010/2/17/182.)

Changes since v3 (http://lkml.org/lkml/2010/1/14/505)

o	Fix a few more issues identified by the checking.

o	Add a documentation update.

o	Accelerate RCU grace periods when the current CPU is the last
	non-dyntick-idle CPU in the system, which is important for
	some multi-core battery-powered devices.

Changes since v2 (http://lkml.org/lkml/2010/1/4/496):

o	Removed references to the check condition for the non-lockdep
	version of rcu_dereference_check(), thus preventing numerous
	build errors.

o	Create a CONFIG_PROVE_RCU (default disabled) so that developers
	who want to use lockdep only to debug locks aren't bothered 
	by RCU-specific lockdep complaints that will no doubt persist
	for a little bit while some of the more obscure uses of RCU
	are reverse-engineered.

o	Fix a few more issues identified by the checking.

o	Add documentation in Documentation/RCU/lockdep.txt.

Changes since v1 (http://lkml.org/lkml/2009/12/15/553):

o	Made SRCU have per-srcu_struct lockdep maps to prevent lockdep
	from conflating independent uses of SRCU, and updated the
	rcu_dereference() checking in rcutorture to match.

o	Fix a few issues identified by the checking.

o	Disable checking within RCU list macros, RCU radix trees, and
	IDR.

             reply	other threads:[~2010-02-17 20:29 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-17 20:29 Paul E. McKenney [this message]
2010-02-17 20:29 ` [PATCH tip/core/rcu 01/18] rcu: introduce lockdep-based checking to RCU read-side primitives Paul E. McKenney
2010-02-17 20:29 ` [PATCH tip/core/rcu 02/18] rcu: add lockdep-enabled variants of rcu_dereference() Paul E. McKenney
2010-02-17 20:29 ` [PATCH tip/core/rcu 03/18] rcu: integrate rcu_dereference_check() message into lockdep Paul E. McKenney
2010-02-17 20:29 ` [PATCH tip/core/rcu 04/18] rcu: disable lockdep checking in RCU list-traversal primitives Paul E. McKenney
2010-02-17 20:29 ` [PATCH tip/core/rcu 05/18] net: add checking to rcu_dereference() primitives Paul E. McKenney
2010-02-17 20:29 ` [PATCH tip/core/rcu 06/18] sched: use lockdep-based checking on rcu_dereference() Paul E. McKenney
2010-02-17 20:29 ` [PATCH tip/core/rcu 07/18] sched: better name for for_each_domain_rd Paul E. McKenney
2010-02-17 20:29 ` [PATCH tip/core/rcu 08/18] vfs: apply lockdep-based checking to rcu_dereference() uses Paul E. McKenney
2010-02-17 20:29 ` [PATCH tip/core/rcu 09/18] vfs: abstract rcu_dereference_check for files-fdtable use Paul E. McKenney
2010-02-17 20:29 ` [PATCH tip/core/rcu 10/18] radix-tree: disable RCU lockdep checking in radix tree Paul E. McKenney
2010-02-17 20:29 ` [PATCH tip/core/rcu 11/18] idr: apply lockdep-based diagnostics to rcu_dereference() uses Paul E. McKenney
2010-02-17 20:29 ` [PATCH tip/core/rcu 12/18] security: apply lockdep-based checking " Paul E. McKenney
2010-02-17 20:29 ` [PATCH tip/core/rcu 13/18] rcu: documentation update for CONFIG_PROVE_RCU Paul E. McKenney
2010-02-17 20:29 ` [PATCH tip/core/rcu 14/18] rcu: fix citation of Mathieu's dissertation Paul E. McKenney
2010-02-17 20:29 ` [PATCH tip/core/rcu 15/18] rcu: accelerate grace period if last non-dynticked CPU Paul E. McKenney
2010-02-17 20:29 ` [PATCH tip/core/rcu 16/18] rcu: use canonical URL for Mathieu's dissertation Paul E. McKenney
2010-02-17 20:29 ` [PATCH tip/core/rcu 17/18] rcu: stop overflowing signed integers Paul E. McKenney
2010-02-17 21:30   ` Mathieu Desnoyers
2010-02-17 20:29 ` [PATCH tip/core/rcu 18/18] The spinlocks in rcutree need to be real spinlocks in preempt-rt. Convert them to raw_spinlocks Paul E. McKenney
2010-02-18 16:57   ` [PATCH tip/core/rcu 18/18 amended] rcu: Convert " Paul E. McKenney

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100217202924.GA29007@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=Valdis.Kletnieks@vt.edu \
    --cc=akpm@linux-foundation.org \
    --cc=dhowells@redhat.com \
    --cc=dipankar@in.ibm.com \
    --cc=dvhltc@us.ibm.com \
    --cc=josh@joshtriplett.org \
    --cc=laijs@cn.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@polymtl.ca \
    --cc=mingo@elte.hu \
    --cc=niv@us.ibm.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.