From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Li Zhong <zhong@linux.vnet.ibm.com>,
linux-next list <linux-next@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
sasha.levin@oracle.com, gleb@redhat.com, avi@redhat.com
Subject: Re: [RFC PATCH] Fix abnormal rcu dynticks_nesting values related to async page fault
Date: Tue, 27 Nov 2012 08:16:39 -0800 [thread overview]
Message-ID: <20121127161639.GF2474@linux.vnet.ibm.com> (raw)
In-Reply-To: <CAFTL4hydk-FT_hqCbcSPFcNCKnqxtWGz0VjTu3nNnQYfbtTz6Q@mail.gmail.com>
On Tue, Nov 27, 2012 at 04:39:59PM +0100, Frederic Weisbecker wrote:
> 2012/11/27 Li Zhong <zhong@linux.vnet.ibm.com>:
> > I noticed some warnings complaining about dynticks_nesting value, like
> >
> > [ 267.545032] ------------[ cut here ]------------
> > [ 267.545032] WARNING: at kernel/rcutree.c:382 rcu_eqs_enter+0xab/0xc0()
> > [ 267.545032] Hardware name: Bochs
> > [ 267.545032] Modules linked in:
> > [ 267.545032] Pid: 0, comm: swapper/2 Not tainted 3.7.0-rc5-next-20121115 #8
> > [ 267.545032] Call Trace:
> > [ 267.545032] [<ffffffff8104714f>] warn_slowpath_common+0x7f/0xc0
> > [ 267.545032] [<ffffffff810471aa>] warn_slowpath_null+0x1a/0x20
> > [ 267.545032] [<ffffffff810e607b>] rcu_eqs_enter+0xab/0xc0
> > [ 267.545032] [<ffffffff810e60bb>] rcu_idle_enter+0x2b/0x70
> > [ 267.545032] [<ffffffff8100d44f>] cpu_idle+0x6f/0x100
> > [ 267.545032] [<ffffffff814bf055>] start_secondary+0x205/0x20c
> > [ 267.545032] ---[ end trace 924ae80da035028d ]---
> >
> > After enabling rcu-dyntick tracing, I got following abnormal
> > dynticks_nesting values (13fffffffffffff, ff00000000000001,etc):
> > ...
> > 1 <idle>-0 [002] dN.2 18739.518567: rcu_dyntick: End 0 140000000000000 rcu_idle_exit
> > 2 sshd-696 [002] d..1 18739.518675: rcu_dyntick: ++= 140000000000000 140000000000001 rcu_irq_enter - apf (not present)
> >
> > 3 <idle>-0 [002] d..2 18739.518705: rcu_dyntick: Start 140000000000001 0 rcu_idle_enter
> > 4 <idle>-0 [002] d..2 18739.521252: rcu_dyntick: End 0 1 rcu_irq_enter - apf (page ready)
> > 5 <idle>-0 [002] dN.2 18739.521261: rcu_dyntick: Start 1 0 rcu_irq_exit - apf (page ready)
> > 6 <idle>-0 [002] dN.2 18739.521263: rcu_dyntick: End 0 140000000000000 rcu_idle_exit
> >
> > 7 sshd-696 [002] d..1 18739.521299: rcu_dyntick: --= 140000000000000 13fffffffffffff rcu_irq_exit - apf (not present)
>
> Calling rcu_irq_exit() without a matching rcu_irq_enter() after the
> last rcu_idle_exit() is illegal, isn't it?
It is OK to call rcu_irq_exit() without a matching rcu_irq_enter() -only-
if you have also called rcu_idle_exit() since the last rcu_idle_enter().
There will be a similar rule for rcu_user_exit().
More generally, it is OK to call rcu_irq_exit() without a matching
rcu_irq_enter() only if RCU believes that the CPU you are running on is
non-idle. On 32-bit systems, you are only allowed a few tens of million
such unmatched rcu_irq_enter() calls in a given RCU-non-idle region.
All courtesy of RCU's need to tolerate architectures that enter
interrupt handlers without ever leaving them and vice versa. ;-)
Thanx, Paul
next prev parent reply other threads:[~2012-11-27 16:19 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-27 5:15 [RFC PATCH] Fix abnormal rcu dynticks_nesting values related to async page fault Li Zhong
2012-11-27 5:58 ` [PATCH rcu] use new nesting value for rcu_dyntick trace in rcu_eqs_enter_common Li Zhong
2012-11-27 15:18 ` Paul E. McKenney
2012-11-27 13:07 ` [RFC PATCH] Fix abnormal rcu dynticks_nesting values related to async page fault Gleb Natapov
2012-11-27 14:01 ` Sasha Levin
2012-11-27 15:25 ` Paul E. McKenney
2012-11-27 15:34 ` Frederic Weisbecker
2012-11-27 14:38 ` Frederic Weisbecker
2012-11-27 15:44 ` Gleb Natapov
2012-11-27 15:56 ` Frederic Weisbecker
2012-11-27 16:19 ` Paul E. McKenney
2012-11-27 16:48 ` Frederic Weisbecker
2012-11-27 16:59 ` Paul E. McKenney
2012-11-27 16:39 ` Gleb Natapov
2012-11-27 16:51 ` Frederic Weisbecker
2012-11-27 17:00 ` Gleb Natapov
2012-11-27 17:30 ` Frederic Weisbecker
2012-11-27 17:47 ` Gleb Natapov
2012-11-27 18:12 ` Frederic Weisbecker
2012-11-27 19:27 ` Gleb Natapov
2012-11-27 22:53 ` Frederic Weisbecker
2012-11-27 22:54 ` Frederic Weisbecker
2012-11-27 15:39 ` Frederic Weisbecker
2012-11-27 16:16 ` Paul E. McKenney [this message]
2012-11-27 16:31 ` Frederic Weisbecker
2012-11-27 16:29 ` Frederic Weisbecker
2012-11-28 8:18 ` [RFC PATCH v2] Add rcu user eqs exception hooks for " Li Zhong
2012-11-28 12:55 ` Frederic Weisbecker
2012-11-28 13:53 ` Gleb Natapov
2012-11-28 14:25 ` Frederic Weisbecker
2012-11-29 11:07 ` Gleb Natapov
2012-11-29 14:47 ` Frederic Weisbecker
2012-11-30 9:18 ` [RFC PATCH v3] " Li Zhong
2012-11-30 10:26 ` Gleb Natapov
2012-12-03 2:08 ` Li Zhong
2012-12-03 8:30 ` Gleb Natapov
2012-12-03 9:57 ` Gleb Natapov
2012-12-04 2:35 ` [ PATCH] " Li Zhong
2012-12-18 13:25 ` Gleb Natapov
2012-12-04 2:36 ` [RFC PATCH v3] " Li Zhong
2012-12-04 5:11 ` Gleb Natapov
2012-12-04 5:40 ` Li Zhong
2012-12-04 13:02 ` Gleb Natapov
2012-12-04 14:28 ` Paul E. McKenney
2012-11-29 1:49 ` [RFC PATCH v2] " Li Zhong
2012-11-29 14:40 ` Frederic Weisbecker
2012-11-29 17:25 ` Gleb Natapov
2012-11-30 8:36 ` Li Zhong
2012-11-30 10:08 ` Gleb Natapov
2012-11-27 16:43 ` [RFC PATCH] Fix abnormal rcu dynticks_nesting values related to " Frederic Weisbecker
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=20121127161639.GF2474@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=avi@redhat.com \
--cc=fweisbec@gmail.com \
--cc=gleb@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-next@vger.kernel.org \
--cc=sasha.levin@oracle.com \
--cc=zhong@linux.vnet.ibm.com \
/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.