linux-next.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: sedat.dilek@gmail.com,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
	linux-next <linux-next@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Stephen Rothwell <sfr@canb.auug.org.au>,
	Kristen Carlson Accardi <kristen@linux.intel.com>
Subject: Re: linux-next: Tree for Feb 4
Date: Wed, 4 Feb 2015 13:53:58 -0800	[thread overview]
Message-ID: <20150204215357.GL5370@linux.vnet.ibm.com> (raw)
In-Reply-To: <1511573.AlfExlvQsO@vostro.rjw.lan>

On Wed, Feb 04, 2015 at 10:54:07PM +0100, Rafael J. Wysocki wrote:
> On Wednesday, February 04, 2015 09:18:03 PM Sedat Dilek wrote:
> > On Wed, Feb 4, 2015 at 9:35 AM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> > > Hi all,
> > >
> > > The next release I will be making will be next-20150209 - which will
> > > probably be after the v3.19 release.
> > >
> > > Changes since 20150203:
> > >
> > > The sound-asoc tree gained a conflict against the sound tree.
> > >
> > > The scsi tree gained a build failure caused by an interaction with the
> > > driver-core tree.  I applied a merge fix patch.
> > >
> > > The akpm-current tree gained a build failure for which I disabled
> > > CONFIG_KASAN.
> > >
> > > Non-merge commits (relative to Linus' tree): 7461
> > >  7314 files changed, 309736 insertions(+), 172363 deletions(-)
> > >
> > > ----------------------------------------------------------------------------
> > >
> > 
> > [ CC linux-rcu | linux-pm | intel_pstate maintainers ]
> 
> Dirk is not the maintainer of intel_pstate any more, CC: Kristen.
> 
> > Hi,
> > 
> > after suspend-and-resume I see the following call-trace:
> 
> Do you see that after CPU1 offline too? 
> 
> > ...
> > [ 1144.482666] Disabling non-boot CPUs ...
> > [ 1144.483000] intel_pstate CPU 1 exiting
> > [ 1144.486064]
> > [ 1144.486065] ===============================
> > [ 1144.486067] smpboot: CPU 1 didn't die...
> > [ 1144.486067] [ INFO: suspicious RCU usage. ]
> > [ 1144.486069] 3.19.0-rc7-next-20150204.1-iniza-small #1 Not tainted
> > [ 1144.486070] -------------------------------
> > [ 1144.486072] include/trace/events/tlb.h:35 suspicious
> > rcu_dereference_check() usage!
> > [ 1144.486073]
> > [ 1144.486073] other info that might help us debug this:
> > [ 1144.486073]
> > [ 1144.486074]
> > [ 1144.486074] RCU used illegally from offline CPU!
> > [ 1144.486074] rcu_scheduler_active = 1, debug_locks = 0
> > [ 1144.486076] no locks held by swapper/1/0.
> > [ 1144.486076]
> > [ 1144.486076] stack backtrace:
> > [ 1144.486079] CPU: 1 PID: 0 Comm: swapper/1 Not tainted
> > 3.19.0-rc7-next-20150204.1-iniza-small #1
> > [ 1144.486080] Hardware name: SAMSUNG ELECTRONICS CO., LTD.
> > 530U3BI/530U4BI/530U4BH/530U3BI/530U4BI/530U4BH, BIOS 13XK 03/28/2013
> > [ 1144.486085]  0000000000000001 ffff88011a44fe18 ffffffff817e370d
> > 0000000000000011
> > [ 1144.486088]  ffff88011a448290 ffff88011a44fe48 ffffffff810d6847
> > ffff8800c66b9600
> > [ 1144.486091]  0000000000000001 ffff88011a44c000 ffffffff81cb3900
> > ffff88011a44fe78
> > [ 1144.486092] Call Trace:
> > [ 1144.486099]  [<ffffffff817e370d>] dump_stack+0x4c/0x65
> > [ 1144.486104]  [<ffffffff810d6847>] lockdep_rcu_suspicious+0xe7/0x120

As near as I can tell, idle_task_exit() is running on an offline CPU,
then calling switch_mm() which contains trace_tlb_flush(), which uses RCU.
And RCU is objecting to being used from a CPU that it is ignoring.

One approach would be to push RCU's idea of when the CPU goes offline
down into arch code in this case, using some Kconfig symbol and
the usual conditional compilation.  Another approach would be to
invoke the trace calls under cpu_online(), for example, for the
first such call in switch_mm():

	if (cpu_online(smp_processor_id()))
		trace_tlb_flush(TLB_FLUSH_ON_TASK_SWITCH, TLB_FLUSH_ALL);

The compiler would discard this if tracing was disabled.

Other thoughts?

Note that this use of RCU from an offline CPU is currently tolerated,
but is vulnerable to delays, for example, due to virtualization.
If a CPU takes more than one jiffy to get from _stop_machine() state
to fully offlined, life can be very hard.

> > [ 1144.486109]  [<ffffffff810b71a5>] idle_task_exit+0x205/0x2c0
> > [ 1144.486113]  [<ffffffff81054c4e>] play_dead_common+0xe/0x50
> > [ 1144.486116]  [<ffffffff81054ca5>] native_play_dead+0x15/0x140
> > [ 1144.486121]  [<ffffffff8102963f>] arch_cpu_idle_dead+0xf/0x20
> > [ 1144.486123]  [<ffffffff810cd89e>] cpu_startup_entry+0x37e/0x580
> > [ 1144.486126]  [<ffffffff81053e20>] start_secondary+0x140/0x150
> > [ 1144.502920] intel_pstate CPU 2 exiting
> > ...
> > 
> > Not sure if this comes from the rcu or pm/intel_pstate area.
> 
> New intel_pstate commits in linux-next are between 7ab0256e57ae and
> a04759924e25 inclusive.  Please check that range first.
> 
> If that doesn't point you to the offender, you can pull the linux-next
> branch of the linux-pm.git tree at:
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next
> 
> and see if that alone triggers the issue for you.  If not, the offender is
> not there.  Otherwise, and if you use the ACPI cpuidle driver, you can
> check the acpi-processor merge point too.

This is almost certainly RCU getting more strict about CPUs using RCU
while offline.

							Thanx, Paul

  reply	other threads:[~2015-02-04 21:54 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-04  8:35 linux-next: Tree for Feb 4 Stephen Rothwell
2015-02-04 12:26 ` Sedat Dilek
2015-02-04 15:16   ` Jens Axboe
2015-02-04 15:21     ` Sedat Dilek
2015-02-04 15:31       ` Jens Axboe
2015-02-04 15:36         ` Sedat Dilek
2015-02-04 15:58           ` Martin K. Petersen
2015-02-04 16:06             ` Sedat Dilek
2015-02-05  3:17               ` Martin K. Petersen
2015-02-05  3:41                 ` Sedat Dilek
2015-02-05 19:46                 ` Sedat Dilek
2015-02-06 15:24                   ` Sedat Dilek
2015-02-04 20:18 ` Sedat Dilek
2015-02-04 21:54   ` Rafael J. Wysocki
2015-02-04 21:53     ` Paul E. McKenney [this message]
2015-02-04 22:59       ` Rafael J. Wysocki
2015-02-04 23:51         ` Paul E. McKenney
2015-02-04 23:58           ` Sedat Dilek
2015-02-05  0:10           ` Paul E. McKenney
2015-02-05  0:30             ` Sedat Dilek
2015-02-05  0:57               ` Paul E. McKenney
2015-02-05  1:18                 ` Sedat Dilek
2015-02-05  1:51                   ` Paul E. McKenney
2015-02-05  1:53                     ` Sedat Dilek
2015-02-05  2:12                       ` Sedat Dilek
2015-02-05  4:13                         ` Paul E. McKenney
2015-02-05  7:14                       ` Dave Hansen
2015-02-05 14:37                         ` Paul E. McKenney
2015-02-05 14:57                         ` Sedat Dilek
2015-02-05 16:58                           ` Paul E. McKenney
2015-02-05 18:03                         ` Steven Rostedt
2015-02-05 18:08                           ` Steven Rostedt
2015-02-05 18:11                             ` Dave Hansen
2015-02-05 18:34                               ` Paul E. McKenney
2015-02-05 18:35                                 ` Dave Hansen
2015-02-05 18:45                                   ` Paul E. McKenney
2015-02-05 19:25                                     ` Sedat Dilek
2015-02-05 19:33                                       ` Paul E. McKenney
2015-02-05 19:42                                         ` Sedat Dilek
2015-02-05 19:58                                       ` Steven Rostedt
2015-02-05 20:07                                         ` Sedat Dilek
2015-02-05 20:22                                           ` Steven Rostedt
2015-02-05 20:50                                             ` Sedat Dilek
2015-02-05 21:45                                               ` Sedat Dilek
2015-02-05 22:09                                                 ` Steven Rostedt
2015-02-05 22:16                                                   ` Sedat Dilek
2015-02-05 23:11                                                     ` Steven Rostedt
2015-02-05 23:53                                                       ` Sedat Dilek
2015-02-06  0:03                                                         ` Sedat Dilek
2015-02-06  0:12                                                         ` Steven Rostedt
2015-02-06  0:14                                                           ` Sedat Dilek
2015-02-04 22:38     ` Sedat Dilek
2015-02-04 23:25       ` Rafael J. Wysocki
2015-02-04 23:54         ` Sedat Dilek
2015-02-04 22:46     ` Sedat Dilek
2015-02-04 23:30       ` Rafael J. Wysocki
2015-02-04 23:48         ` Sedat Dilek
  -- strict thread matches above, loose matches on Subject: below --
2022-02-04  4:14 Stephen Rothwell
2021-02-04  9:13 Stephen Rothwell
2020-02-04  4:19 Stephen Rothwell
2019-02-04  5:35 Stephen Rothwell
2016-02-04  3:48 Stephen Rothwell
2014-02-04  5:07 Stephen Rothwell
     [not found] ` <CAP=VYLpgLC_4yuPtQH_yAd8S9cqQAVu2uB2=Wf3q_zgY4uzkLw@mail.gmail.com>
2014-02-04 22:23   ` Stephen Rothwell
2014-02-05  0:41 ` Stephen Rothwell
2013-02-04  7:39 Stephen Rothwell
2013-02-04 13:56 ` James Hogan
2013-02-04 20:33   ` Stephen Rothwell

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=20150204215357.GL5370@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=kristen@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-next@vger.kernel.org \
    --cc=rafael.j.wysocki@intel.com \
    --cc=rjw@rjwysocki.net \
    --cc=sedat.dilek@gmail.com \
    --cc=sfr@canb.auug.org.au \
    /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;
as well as URLs for NNTP newsgroup(s).