[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150709075650.GA2673@pathway.suse.cz>
Date: Thu, 9 Jul 2015 09:56:50 +0200
From: Petr Mladek <pmladek@...e.com>
To: Steven Rostedt <rostedt@...dmis.org>
Cc: Joe Perches <joe@...ches.com>,
"Luis R. Rodriguez" <mcgrof@...e.com>,
Gavin Hu <gavin.hu.2010@...il.com>,
linux-kernel@...r.kernel.org, Alex Elder <elder@...aro.org>,
Peter Hurley <peter@...leysoftware.com>,
Tejun Heo <tj@...nel.org>, cxie4@...vell.com, cldu@...vell.com,
xjian@...vell.com, fswu@...vell.com, Jan Kara <jack@...e.cz>
Subject: Re: printk: preempt_disable with long time resulting in
softlockup/RCU stall issues
On Wed 2015-07-08 14:00:17, Steven Rostedt wrote:
> On Wed, 08 Jul 2015 10:35:29 -0700
> Joe Perches <joe@...ches.com> wrote:
>
> > On Wed, 2015-07-08 at 19:04 +0200, Luis R. Rodriguez wrote:
> > > On Wed, Jul 08, 2015 at 05:08:35PM +0800, Gavin Hu wrote:
> > > > Hi,
> > > >
> > > > Yes. We should disable the printk_limit feature when panic to avoid missing
> > > > messages.
> > >
> > > Sounds like you have been looking into it and have a good idea of what you
> > > want to do, why not try it and send some RFC patches ?
> > >
> > > While at it, then we could consider doing different things depending on the
> > > message type. KERN_EMERG would disable preemption, whereas KERN_INFO may not be
> > > so critical to require it.
> >
> > That might be a bit difficult to implement with complete correctness
> > given KERN_EMERG use and continuation lines.
> >
>
> Or just have the current context determine what to do. If printk() was
> called with preemption or interrupts disabled, it flushes the full
> buffer before returning, otherwise it allows the writes to console be
> preempted.
I am afraid that any variant of this approach will make the original
problem even worse. There will be more messages waiting and it will
increase the chance of the softlockup.
I guess that people call printk() with disabled interrupts or
preemption with the naive hope that it will be fast (just store
the message in the ring buffer and come back).
I think that we really need to break the console output when it
takes too long and schedule it somewhere else.
Best Regards,
Petr
--
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