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 0/6] Check for use of RCU from dyntick-idle mode
Date: Mon, 11 Jul 2011 20:10:37 +0200 [thread overview]
Message-ID: <20110711181034.GF4109@somewhere.redhat.com> (raw)
In-Reply-To: <20110711170014.GI2245@linux.vnet.ibm.com>
On Mon, Jul 11, 2011 at 10:00:14AM -0700, Paul E. McKenney wrote:
> On Mon, Jul 11, 2011 at 06:44:08PM +0200, Frederic Weisbecker wrote:
> > On Mon, Jul 11, 2011 at 09:38:48AM -0700, Paul E. McKenney wrote:
> > > On Mon, Jul 11, 2011 at 06:03:32PM +0200, Frederic Weisbecker wrote:
> > > > On Fri, Jul 08, 2011 at 08:43:31AM -0700, Paul E. McKenney wrote:
> > > > > Hello!
> > > > >
> > > > > This set of patches adds checks for use of RCU from "extended quiescent
> > > > > states" such as dyntick-idle mode. Such use is grossly illegal because
> > > > > RCU by definition ignores CPUs that are in extended quiescent states.
> > > > > In the case of dyntick-idle mode, the only way for RCU to avoid ignoring
> > > > > such CPUs would be to wake them up periodically, which would defeat the
> > > > > whole purpose of dyntick-idle mode.
> > > > >
> > > > > The good news is that Frederic got this effort started. The bad news is
> > > > > that there are several cases where RCU read-side critical sections appear
> > > > > in dyntick-idle mode.
> > > >
> > > > Ok, let me send to you the patch that splits up rcu/tickless logic and I'll try
> > > > to fix up what you reported to me in ppc.
> > >
> > > Very good, thank you!
> > >
> > > > BTW, are you aware of other cases? You mentioned "several" :)
> > >
> > > PowerPC's hypercall-exit trace event will also cause this complaint.
> >
> > Ok looking at this.
>
> Oh, and I removed some of my RCU dyntick-idle trace events because
> they triggered this warning. This would of course be a problem regardless
> of where the RCU dyntick-idle APIs were called from, so I just took the
> approach of more carefully placing the trace events.
>
> > > Plus I thought you saw some others.
> >
> > Nope, mine were spurious. In my v1 rcu_dereference_check warned if rcu read lock
> > wasn't held but didn't handle the rest of the conditional (another lock held or
> > simply 1 in rcu_dereference_raw()).
> >
> > In the v3, the one you applied, they legitimately disappeared.
>
> OK, good to know!
Ah, actually:
[ 0.649412] WARNING: at include/linux/rcupdate.h:262 __atomic_notifier_call_chain+0xf8/0x110()
[ 0.649414] Hardware name: AMD690VM-FMH
[ 0.649415] Modules linked in: [<ffffffff81051ed5>] warn_slowpath_null+0x15/0x20
[ 0.649420]
[ 0.649422] Pid: 0, comm: kworker/0:1 Tainted: G W 3.0.0-rc6+ #250
[ 0.649433] Call Trace:
[ 0.649437] [<ffffffff81051e8a>] warn_slowpath_common+0x7a/0xb0
[ 0.649441] [<ffffffff81051ed5>] warn_slowpath_null+0x15/0x20
[ 0.649449] [<ffffffff817da5c8>] __atomic_notifier_call_chain+0xf8/0x110
[ 0.649468] [<ffffffff817da5c8>] __atomic_notifier_call_chain+0xf8/0x110
[ 0.649480] [<ffffffff810018a0>] enter_idle+0x20/0x30
[ 0.649483] [<ffffffff817da5f1>] atomic_notifier_call_chain+0x11/0x20
[ 0.649487] [<ffffffff81001995>] cpu_idle+0xa5/0x110
[ 0.649494] [<ffffffff817ce3d5>] start_secondary+0x1df/0x1e6
[ 0.649500] ---[ end trace f17e946d22a56016 ]---
prev parent reply other threads:[~2011-07-11 18:10 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-08 15:43 [PATCH tip/core/rcu 0/6] Check for use of RCU from dyntick-idle mode Paul E. McKenney
2011-07-08 15:43 ` [PATCH RFC tip/core/rcu 1/6] rcu: Detect illegal rcu dereference in extended quiescent state Paul E. McKenney
2011-07-08 15:43 ` [PATCH RFC tip/core/rcu 2/6] rcu: Inform the user about dynticks-idle mode on PROVE_RCU warning Paul E. McKenney
2011-07-08 15:43 ` [PATCH RFC tip/core/rcu 3/6] rcu: Warn when rcu_read_lock() is used in extended quiescent state Paul E. McKenney
2011-07-08 15:43 ` [PATCH RFC tip/core/rcu 4/6] rcu: Remove one layer of abstraction from PROVE_RCU checking Paul E. McKenney
2011-07-08 15:43 ` [PATCH RFC tip/core/rcu 5/6] rcu: Warn when srcu_read_lock() is used in an extended quiescent state Paul E. McKenney
2011-07-08 15:43 ` [PATCH RFC tip/core/rcu 6/6] rcu: Make srcu_read_lock_held() call common lockdep-enabled function Paul E. McKenney
2011-07-11 16:03 ` [PATCH tip/core/rcu 0/6] Check for use of RCU from dyntick-idle mode Frederic Weisbecker
2011-07-11 16:38 ` Paul E. McKenney
2011-07-11 16:44 ` Frederic Weisbecker
2011-07-11 17:00 ` Paul E. McKenney
2011-07-11 18:10 ` Frederic Weisbecker [this message]
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=20110711181034.GF4109@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox