All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: "Ingo Molnar" <mingo@elte.hu>,
	"Linus Torvalds" <torvalds@linux-foundation.org>,
	linux-kernel@vger.kernel.org,
	"Frédéric Weisbecker" <fweisbec@gmail.com>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Peter Zijlstra" <a.p.zijlstra@chello.nl>,
	"Andrew Morton" <akpm@linux-foundation.org>
Subject: Re: [GIT PULL] RCU changes for v3.3
Date: Tue, 24 Jan 2012 08:53:13 -0800	[thread overview]
Message-ID: <20120124165312.GG2531@linux.vnet.ibm.com> (raw)
In-Reply-To: <1327422312.7231.22.camel@edumazet-HP-Compaq-6005-Pro-SFF-PC>

On Tue, Jan 24, 2012 at 05:25:12PM +0100, Eric Dumazet wrote:
> Le jeudi 05 janvier 2012 à 14:54 +0100, Ingo Molnar a écrit :
> > Linus,
> > 
> > Please pull the latest core-rcu-for-linus git tree from:
> > 
> >    git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core-rcu-for-linus
> > 
> >  Thanks,
> 
> Hi guys
> 
> New lockdep warning here :

Hmmm...  Looks like tracing from within the inner idle loop.

Because RCU ignores CPUs in the inner idle loop (after the call to
rcu_idle_enter()), RCU read-side critical sections are not legal there.

One approach would be to delay the call to rcu_idle_enter() until after
the tracing is done, and to ensure that the call to rcu_idle_exit() happens
before any tracing.  I am not seeing perf_trace_power(), so need to
update and look again.  Or are you looking at -next rather than mainline?

							Thanx, Paul

> [  850.464548] 
> [  850.464550] ===============================
> [  850.464553] [ INFO: suspicious RCU usage. ]
> [  850.464555] 3.3.0-rc1+ #569 Not tainted
> [  850.464557] -------------------------------
> [  850.464559] include/trace/events/power.h:102 suspicious rcu_dereference_check() usage!
> [  850.464562] 
> [  850.464562] other info that might help us debug this:
> [  850.464564] 
> [  850.464566] 
> [  850.464567] rcu_scheduler_active = 1, debug_locks = 1
> [  850.464569] RCU used illegally from extended quiescent state!
> [  850.464571] no locks held by swapper/1/0.
> [  850.464572] 
> [  850.464572] stack backtrace:
> [  850.464575] Pid: 0, comm: swapper/1 Not tainted 3.3.0-rc1+ #569
> [  850.464578] Call Trace:
> [  850.464584]  [<ffffffff81094a2a>] lockdep_rcu_suspicious+0xca/0xf0
> [  850.464588]  [<ffffffff8100abb9>] mwait_idle+0x499/0x4c0
> [  850.464592]  [<ffffffff810011e6>] cpu_idle+0x96/0xe0
> [  850.464597]  [<ffffffff8176bbae>] start_secondary+0x1df/0x1e3
> [  850.464765] ------------[ cut here ]------------
> [  850.464769] WARNING: at include/linux/rcupdate.h:242 __perf_event_overflow+0x27c/0x2c0()
> [  850.464771] Hardware name: ProLiant BL460c G6
> [  850.464772] Modules linked in: ipmi_devintf nfsd exportfs ipmi_si hpilo bnx2x crc32c libcrc32c mdio [last unloaded: scsi_wait_scan]
> [  850.464783] Pid: 0, comm: swapper/1 Not tainted 3.3.0-rc1+ #569
> [  850.464784] Call Trace:
> [  850.464788]  [<ffffffff81038f1f>] warn_slowpath_common+0x7f/0xc0
> [  850.464791]  [<ffffffff81038f7a>] warn_slowpath_null+0x1a/0x20
> [  850.464794]  [<ffffffff810f8f2c>] __perf_event_overflow+0x27c/0x2c0
> [  850.464797]  [<ffffffff8177126e>] ? printk+0x41/0x43
> [  850.464801]  [<ffffffff810a1ff6>] ? __module_text_address+0x16/0x80
> [  850.464804]  [<ffffffff810f9019>] perf_swevent_overflow+0xa9/0xc0
> [  850.464806]  [<ffffffff810f909f>] perf_swevent_event+0x6f/0x90
> [  850.464809]  [<ffffffff810f9136>] perf_tp_event+0x76/0xf0
> [  850.464813]  [<ffffffff810f153e>] perf_trace_power+0xbe/0xe0
> [  850.464816]  [<ffffffff8100ab2f>] ? mwait_idle+0x40f/0x4c0
> [  850.464818]  [<ffffffff8100ab2f>] mwait_idle+0x40f/0x4c0
> [  850.464821]  [<ffffffff810011e6>] cpu_idle+0x96/0xe0
> [  850.464824]  [<ffffffff8176bbae>] start_secondary+0x1df/0x1e3
> [  850.464826] ---[ end trace d3b6df8c2cde8681 ]---
> [  850.464828] ------------[ cut here ]------------
> [  850.464831] WARNING: at include/linux/rcupdate.h:242 perf_output_begin+0x2f6/0x330()
> [  850.464832] Hardware name: ProLiant BL460c G6
> [  850.464833] Modules linked in: ipmi_devintf nfsd exportfs ipmi_si hpilo bnx2x crc32c libcrc32c mdio [last unloaded: scsi_wait_scan]
> [  850.464842] Pid: 0, comm: swapper/1 Tainted: G        W    3.3.0-rc1+ #569
> [  850.464844] Call Trace:
> [  850.464846]  [<ffffffff81038f1f>] warn_slowpath_common+0x7f/0xc0
> [  850.464849]  [<ffffffff81038f7a>] warn_slowpath_null+0x1a/0x20
> [  850.464852]  [<ffffffff810fc2f6>] perf_output_begin+0x2f6/0x330
> [  850.464855]  [<ffffffff810769e5>] ? sched_clock_cpu+0xc5/0x120
> [  850.464858]  [<ffffffff8109378d>] ? trace_hardirqs_off+0xd/0x10
> [  850.464860]  [<ffffffff81076a8f>] ? local_clock+0x4f/0x60
> [  850.464863]  [<ffffffff810f223d>] ? __perf_event_header__init_id+0xad/0xf0
> [  850.464866]  [<ffffffff810f8c03>] ? perf_prepare_sample+0x63/0x110
> [  850.464869]  [<ffffffff810f8e3d>] __perf_event_overflow+0x18d/0x2c0
> [  850.464871]  [<ffffffff810f8df5>] ? __perf_event_overflow+0x145/0x2c0
> [  850.464874]  [<ffffffff8177126e>] ? printk+0x41/0x43
> [  850.464876]  [<ffffffff810f9019>] perf_swevent_overflow+0xa9/0xc0
> [  850.464879]  [<ffffffff810f909f>] perf_swevent_event+0x6f/0x90
> [  850.464881]  [<ffffffff810f9136>] perf_tp_event+0x76/0xf0
> [  850.464884]  [<ffffffff810f153e>] perf_trace_power+0xbe/0xe0
> [  850.464887]  [<ffffffff8100ab2f>] ? mwait_idle+0x40f/0x4c0
> [  850.464890]  [<ffffffff8100ab2f>] mwait_idle+0x40f/0x4c0
> [  850.464893]  [<ffffffff810011e6>] cpu_idle+0x96/0xe0
> [  850.464895]  [<ffffffff8176bbae>] start_secondary+0x1df/0x1e3
> [  850.464897] ---[ end trace d3b6df8c2cde8682 ]---
> [  850.464899] 
> [  850.464900] ===============================
> [  850.464901] [ INFO: suspicious RCU usage. ]
> [  850.464902] 3.3.0-rc1+ #569 Tainted: G        W   
> [  850.464904] -------------------------------
> [  850.464905] kernel/events/ring_buffer.c:120 suspicious rcu_dereference_check() usage!
> [  850.464907] 
> [  850.464907] other info that might help us debug this:
> [  850.464908] 
> [  850.464909] 
> [  850.464910] rcu_scheduler_active = 1, debug_locks = 1
> [  850.464911] RCU used illegally from extended quiescent state!
> [  850.464913] 2 locks held by swapper/1/0:
> [  850.464914]  #0:  (rcu_read_lock){.+.+..}, at: [<ffffffff810f8df5>] __perf_event_overflow+0x145/0x2c0
> [  850.464920]  #1:  (rcu_read_lock){.+.+..}, at: [<ffffffff810fc03f>] perf_output_begin+0x3f/0x330
> [  850.464924] 
> [  850.464925] stack backtrace:
> [  850.464927] Pid: 0, comm: swapper/1 Tainted: G        W    3.3.0-rc1+ #569
> [  850.464928] Call Trace:
> [  850.464931]  [<ffffffff81094a2a>] lockdep_rcu_suspicious+0xca/0xf0
> [  850.464933]  [<ffffffff810fc268>] perf_output_begin+0x268/0x330
> [  850.464936]  [<ffffffff810fc03f>] ? perf_output_begin+0x3f/0x330
> [  850.464938]  [<ffffffff810769e5>] ? sched_clock_cpu+0xc5/0x120
> [  850.464941]  [<ffffffff8109378d>] ? trace_hardirqs_off+0xd/0x10
> [  850.464943]  [<ffffffff81076a8f>] ? local_clock+0x4f/0x60
> [  850.464946]  [<ffffffff810f223d>] ? __perf_event_header__init_id+0xad/0xf0
> [  850.464949]  [<ffffffff810f8c03>] ? perf_prepare_sample+0x63/0x110
> [  850.464952]  [<ffffffff810f8e3d>] __perf_event_overflow+0x18d/0x2c0
> [  850.464954]  [<ffffffff810f8df5>] ? __perf_event_overflow+0x145/0x2c0
> [  850.464957]  [<ffffffff8177126e>] ? printk+0x41/0x43
> [  850.464959]  [<ffffffff810f9019>] perf_swevent_overflow+0xa9/0xc0
> [  850.464962]  [<ffffffff810f909f>] perf_swevent_event+0x6f/0x90
> [  850.464964]  [<ffffffff810f9136>] perf_tp_event+0x76/0xf0
> [  850.464967]  [<ffffffff810f153e>] perf_trace_power+0xbe/0xe0
> [  850.464970]  [<ffffffff8100ab2f>] ? mwait_idle+0x40f/0x4c0
> [  850.464973]  [<ffffffff8100ab2f>] mwait_idle+0x40f/0x4c0
> [  850.464975]  [<ffffffff810011e6>] cpu_idle+0x96/0xe0
> [  850.464978]  [<ffffffff8176bbae>] start_secondary+0x1df/0x1e3
> [  850.464980] ------------[ cut here ]------------
> [  850.464983] WARNING: at include/linux/rcupdate.h:248 perf_output_end+0x5b/0x70()
> [  850.464984] Hardware name: ProLiant BL460c G6
> [  850.464985] Modules linked in: ipmi_devintf nfsd exportfs ipmi_si hpilo bnx2x crc32c libcrc32c mdio [last unloaded: scsi_wait_scan]
> [  850.464994] Pid: 0, comm: swapper/1 Tainted: G        W    3.3.0-rc1+ #569
> [  850.464995] Call Trace:
> [  850.464998]  [<ffffffff81038f1f>] warn_slowpath_common+0x7f/0xc0
> [  850.465001]  [<ffffffff81038f7a>] warn_slowpath_null+0x1a/0x20
> [  850.465003]  [<ffffffff810fc38b>] perf_output_end+0x5b/0x70
> [  850.465006]  [<ffffffff810f8edc>] __perf_event_overflow+0x22c/0x2c0
> [  850.465008]  [<ffffffff810f8df5>] ? __perf_event_overflow+0x145/0x2c0
> [  850.465011]  [<ffffffff810f9019>] perf_swevent_overflow+0xa9/0xc0
> [  850.465014]  [<ffffffff810f909f>] perf_swevent_event+0x6f/0x90
> [  850.465016]  [<ffffffff810f9136>] perf_tp_event+0x76/0xf0
> [  850.465019]  [<ffffffff810f153e>] perf_trace_power+0xbe/0xe0
> [  850.465022]  [<ffffffff8100ab2f>] ? mwait_idle+0x40f/0x4c0
> [  850.465025]  [<ffffffff8100ab2f>] mwait_idle+0x40f/0x4c0
> [  850.465027]  [<ffffffff810011e6>] cpu_idle+0x96/0xe0
> [  850.465030]  [<ffffffff8176bbae>] start_secondary+0x1df/0x1e3
> [  850.465032] ---[ end trace d3b6df8c2cde8683 ]---
> [  850.465033] ------------[ cut here ]------------
> [  850.465036] WARNING: at include/linux/rcupdate.h:248 __perf_event_overflow+0x2a6/0x2c0()
> [  850.465037] Hardware name: ProLiant BL460c G6
> [  850.465038] Modules linked in: ipmi_devintf nfsd exportfs ipmi_si hpilo bnx2x crc32c libcrc32c mdio [last unloaded: scsi_wait_scan]
> [  850.465047] Pid: 0, comm: swapper/1 Tainted: G        W    3.3.0-rc1+ #569
> [  850.465048] Call Trace:
> [  850.465051]  [<ffffffff81038f1f>] warn_slowpath_common+0x7f/0xc0
> [  850.465054]  [<ffffffff81038f7a>] warn_slowpath_null+0x1a/0x20
> [  850.465056]  [<ffffffff810f8f56>] __perf_event_overflow+0x2a6/0x2c0
> [  850.465059]  [<ffffffff810f8df5>] ? __perf_event_overflow+0x145/0x2c0
> [  850.465061]  [<ffffffff810f9019>] perf_swevent_overflow+0xa9/0xc0
> [  850.465064]  [<ffffffff810f909f>] perf_swevent_event+0x6f/0x90
> [  850.465066]  [<ffffffff810f9136>] perf_tp_event+0x76/0xf0
> [  850.465069]  [<ffffffff810f153e>] perf_trace_power+0xbe/0xe0
> [  850.465072]  [<ffffffff8100ab2f>] ? mwait_idle+0x40f/0x4c0
> [  850.465075]  [<ffffffff8100ab2f>] mwait_idle+0x40f/0x4c0
> [  850.465077]  [<ffffffff810011e6>] cpu_idle+0x96/0xe0
> [  850.465080]  [<ffffffff8176bbae>] start_secondary+0x1df/0x1e3
> [  850.465082] ---[ end trace d3b6df8c2cde8684 ]---
> [  850.467615] 
> [  850.467617] ===============================
> [  850.467619] [ INFO: suspicious RCU usage. ]
> [  850.467621] 3.3.0-rc1+ #569 Tainted: G        W   
> [  850.467624] -------------------------------
> [  850.467626] include/trace/events/power.h:127 suspicious rcu_dereference_check() usage!
> [  850.467629] 
> [  850.467629] other info that might help us debug this:
> [  850.467630] 
> [  850.467632] 
> [  850.467632] rcu_scheduler_active = 1, debug_locks = 1
> [  850.467634] RCU used illegally from extended quiescent state!
> [  850.467636] no locks held by swapper/1/0.
> [  850.467637] 
> [  850.467638] stack backtrace:
> [  850.467640] Pid: 0, comm: swapper/1 Tainted: G        W    3.3.0-rc1+ #569
> [  850.467642] Call Trace:
> [  850.467646]  [<ffffffff81094a2a>] lockdep_rcu_suspicious+0xca/0xf0
> [  850.467650]  [<ffffffff8100a9cd>] mwait_idle+0x2ad/0x4c0
> [  850.467653]  [<ffffffff810011e6>] cpu_idle+0x96/0xe0
> [  850.467656]  [<ffffffff8176bbae>] start_secondary+0x1df/0x1e3
> 
> 


  reply	other threads:[~2012-01-24 16:53 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-05 13:54 [GIT PULL] RCU changes for v3.3 Ingo Molnar
2012-01-24 16:25 ` Eric Dumazet
2012-01-24 16:53   ` Paul E. McKenney [this message]
2012-01-24 17:04     ` Frederic Weisbecker
2012-01-24 19:09       ` Paul E. McKenney
2012-01-24 17:13     ` Eric Dumazet
2012-01-24 19:41       ` Paul E. McKenney
2012-01-24 19:57         ` Eric Dumazet
2012-01-24 21:11           ` Paul E. McKenney
2012-01-24 22:07             ` Mark Brown
2012-01-24 22:43               ` Paul E. McKenney
2012-01-24 23:51                 ` Mark Brown
2012-01-25  1:36                   ` Paul E. McKenney
2012-01-25 11:59                     ` Mark Brown
2012-01-24 23:29             ` Paul E. McKenney
2012-01-24 23:46               ` Eric Dumazet
2012-01-24 23:54                 ` Paul E. McKenney
2012-03-07 11:44               ` Sergey Senozhatsky
2012-03-07 14:09                 ` Josh Boyer
2012-03-07 15:27                   ` Paul E. McKenney
2012-03-07 15:49                     ` Josh Boyer
2012-03-08 21:26                       ` 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=20120124165312.GG2531@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=akpm@linux-foundation.org \
    --cc=eric.dumazet@gmail.com \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.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.