From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Borislav Petkov <bp@alien8.de>,
Rolf Eike Beer <eike-kernel@sf-tec.de>,
linux-kernel@vger.kernel.org, dhowells@redhat.com
Subject: Re: Hard lockups using 3.10.0
Date: Thu, 11 Jul 2013 10:50:15 -0700 [thread overview]
Message-ID: <20130711175015.GZ16780@linux.vnet.ibm.com> (raw)
In-Reply-To: <20130711105207.GE25631@dyad.programming.kicks-ass.net>
On Thu, Jul 11, 2013 at 12:52:07PM +0200, Peter Zijlstra wrote:
> On Thu, Jul 11, 2013 at 12:07:21PM +0200, Borislav Petkov wrote:
> > On Thu, Jul 11, 2013 at 11:38:37AM +0200, Rolf Eike Beer wrote:
> > > Hi,
> > >
> > > I'm running 3.10.0 (from openSUSE packages) on an "Intel(R) Core(TM) i7-2600
> > > CPU @ 3.40GHz". I got a hard lockup on one of my CPUs twice, once with
> > > backtrace (see attached image). Graphics is the builtin Intel, used with X 7.6
> > > and KDE 4.10beta2 (basically current openSUSE 12.3+KDE).
> > >
> > > I'm not aware that I had done anything special, just "normal" desktop and
> > > development usage, but no heavy compile work at the moment the lockups
> > > happened.
> >
> > Hmm, I can see commit_creds() doing some rcu pointers assignment and rcu
> > calling into the scheduler which screams about a cpu runqueue of the
> > task we're about to reschedule not being locked. Let's add some more
> > people who should know better.
>
> Ok, for the other people too lazy to bother finding the picture:
>
> http://marc.info/?l=linux-kernel&m=137353587012001&q=p3
>
> So we bug at:
>
> kernel/sched/core.c:519 assert_raw_spin_locked(&task_rq(p)->lock);
>
> and get there through:
>
> resched_task()
> check_preempt_wakeup()
> check_preempt_curr()
> try_to_wake_up()
> autoremove_wake_function()
> __call_rcu_nocb_enqueue()
> __call_rcu()
> commit_creds()
> ____call_usermodehelper()
> ret_from_fork()
>
> That don't make much sense though. Since:
>
> try_to_wake_up()
> ttwu_queue()
> raw_spin_lock(&rq->lock)
> ttwu_do_activate()
> ttwu_do_wakeup()
> check_preempt_curr()
> check_preempt_wakeup()
> resched_task(rq->curr)
> assert_raw_spin_locked(task_rq(p)->lock)
>
> It would somehow mean that 'task_rq(rq->curr) != rq', that's completely
> bonkers, we do after all have rq->lock locked.
>
> I must also say that I've _never_ seen this bug before.
New one on me as well. Is this reproducible? If so, does it happen
when CONFIG_RCU_NOCB_CPU=n? (Given the call to call_rcu_nocb_enqueue(),
I expect that you built with CONFIG_RCU_NOCB_CPU=y.) Can't say that I
see how call_rcu_nocb_enqueue() would have caused this, but...
Well, I supposed that if RCU's callback lists got corrupted, this
(and much else besides) could in fact happen. Does your build have
CONFIG_DEBUG_OBJECTS_RCU_HEAD=y? If not, could you please try it?
Thanx, Paul
next prev parent reply other threads:[~2013-07-11 17:50 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-11 9:38 Hard lockups using 3.10.0 Rolf Eike Beer
2013-07-11 10:07 ` Borislav Petkov
2013-07-11 10:16 ` Peter Zijlstra
2013-07-11 10:52 ` Peter Zijlstra
2013-07-11 17:50 ` Paul E. McKenney [this message]
2013-07-11 19:02 ` Rolf Eike Beer
2013-08-11 6:09 ` Rolf Eike Beer
2013-08-11 8:37 ` Borislav Petkov
2013-08-11 11:10 ` Rolf Eike Beer
2013-08-13 10:38 ` Borislav Petkov
2013-08-13 11:57 ` Rolf Eike Beer
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=20130711175015.GZ16780@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=bp@alien8.de \
--cc=dhowells@redhat.com \
--cc=eike-kernel@sf-tec.de \
--cc=linux-kernel@vger.kernel.org \
--cc=peterz@infradead.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.