All of lore.kernel.org
 help / color / mirror / Atom feed
From: Frederic Weisbecker <fweisbec@gmail.com>
To: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Cc: linux-kernel@vger.kernel.org, mingo@elte.hu,
	laijs@cn.fujitsu.com, dipankar@in.ibm.com,
	akpm@linux-foundation.org, mathieu.desnoyers@polymtl.ca,
	josh@joshtriplett.org, niv@us.ibm.com, tglx@linutronix.de,
	peterz@infradead.org, rostedt@goodmis.org,
	Valdis.Kletnieks@vt.edu, dhowells@redhat.com,
	eric.dumazet@gmail.com, darren@dvhart.com, patches@linaro.org
Subject: Re: [PATCH tip/core/rcu 04/28] rcu: Restore checks for blocking in RCU read-side critical sections
Date: Thu, 9 Jun 2011 01:28:35 +0200	[thread overview]
Message-ID: <20110608232833.GD25771@somewhere.redhat.com> (raw)
In-Reply-To: <1307561407-13809-4-git-send-email-paulmck@linux.vnet.ibm.com>

On Wed, Jun 08, 2011 at 12:29:43PM -0700, Paul E. McKenney wrote:
> Long ago, using TREE_RCU with PREEMPT would result in "scheduling
> while atomic" diagnostics if you blocked in an RCU read-side critical
> section.  However, PREEMPT now implies TREE_PREEMPT_RCU, which defeats
> this diagnostic.  This commit therefore adds a replacement diagnostic
> based on PROVE_RCU.
> 
> Because rcu_lockdep_assert() and lockdep_rcu_dereference() are now being
> used for things that have nothing to do with rcu_dereference(), rename
> lockdep_rcu_dereference() to lockdep_rcu_suspicious() and add a third
> argument that is a string indicating what is suspicious.  This third
> argument is passed in from a new third argument to rcu_lockdep_assert().
> Update all calls to rcu_lockdep_assert() to add an informative third
> argument.
> 
> Finally, add a pair of rcu_lockdep_assert() calls from within
> rcu_note_context_switch(), one complaining if a context switch occurs
> in an RCU-bh read-side critical section and another complaining if a
> context switch occurs in an RCU-sched read-side critical section.
> These are present only if the PROVE_RCU kernel parameter is enabled.
> 
> Again, you must enable PROVE_RCU to see these new diagnostics.  But you
> are enabling PROVE_RCU to check out new RCU uses in any case, aren't you?
> 
> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>

So, do you think we can get rid of this patch now that we are going to have CONFIG_ATOMIC_SLEEP
working everywhere?

