All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Dave Jones <davej@redhat.com>,
	Linux Kernel <linux-kernel@vger.kernel.org>,
	fweisbec@gmail.com
Subject: Re: WARNING: at kernel/rcutree.c:388 rcu_eqs_enter
Date: Wed, 22 May 2013 02:51:29 -0700	[thread overview]
Message-ID: <20130522095129.GA3578@linux.vnet.ibm.com> (raw)
In-Reply-To: <20130521235813.GA18737@redhat.com>

On Tue, May 21, 2013 at 07:58:13PM -0400, Dave Jones wrote:
> On Tue, May 21, 2013 at 01:31:00PM -0400, Dave Jones wrote:
> 
> I'm also seeing this quite often..
> 
> [  576.156848] WARNING: at kernel/rcutree.c:388 rcu_eqs_enter+0x9b/0xb0()
> [  576.165962] Modules linked in: snd_seq_dummy tun fuse bnep hidp can_raw phonet rfcomm rose bluetooth netrom af_rxrpc scsi_transport_iscsi caif_socket caif ipt_ULOG af_key pppoe pppox af_802154 ppp_generic nfnetlink slhc llc2 can_bcm can irda atm ax25 ipx rds p8023 p8022 crc_ccitt x25 nfc rfkill decnet appletalk psnap llc snd_hda_codec_realtek snd_hda_codec_hdmi xfs libcrc32c microcode snd_hda_intel snd_hda_codec pcspkr i915 snd_hwdep snd_seq snd_seq_device e1000e snd_pcm i2c_algo_bit drm_kms_helper drm ptp snd_page_alloc snd_timer pps_core snd i2c_core soundcore video
> [  576.235012] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.0-rc2+ #2
> [  576.264999]  ffffffff819e8d1d ffffffff81c01e90 ffffffff816599f1 ffffffff81c01ec8
> [  576.265002]  ffffffff8104a171 ffff8802449cdb60 0000000000000000 0000000000000000
> [  576.265005]  ffffffff81c01fd8 ffffffff81c01fd8 ffffffff81c01ed8 ffffffff8104a24a
> [  576.265006] Call Trace:
> [  576.265011]  [<ffffffff816599f1>] dump_stack+0x19/0x1b
> [  576.265015]  [<ffffffff8104a171>] warn_slowpath_common+0x61/0x80
> [  576.265018]  [<ffffffff8104a24a>] warn_slowpath_null+0x1a/0x20
> [  576.265022]  [<ffffffff81100b7b>] rcu_eqs_enter+0x9b/0xb0
> [  576.265025]  [<ffffffff81100ba9>] rcu_idle_enter+0x19/0x40
> [  576.265029]  [<ffffffff810a66e2>] cpu_startup_entry+0x92/0x420
> [  576.265034]  [<ffffffff81645287>] rest_init+0x137/0x140
> [  576.265037]  [<ffffffff81645155>] ? rest_init+0x5/0x140
> [  576.265041]  [<ffffffff81ed3e1a>] start_kernel+0x3ec/0x3f9
> [  576.265044]  [<ffffffff81ed3836>] ? repair_env_string+0x5c/0x5c
> [  576.265048]  [<ffffffff81ed356f>] x86_64_start_reservations+0x2a/0x2c
> [  576.265050]  [<ffffffff81ed363d>] x86_64_start_kernel+0xcc/0xcf
> [  576.265052] ---[ end trace d18cda23dfca05cc ]---
> 
> 	WARN_ON_ONCE((oldval & DYNTICK_TASK_NEST_MASK) == 0);

Hmmm...  Could you please try the patch below?  Untested, probably does
not even compile.

[ . . . ]

> I'm trying to collect all the WARN's in rcutree. 5/29 isn't a bad start :)

;-) ;-) ;-)

Just to make your testing more exiting...  I will be getting on a plane
in a few hours, and will be on planes and in airports for about 30 hours.
I will check in as connectivity permits.

							Thanx, Paul

------------------------------------------------------------------------

trace: Allow idle-safe tracepoints to be called from irq

__DECLARE_TRACE_RCU() currently creates an _rcuidle() tracepoint which
may safely be invoked from what RCU considers to be an idle CPU.
However, these _rcuidle() tracepoints may -not- be invoked from the
handler of an irq taken from idle, because rcu_idle_enter() zeroes
RCU's nesting-level counter, so that the rcu_irq_exit() returning to
idle will trigger a WARN_ON_ONCE().

This commit therefore substitutes rcu_irq_enter() for rcu_idle_exit()
and rcu_irq_exit() for rcu_idle_enter() in order to make the _rcuidle()
tracepoints usable from irq handlers as well as from process context.

Reported-by: Dave Jones <davej@redhat.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Steven Rostedt <rostedt@goodmis.org>

diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h
index 2f322c3..f8e084d 100644
--- a/include/linux/tracepoint.h
+++ b/include/linux/tracepoint.h
@@ -145,8 +145,8 @@ static inline void tracepoint_synchronize_unregister(void)
 				TP_PROTO(data_proto),			\
 				TP_ARGS(data_args),			\
 				TP_CONDITION(cond),			\
-				rcu_idle_exit(),			\
-				rcu_idle_enter());			\
+				rcu_irq_enter(),			\
+				rcu_irq_exit());			\
 	}
 #else
 #define __DECLARE_TRACE_RCU(name, proto, args, cond, data_proto, data_args)


  reply	other threads:[~2013-05-22 10:28 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-21 17:31 rcu_read_lock() used illegally while idle! Dave Jones
2013-05-21 23:58 ` WARNING: at kernel/rcutree.c:388 rcu_eqs_enter Dave Jones
2013-05-22  9:51   ` Paul E. McKenney [this message]
2013-05-23 15:51     ` Dave Jones
2013-05-26 18:17       ` Paul E. McKenney
2013-05-22  9:36 ` rcu_read_lock() used illegally while idle! Paul E. McKenney
2013-05-22 12:49   ` Steven Rostedt
2013-05-23 16:40     ` Dave Jones
2013-05-24 13:46       ` Steven Rostedt
2013-05-24 14:23         ` Dave Jones
2013-05-24 19:23           ` Steven Rostedt
2013-05-24 22:41             ` Dave Jones
2013-05-25 13:59             ` Dave Jones
2013-05-25 18:20               ` Steven Rostedt
2013-05-26 18:04                 ` Jiri Olsa
2013-05-28 20:13                 ` Dave Jones
2013-05-28 20:27                   ` Steven Rostedt
2013-05-28 21:32                   ` [BUG] with rcu nocb, don't call wake up holding rnp->lock (was: rcu_read_lock() used illegally while idle!) Steven Rostedt
2013-05-29  3:29                     ` Paul E. McKenney
2013-06-19 18:39             ` [tip:sched/core] tracing/context-tracking: Add preempt_schedule_context() for tracing tip-bot for Steven Rostedt

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=20130522095129.GA3578@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=davej@redhat.com \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    /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.