[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150131101603.35fa43f7@uranus>
Date: Sat, 31 Jan 2015 10:16:03 +0100
From: Bruno Prémont <bonbons@...ux-vserver.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: "Rafael J. Wysocki" <rjw@...ysocki.net>,
Ingo Molnar <mingo@...nel.org>,
Peter Hurley <peter@...leysoftware.com>,
Davidlohr Bueso <dave@...olabs.net>,
Peter Zijlstra <peterz@...radead.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Thomas Gleixner <tglx@...utronix.de>,
Ilya Dryomov <ilya.dryomov@...tank.com>,
Mike Galbraith <umgwanakikbuti@...il.com>,
Oleg Nesterov <oleg@...hat.com>
Subject: Re: Linux 3.19-rc5
On Thu, 29 Jan 2015 17:25:07 Linus Torvalds wrote:
> On Thu, Jan 29, 2015 at 5:12 PM, Linus Torvalds wrote:
> >
> > The WARN() was already changed to a WARN_ONCE().
>
> Oh, but I notice that the "__set_current_state(TASK_RUNNING) ends up
> always happening.
>
> So I think the right fix is to:
>
> - warn once like we do
>
> - but *not* do that __set_current_state() which was always total
> crap anyway
>
> Why do I say "total crap"? Because of two independent issues:
>
> (a) it actually changes behavior for a debug vs non-debug kernel,
> which is a really bad idea to begin with
>
> (b) it's really wrong. The whole "nested sleep" case was never a
> major bug to begin with, just a possible inefficiency where constant
> nested sleeps would possibly make the outer sleep not sleep. But that
> "could possibly make" case was the unlikely case, and the debug patch
> made it happen *all* the time by explicitly setting things running.
>
> So I think the proper patch is the attached.
>
> The comment is also crap. The comment says
>
> "Blocking primitives will set (and therefore destroy)
> current->state [...]"
>
> but the reality is that they *may* set it, and only in the unlikely
> slow-path where they actually block.
>
> So doing this in "__may_sleep()" is just bogus and horrible horrible
> crap. It turns the "harmless ugliness" into a real *harmful* bug. The
> key word of "__may_sleep()" is that "MAY" part. It's a debug thing to
> make relatively rare cases show up.
>
> PeterZ, please don't make "debugging" patches like this. Ever again.
> Because this was just stupid, and it took me too long to realize that
> despite the warning being shut up, the debug patch was still actively
> doing bad bad things.
>
> Ingo, maybe you'd want to apply this through the scheduler tree, the
> way you already did the WARN_ONCE() thing.
>
> Bruno, does this finally actually fix your pccard thing?
I will report back on Wednesday when I'm back home from FOSDEM. I don't
have the affected machine at hand at the moment.
Thanks for looking into it!
Bruno
> Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists