All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: linux-kernel@vger.kernel.org, mingo@elte.hu, dipankar@in.ibm.com,
	akpm@linux-foundation.org, mathieu.desnoyers@polymtl.ca,
	josht@linux.vnet.ibm.com, dvhltc@us.ibm.com, niv@us.ibm.com,
	tglx@linutronix.de, peterz@infradead.org, rostedt@goodmis.org
Subject: Re: [PATCH -tip] v3 Consolidate sparse and lockdep declarations in include/linux/rcupdate.h
Date: Mon, 24 Aug 2009 09:03:59 -0700	[thread overview]
Message-ID: <20090824160359.GG6677@linux.vnet.ibm.com> (raw)
In-Reply-To: <4A924296.3070308@cn.fujitsu.com>

On Mon, Aug 24, 2009 at 03:34:46PM +0800, Lai Jiangshan wrote:
> Paul E. McKenney wrote:
> > From: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> > 
> > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> > ---

[ . . . ]

> >   * rcu_read_lock_sched - mark the beginning of a RCU-classic critical section
> > @@ -160,10 +190,14 @@ extern int rcu_scheduler_active;
> >  static inline void rcu_read_lock_sched(void)
> >  {
> >  	preempt_disable();
> > +	__acquire(RCU_SCHED);
> > +	rcu_read_acquire();
> >  }
> >  static inline void rcu_read_lock_sched_notrace(void)
> 
> It need be marked "notrace" too.

I guess I just need to grep for "_notrace(" in my code.  ;-)

> >  {
> >  	preempt_disable_notrace();
> > +	__acquire(RCU_SCHED);
> > +	rcu_read_acquire();
> >  }
> 
> It may cause infinity recursion.
> rcu_read_acquire() calls rcu_read_lock_sched_notrace()
> before current->lockdep_recursion is set to 1 when tracing in on,
> thus infinity recursion occurs.

That might explain Ingo's test results.

Thank you again, good catch!!!

							Thanx, Paul

  parent reply	other threads:[~2009-08-24 16:04 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-27 18:14 [PATCH RFC -tip 0/4] v2 RCU cleanups and simplified preemptable RCU Paul E. McKenney
2009-07-27 18:16 ` [PATCH RFC -tip 1/4] v2 Move private definitions from include/linux/rcutree.h to kernel/rcutree.h Paul E. McKenney
2009-07-27 18:16 ` [PATCH RFC -tip 2/4] v2 Renamings to increase RCU clarity Paul E. McKenney
2009-07-27 18:16 ` [PATCH RFC -tip 3/4] v2 Consolidate sparse and lockdep declarations in include/linux/rcupdate.h Paul E. McKenney
2009-07-27 18:16 ` [PATCH RFC -tip 4/4] v2 Merge preemptable-RCU functionality into hierarchical RCU Paul E. McKenney
2009-08-03  8:20 ` [PATCH RFC -tip 0/4] v2 RCU cleanups and simplified preemptable RCU Ingo Molnar
2009-08-03 13:03   ` Paul E. McKenney
2009-08-22 20:56 ` [PATCH -tip] v3 Move private definitions from include/linux/rcutree.h to kernel/rcutree.h Paul E. McKenney
2009-08-23  9:01   ` [tip:core/rcu] rcu: " tip-bot for Paul E. McKenney
2009-08-22 20:56 ` [PATCH -tip] v3 Renamings to increase RCU clarity Paul E. McKenney
2009-08-23  9:01   ` [tip:core/rcu] rcu: " tip-bot for Paul E. McKenney
2009-08-24  7:17   ` [PATCH -tip] v3 " Lai Jiangshan
2009-08-24 15:36     ` Paul E. McKenney
2009-08-22 20:56 ` [PATCH -tip] v3 Consolidate sparse and lockdep declarations in include/linux/rcupdate.h Paul E. McKenney
2009-08-23  9:02   ` [tip:core/rcu] rcu: " tip-bot for Paul E. McKenney
2009-08-23 18:42     ` Ingo Molnar
2009-08-23 19:33       ` Paul E. McKenney
2009-08-23 22:53         ` Paul E. McKenney
2009-08-24  9:28           ` Ingo Molnar
2009-08-24 16:07             ` Paul E. McKenney
2009-08-24  7:34   ` [PATCH -tip] v3 " Lai Jiangshan
2009-08-24  9:00     ` Ingo Molnar
2009-08-24 16:03     ` Paul E. McKenney [this message]
2009-08-22 20:56 ` [PATCH -tip] v3 Fix online/offline indication for rcudata.csv trace file Paul E. McKenney
2009-08-23  9:02   ` [tip:core/rcu] rcu: " tip-bot for Paul E. McKenney
2009-08-22 20:56 ` [PATCH -tip] v3 Merge per-RCU-flavor initialization into pre-existing macro Paul E. McKenney
2009-08-23  9:02   ` [tip:core/rcu] rcu: " tip-bot for Paul E. McKenney
2009-08-22 20:56 ` [PATCH -tip] v3 Use debugfs_remove_recursive() simplify code Paul E. McKenney
2009-08-23  9:02   ` [tip:core/rcu] rcu: " tip-bot for Paul E. McKenney
2009-08-22 20:56 ` [PATCH -tip] v3 Simplify rcu_pending()/rcu_check_callbacks() API Paul E. McKenney
2009-08-23  9:02   ` [tip:core/rcu] rcu: " tip-bot for Paul E. McKenney
2009-08-24  7:10   ` [PATCH -tip] v3 " Peter Zijlstra
2009-08-24 15:42     ` Paul E. McKenney
2009-08-22 20:56 ` [PATCH -tip] v3 Merge preemptable-RCU functionality into hierarchical RCU Paul E. McKenney
2009-08-23  9:03   ` [tip:core/rcu] rcu: " tip-bot for Paul E. McKenney
2009-08-22 20:56 ` [PATCH -tip] v3 Remove CONFIG_PREEMPT_RCU Paul E. McKenney
2009-08-23  9:03   ` [tip:core/rcu] rcu: " tip-bot for Paul E. McKenney
2009-08-24  7:21 ` [PATCH RFC -tip 0/4] v3 RCU cleanups and simplified preemptable RCU Peter Zijlstra
2009-08-24 15:59   ` 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=20090824160359.GG6677@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=dipankar@in.ibm.com \
    --cc=dvhltc@us.ibm.com \
    --cc=josht@linux.vnet.ibm.com \
    --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.