From: Davidlohr Bueso <dave@stgolabs.net>
To: "Bruno Prémont" <bonbons@linux-vserver.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Peter Zijlstra <peterz@infradead.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
tglx@linutronix.de, ilya.dryomov@inktank.com,
umgwanakikbuti@gmail.com, oleg@redhat.com
Subject: Re: Linux 3.19-rc5
Date: Wed, 21 Jan 2015 14:12:00 -0800 [thread overview]
Message-ID: <1421878320.4903.17.camel@stgolabs.net> (raw)
In-Reply-To: <20150121223701.0c580f7b@neptune.home>
On Wed, 2015-01-21 at 22:37 +0100, Bruno Prémont wrote:
> On Wed, 21 January 2015 Bruno Prémont wrote:
> > On Tue, 20 January 2015 Linus Torvalds wrote:
> > > On Tue, Jan 20, 2015 at 6:02 AM, Bruno Prémont wrote:
> > > >
> > > > No idea yet which rc is the offender (nor exact patch), but on my not
> > > > so recent UP laptop with a pccard slot I have 2 pccardd kernel threads
> > > > converting my laptop into a heater.
> > > >
> > > > lspci for affected nodes:
> > > > 02:06.0 CardBus bridge [0607]: O2 Micro, Inc. OZ711EC1 SmartCardBus Controller [1217:7113] (rev 20)
> > > > 02:06.1 CardBus bridge [0607]: O2 Micro, Inc. OZ711EC1 SmartCardBus Controller [1217:7113] (rev 20)
> > > >
> > > > Very basics I have, before I attempt any bisection:
> > >
> > > Hmm. I'm not seeing anything recent changing anything in this area, so
> > > I suspect that unless somebody else steps up and says "Ahh, that
> > > sounds like xyz", your bisection is the best option.
>
> Bisecting to the end did point me at (the warning traces produced in great
> quantities might not be the very same issue as the abusive CPU usage, but
> certainly look very related):
> [CCing people on CC for the patch]
>
> commit 8eb23b9f35aae413140d3fda766a98092c21e9b0
> Author: Peter Zijlstra <peterz@infradead.org>
> Date: Wed Sep 24 10:18:55 2014 +0200
>
> sched: Debug nested sleeps
>
> Validate we call might_sleep() with TASK_RUNNING, which catches places
> where we nest blocking primitives, eg. mutex usage in a wait loop.
>
> Since all blocking is arranged through task_struct::state, nesting
> this will cause the inner primitive to set TASK_RUNNING and the outer
> will thus not block.
>
> Another observed problem is calling a blocking function from
> schedule()->sched_submit_work()->blk_schedule_flush_plug() which will
> then destroy the task state for the actual __schedule() call that
> comes after it.
>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
> Cc: tglx@linutronix.de
> Cc: ilya.dryomov@inktank.com
> Cc: umgwanakikbuti@gmail.com
> Cc: oleg@redhat.com
> Cc: Linus Torvalds <torvalds@linux-foundation.org>
> Link: http://lkml.kernel.org/r/20140924082242.591637616@infradead.org
> Signed-off-by: Ingo Molnar <mingo@kernel.org>
>
> Which does produce the following trace (hand-copied most important parts of it):
> Warning: CPU 0 PID: 68 at kernel/sched/core.c:7311 __might_sleep+0x143/0x170
> do not call blocking ops when !TASK_RUNNING; state=1 set at [<c1436390>] pccardd+0xa0/0x3e0
> ...
> Call trace:
> ...
> __might_sleep+0x143/0x170
> ? pccardd+0xa0/0x3e0
> ? pccardd+0xa0/0x3e0
> mutex_lock+0x17/0x2a
> pccardd+0xe9/0x3e0
> ? pcmcia_socket_uevent+0x30/0x30
>
> pccardd() is located in drivers/pcmcia/cs.c and seems to be of the structure
> Peter's patch wants to warn about.
Yeah setting current to interruptable so early in the game is bogus. It
should be set after unlocking the skt_mutex.
next prev parent reply other threads:[~2015-01-21 22:12 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-18 9:17 Linux 3.19-rc5 Linus Torvalds
2015-01-19 18:02 ` Bruno Prémont
2015-01-20 6:24 ` Linus Torvalds
2015-01-21 20:37 ` Bruno Prémont
2015-01-21 21:37 ` Bruno Prémont
2015-01-21 22:12 ` Davidlohr Bueso [this message]
2015-01-21 22:54 ` Peter Hurley
2015-01-30 1:22 ` Rafael J. Wysocki
2015-01-30 1:12 ` Linus Torvalds
2015-01-30 1:25 ` Linus Torvalds
2015-01-30 1:35 ` Linus Torvalds
2015-01-30 2:06 ` Rafael J. Wysocki
2015-01-30 15:47 ` Oleg Nesterov
2015-01-31 18:32 ` Linus Torvalds
2015-01-31 20:16 ` Peter Zijlstra
2015-01-31 21:54 ` Linus Torvalds
2015-02-02 13:19 ` Peter Zijlstra
2015-02-01 19:43 ` Oleg Nesterov
2015-02-01 20:09 ` Linus Torvalds
2015-02-01 20:19 ` Oleg Nesterov
2015-02-02 15:34 ` Peter Zijlstra
2015-01-31 9:16 ` Bruno Prémont
2015-01-31 9:48 ` Peter Zijlstra
2015-02-03 11:18 ` Ingo Molnar
2015-02-05 21:14 ` Bruno Prémont
2015-02-06 11:50 ` Peter Zijlstra
2015-02-06 16:02 ` Linus Torvalds
2015-02-06 16:39 ` Peter Zijlstra
2015-02-06 16:46 ` Linus Torvalds
2015-01-30 1:49 ` Rafael J. Wysocki
2015-02-02 9:48 ` Zdenek Kabelac
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=1421878320.4903.17.camel@stgolabs.net \
--to=dave@stgolabs.net \
--cc=bonbons@linux-vserver.org \
--cc=ilya.dryomov@inktank.com \
--cc=linux-kernel@vger.kernel.org \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=umgwanakikbuti@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox