From: Frederic Weisbecker <fweisbec@gmail.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Jan Kara <jack@suse.cz>,
Andrew Morton <akpm@linux-foundation.org>,
LKML <linux-kernel@vger.kernel.org>,
Michal Hocko <mhocko@suse.cz>
Subject: Re: [PATCH 3/4] printk: Defer printing to irq work when we printed too much
Date: Fri, 8 Nov 2013 00:44:55 +0100 [thread overview]
Message-ID: <20131107234453.GF28130@localhost.localdomain> (raw)
In-Reply-To: <20131107183717.0fc9eb6e@gandalf.local.home>
On Thu, Nov 07, 2013 at 06:37:17PM -0500, Steven Rostedt wrote:
> On Fri, 8 Nov 2013 00:21:51 +0100
> Frederic Weisbecker <fweisbec@gmail.com> wrote:
>
> > Ok I see now.
> >
> > But then this irq_work based solution won't work if, say, you run in full dynticks
> > mode. Also the hook on the timer interrupt is something that I wish we get rid
> > of on archs that can trigger self-IPIs.
>
> Do we really want that? What about users that use LAZY? That is, the
> work isn't that important to trigger right now (added interrupt
> expense).
Ah right, I forgot that :)
>
> >
> > Notwithstanding it's going to have scalibility issues as irq work then converges
> > to a single list for unbound works.
>
> Well, it doesn't seem to be something that would be called often. All
> CPUs checking a variable that is seldom changed should not have any
> scalability issues. Unless of course it happens to share a cache line
> with a variable that does change often.
Right, if it was printk specific code I wouldn't mind much in fact. But having that in
such a globally available API like irq work make me feel uncomfortable.
>
> >
> > Offloading to a workqueue would be perhaps better, and writing to the serial
> > console could then be done with interrupts enabled, preemptible context, etc...
>
> Oh God no ;-) Adding workqueue logic into printk just spells a
> nightmare of much more complexity for a critical kernel infrastructure.
True, in fact I was thinking about raising an irq work that enqueues a workqueue, circumvoluted right? ;)
But it would make it safe, as irq work can be enqueued everywhere, and as it seems that
we can have high bandwidth of stuffs to print to the serial device, a process context looks much saner to me.
next prev parent reply other threads:[~2013-11-07 23:45 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-07 21:48 [PATCH 0/4 v6] Avoid softlockups in console_unlock() Jan Kara
2013-11-07 21:48 ` [PATCH 1/4] printk: Remove separate printk_sched buffers and use printk buf instead Jan Kara
2013-11-07 21:48 ` [PATCH 2/4] irq_work: Provide a irq work that can be processed on any cpu Jan Kara
2013-11-07 22:13 ` Frederic Weisbecker
2013-11-07 22:19 ` Jan Kara
2013-11-07 22:23 ` Frederic Weisbecker
2013-11-07 22:50 ` Jan Kara
2013-11-07 22:54 ` Frederic Weisbecker
2013-11-07 23:01 ` Jan Kara
2013-11-07 23:31 ` Steven Rostedt
2013-11-08 10:18 ` Jan Kara
2013-11-07 22:32 ` Frederic Weisbecker
2013-11-07 21:48 ` [PATCH 3/4] printk: Defer printing to irq work when we printed too much Jan Kara
2013-11-07 22:43 ` Frederic Weisbecker
2013-11-07 22:57 ` Jan Kara
2013-11-07 23:21 ` Frederic Weisbecker
2013-11-07 23:37 ` Steven Rostedt
2013-11-07 23:44 ` Frederic Weisbecker [this message]
2013-11-07 23:46 ` Frederic Weisbecker
2013-11-08 10:21 ` Jan Kara
2013-11-22 23:27 ` Andrew Morton
2013-11-25 12:08 ` Jan Kara
2013-11-11 21:54 ` Pavel Machek
2013-11-11 22:17 ` Jan Kara
2013-11-16 11:35 ` Pavel Machek
2013-11-07 22:59 ` Steven Rostedt
2013-11-07 21:48 ` [PATCH 4/4] printk: Use unbound irq work for printing and waking Jan Kara
-- strict thread matches above, loose matches on Subject: below --
2013-08-21 8:08 [PATCH 0/4 v6] Avoid softlockups in console_unlock() Jan Kara
2013-08-21 8:08 ` [PATCH 3/4] printk: Defer printing to irq work when we printed too much Jan Kara
2013-08-21 19:06 ` Steven Rostedt
2013-08-14 13:28 [PATCH 0/4 v5] Avoid softlockups in console_unlock() Jan Kara
2013-08-14 13:28 ` [PATCH 3/4] printk: Defer printing to irq work when we printed too much Jan Kara
2013-08-15 1:38 ` Steven Rostedt
2013-08-15 7:52 ` Jan Kara
2013-08-15 13:26 ` Steven Rostedt
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=20131107234453.GF28130@localhost.localdomain \
--to=fweisbec@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=jack@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=mhocko@suse.cz \
--cc=rostedt@goodmis.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 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).