The last remaining piece we need is to check rcu_preempt_depth() from schedule_debug(),
which does a kind of lightweight might_sleep() check alike.

  reply	other threads:[~2011-06-08 23:28 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-08 19:29 [PATCH tip/core/rcu 0/28] patches queued for 3.1, first installment Paul E. McKenney
2011-06-08 19:29 ` [PATCH tip/core/rcu 01/28] rcu: Simplify curing of load woes Paul E. McKenney
2011-06-10 14:18   ` Peter Zijlstra
2011-06-10 19:53     ` Paul E. McKenney
2011-06-08 19:29 ` [PATCH tip/core/rcu 02/28] rcu: Use kthread_create_on_node() Paul E. McKenney
2011-06-08 19:29 ` [PATCH tip/core/rcu 03/28] rcu: Streamline code produced by __rcu_read_unlock() Paul E. McKenney
2011-06-08 23:17   ` Mathieu Desnoyers
     [not found]   ` <BLU0-SMTP16E45D0FAD13ACF913B28B96620@phx.gbl>
2011-06-08 23:58     ` Paul E. McKenney
2011-06-09  3:45   ` Josh Triplett
2011-06-09 14:17     ` Paul E. McKenney
2011-06-10  7:14   ` Lai Jiangshan
2011-06-10 19:35     ` Paul E. McKenney
2011-06-08 19:29 ` [PATCH tip/core/rcu 04/28] rcu: Restore checks for blocking in RCU read-side critical sections Paul E. McKenney
2011-06-08 23:28   ` Frederic Weisbecker [this message]
2011-06-08 23:46     ` Paul E. McKenney
2011-06-08 23:48       ` Frederic Weisbecker
2011-06-08 19:29 ` [PATCH tip/core/rcu 05/28] rcu: Move rcu_head definition to types.h Paul E. McKenney
2011-06-08 23:26   ` Mathieu Desnoyers
     [not found]   ` <BLU0-SMTP635E2E394E1488A2717A5B96620@phx.gbl>
2011-06-09  0:02     ` Paul E. McKenney
2011-06-09  0:11       ` Mathieu Desnoyers
     [not found]       ` <BLU0-SMTP796363CC311D3AB84B196996650@phx.gbl>
2011-06-09 18:38         ` Paul E. McKenney
2011-06-09 20:12           ` Mathieu Desnoyers
2011-06-08 19:29 ` [PATCH tip/core/rcu 06/28] rcu: Update rcutorture documentation Paul E. McKenney
2011-06-08 19:29 ` [PATCH tip/core/rcu 07/28] Fix mismatched variable in rcutree_trace.c Paul E. McKenney
2011-06-08 23:23   ` Mathieu Desnoyers
     [not found]   ` <BLU0-SMTP181D8DEE03E1353C8A106396620@phx.gbl>
2011-06-09  0:03     ` Paul E. McKenney
2011-06-08 19:29 ` [PATCH tip/core/rcu 08/28] rcu: Abstract common code for RCU grace-period-wait primitives Paul E. McKenney
2011-06-08 19:29 ` [PATCH tip/core/rcu 09/28] rcu: Catch rcutorture up to new RCU API additions Paul E. McKenney
2011-06-08 19:29 ` [PATCH tip/core/rcu 10/28] rcu: Fix RCU's NMI documentation Paul E. McKenney
2011-06-08 23:19   ` Mathieu Desnoyers
2011-06-08 19:29 ` [PATCH tip/core/rcu 11/28] audit_tree,rcu: Convert call_rcu(__put_tree) to kfree_rcu() Paul E. McKenney
2011-06-08 19:29 ` [PATCH tip/core/rcu 12/28] block,rcu: Convert call_rcu(cfq_cfqd_free) " Paul E. McKenney
2011-06-08 19:29 ` [PATCH tip/core/rcu 13/28] nfs,rcu: Convert call_rcu(nfs_free_delegation_callback) " Paul E. McKenney
2011-06-09 17:12   ` Trond Myklebust
2011-06-08 19:29 ` [PATCH tip/core/rcu 14/28] security,rcu: Convert call_rcu(whitelist_item_free) " Paul E. McKenney
2011-06-09  0:39   ` James Morris
2011-06-09 18:45     ` Paul E. McKenney
2011-06-08 19:29 ` [PATCH tip/core/rcu 15/28] scsi,rcu: Convert call_rcu(fc_rport_free_rcu) " Paul E. McKenney
2011-06-08 19:29 ` [PATCH tip/core/rcu 16/28] block,rcu: Convert call_rcu(disk_free_ptbl_rcu_cb) " Paul E. McKenney
2011-06-08 19:29 ` [PATCH tip/core/rcu 17/28] ia64,rcu: Convert call_rcu(sn_irq_info_free) " Paul E. McKenney
2011-06-08 19:29 ` [PATCH tip/core/rcu 18/28] jbd2,rcu: Convert call_rcu(free_devcache) " Paul E. McKenney
2011-06-08 19:34   ` Jan Kara
2011-06-08 19:47     ` Paul E. McKenney
2011-06-08 19:29 ` [PATCH tip/core/rcu 19/28] md,rcu: Convert call_rcu(free_conf) " Paul E. McKenney
2011-06-09  2:03   ` NeilBrown
2011-06-08 19:29 ` [PATCH tip/core/rcu 20/28] security,rcu: Convert call_rcu(sel_netnode_free) " Paul E. McKenney
2011-06-08 19:30 ` [PATCH tip/core/rcu 21/28] security,rcu: Convert call_rcu(sel_netport_free) " Paul E. McKenney
2011-06-08 19:30 ` [PATCH tip/core/rcu 22/28] ipc,rcu: Convert call_rcu(free_un) " Paul E. McKenney
2011-06-08 19:30 ` [PATCH tip/core/rcu 23/28] ipc,rcu: Convert call_rcu(ipc_immediate_free) " Paul E. McKenney
2011-06-08 19:30 ` [PATCH tip/core/rcu 24/28] vmalloc,rcu: Convert call_rcu(rcu_free_va) " Paul E. McKenney
2011-06-08 19:30 ` [PATCH tip/core/rcu 25/28] vmalloc,rcu: Convert call_rcu(rcu_free_vb) " Paul E. McKenney
2011-06-08 19:30 ` [PATCH tip/core/rcu 26/28] sysctl,rcu: Convert call_rcu(free_head) to kfree Paul E. McKenney
2011-06-08 19:30 ` [PATCH tip/core/rcu 27/28] net,rcu: Convert call_rcu(xt_rateest_free_rcu) to kfree_rcu() Paul E. McKenney
2011-06-08 19:30 ` [PATCH tip/core/rcu 28/28] net,rcu: Convert call_rcu(sk_filter_release_rcu) to kfree_rcu 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=20110608232833.GD25771@somewhere.redhat.com \
    --to=fweisbec@gmail.com \
    --cc=Valdis.Kletnieks@vt.edu \
    --cc=akpm@linux-foundation.org \
    --cc=darren@dvhart.com \
    --cc=dhowells@redhat.com \
    --cc=dipankar@in.ibm.com \
    --cc=eric.dumazet@gmail.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=patches@linaro.org \
    --cc=paulmck@linux.vnet.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.