From: Ingo Molnar <mingo@elte.hu>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Artem Bityutskiy <dedekind1@gmail.com>,
David Woodhouse <dwmw2@infradead.org>,
LKML <linux-kernel@vger.kernel.org>,
"Koskinen Aaro \(Nokia-D/Helsinki\)" <aaro.koskinen@nokia.com>,
linux-mtd <linux-mtd@lists.infradead.org>,
Simon Kagstrom <simon.kagstrom@netinsight.net>,
Andrew Morton <akpm@linux-foundation.org>,
Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [PATCH] panic.c: export panic_on_oops
Date: Mon, 12 Oct 2009 15:25:03 +0200 [thread overview]
Message-ID: <20091012132503.GD25464@elte.hu> (raw)
In-Reply-To: <20091012140821.5dfa1598@lxorguk.ukuu.org.uk>
* Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
> > See my reply to David Woodhouse, i think we should add support for
> > buffering in kernel/printk.c and that would both fix your problems,
> > would simplify the driver (significantly!) and would expose the
> > generic buffering capability to other console drivers as well.
>
> Buffering printk in general is bad. [...]
The general (and default) case would be 0 buffering - i.e. finegrained
per line calls to ->console_write().
This is the common case indeed, we want to get console output out as
soon as possible and as finegrained as possible - as we dont know when a
failure mode removes our ability to print anything else.
My argument is that instead of a complicated dance of workqueue versus
non-workqueue printk support in the MTD code in drivers/mtd/mtdoops.c,
this should be done at the generic console level.
It's not hard, nor complex if done at the right level, nor does it
impact the regular zero-buffering codepath in a significant way - and
the end result would be a significantly simpler (and, in turn, more
robust) MTD printk driver.
I care about this because i still havent given up hope that the company
you are working for will finally give us some permanent storage in the
CPU itself, so that we can have cross-reboot printk buffering ;-) If
that storage is in the form of Flash, then buffering (to optimize write
cycles) is probably a must.
> [...] Given a driver needs only to provide about 6 lines of code using
> a kfifo is it really that hard for the odd code that wants to buffer
> to do that ?
Avoiding a workqueue in printk is about the critical path of failure and
about complexity in general.
I dont see how kfifo helps here much - kfifo is really just a relatively
simple dynamic memory buffer abstraction - while most of the complexity
here is elsewhere. Could you explain what you meant with kfifo here
please?
Ingo
WARNING: multiple messages have this Message-ID (diff)
From: Ingo Molnar <mingo@elte.hu>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Simon Kagstrom <simon.kagstrom@netinsight.net>,
Artem Bityutskiy <dedekind1@gmail.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Andrew Morton <akpm@linux-foundation.org>,
"Koskinen Aaro (Nokia-D/Helsinki)" <aaro.koskinen@nokia.com>,
David Woodhouse <dwmw2@infradead.org>,
linux-mtd <linux-mtd@lists.infradead.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] panic.c: export panic_on_oops
Date: Mon, 12 Oct 2009 15:25:03 +0200 [thread overview]
Message-ID: <20091012132503.GD25464@elte.hu> (raw)
In-Reply-To: <20091012140821.5dfa1598@lxorguk.ukuu.org.uk>
* Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
> > See my reply to David Woodhouse, i think we should add support for
> > buffering in kernel/printk.c and that would both fix your problems,
> > would simplify the driver (significantly!) and would expose the
> > generic buffering capability to other console drivers as well.
>
> Buffering printk in general is bad. [...]
The general (and default) case would be 0 buffering - i.e. finegrained
per line calls to ->console_write().
This is the common case indeed, we want to get console output out as
soon as possible and as finegrained as possible - as we dont know when a
failure mode removes our ability to print anything else.
My argument is that instead of a complicated dance of workqueue versus
non-workqueue printk support in the MTD code in drivers/mtd/mtdoops.c,
this should be done at the generic console level.
It's not hard, nor complex if done at the right level, nor does it
impact the regular zero-buffering codepath in a significant way - and
the end result would be a significantly simpler (and, in turn, more
robust) MTD printk driver.
I care about this because i still havent given up hope that the company
you are working for will finally give us some permanent storage in the
CPU itself, so that we can have cross-reboot printk buffering ;-) If
that storage is in the form of Flash, then buffering (to optimize write
cycles) is probably a must.
> [...] Given a driver needs only to provide about 6 lines of code using
> a kfifo is it really that hard for the odd code that wants to buffer
> to do that ?
Avoiding a workqueue in printk is about the critical path of failure and
about complexity in general.
I dont see how kfifo helps here much - kfifo is really just a relatively
simple dynamic memory buffer abstraction - while most of the complexity
here is elsewhere. Could you explain what you meant with kfifo here
please?
Ingo
next prev parent reply other threads:[~2009-10-12 13:25 UTC|newest]
Thread overview: 141+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-11 6:10 [PATCH] panic.c: export panic_on_oops Artem Bityutskiy
2009-10-11 6:10 ` Artem Bityutskiy
2009-10-12 11:15 ` Ingo Molnar
2009-10-12 11:15 ` Ingo Molnar
2009-10-12 11:23 ` Simon Kagstrom
2009-10-12 11:23 ` Simon Kagstrom
2009-10-12 11:25 ` Artem Bityutskiy
2009-10-12 11:25 ` Artem Bityutskiy
2009-10-12 11:37 ` Ingo Molnar
2009-10-12 11:37 ` Ingo Molnar
2009-10-12 12:01 ` Simon Kagstrom
2009-10-12 12:01 ` Simon Kagstrom
2009-10-12 12:09 ` Ingo Molnar
2009-10-12 12:09 ` Ingo Molnar
2009-10-12 12:15 ` David Woodhouse
2009-10-12 12:15 ` David Woodhouse
2009-10-12 12:20 ` Ingo Molnar
2009-10-12 12:20 ` Ingo Molnar
2009-10-12 12:33 ` David Woodhouse
2009-10-12 12:33 ` David Woodhouse
2009-10-12 12:36 ` Ingo Molnar
2009-10-12 12:36 ` Ingo Molnar
2009-10-12 12:48 ` David Woodhouse
2009-10-12 12:48 ` David Woodhouse
2009-10-12 13:06 ` Simon Kagstrom
2009-10-12 13:06 ` Simon Kagstrom
2009-10-12 13:15 ` Ingo Molnar
2009-10-12 13:15 ` Ingo Molnar
2009-10-12 13:39 ` Simon Kagstrom
2009-10-12 13:39 ` Simon Kagstrom
2009-10-12 14:30 ` Ingo Molnar
2009-10-12 14:30 ` Ingo Molnar
2009-10-12 15:01 ` Simon Kagstrom
2009-10-12 15:01 ` Simon Kagstrom
2009-10-12 15:23 ` Ingo Molnar
2009-10-12 15:23 ` Ingo Molnar
2009-10-12 15:36 ` Linus Torvalds
2009-10-12 15:36 ` Linus Torvalds
2009-10-12 15:44 ` Linus Torvalds
2009-10-12 15:44 ` Linus Torvalds
2009-10-12 17:29 ` Artem Bityutskiy
2009-10-12 17:29 ` Artem Bityutskiy
2009-10-12 17:43 ` Linus Torvalds
2009-10-12 17:43 ` Linus Torvalds
2009-10-12 17:46 ` Linus Torvalds
2009-10-12 17:46 ` Linus Torvalds
2009-10-12 18:09 ` Andrew Morton
2009-10-12 18:09 ` Andrew Morton
2009-10-12 18:23 ` Ingo Molnar
2009-10-12 18:23 ` Ingo Molnar
2009-10-12 18:36 ` Andrew Morton
2009-10-12 18:36 ` Andrew Morton
2009-10-12 18:45 ` Linus Torvalds
2009-10-12 18:45 ` Linus Torvalds
2009-10-12 19:14 ` Ingo Molnar
2009-10-12 19:14 ` Ingo Molnar
2009-10-12 19:18 ` Dirk Hohndel
2009-10-12 19:18 ` Dirk Hohndel
2009-10-13 7:58 ` Simon Kagstrom
2009-10-13 7:58 ` Simon Kagstrom
2009-10-13 8:57 ` Artem Bityutskiy
2009-10-13 8:57 ` Artem Bityutskiy
2009-10-13 13:17 ` [PATCH/RFC v5 0/5]: mtdoops: fixes and improvements Simon Kagstrom
2009-10-13 13:17 ` Simon Kagstrom
2009-10-13 13:21 ` [PATCH/RFC v5 1/5]: mtdoops: avoid erasing already empty areas Simon Kagstrom
2009-10-13 13:21 ` Simon Kagstrom
2009-10-13 13:22 ` [PATCH/RFC v5 2/5]: mtdoops: Keep track of used/unused mtdoops pages in an array Simon Kagstrom
2009-10-13 13:22 ` Simon Kagstrom
2009-10-13 13:22 ` [PATCH/RFC v5 3/5]: mtdoops: Make page (record) size configurable Simon Kagstrom
2009-10-13 13:22 ` Simon Kagstrom
2009-10-13 13:22 ` [PATCH/RFC v5 4/5]: core: Add dump device to call on oopses and panics Simon Kagstrom
2009-10-13 13:22 ` Simon Kagstrom
2009-10-13 15:37 ` Linus Torvalds
2009-10-13 15:37 ` Linus Torvalds
2009-11-26 9:36 ` Jörn Engel
2009-11-26 9:36 ` Jörn Engel
2009-11-30 7:27 ` Artem Bityutskiy
2009-11-30 7:27 ` Artem Bityutskiy
2009-11-30 7:46 ` Jörn Engel
2009-11-30 7:46 ` Jörn Engel
2009-11-30 8:51 ` Artem Bityutskiy
2009-11-30 8:51 ` Artem Bityutskiy
2009-11-30 9:35 ` Jörn Engel
2009-11-30 9:35 ` Jörn Engel
2009-11-30 9:40 ` Artem Bityutskiy
2009-11-30 9:40 ` Artem Bityutskiy
2009-11-30 9:53 ` Simon Kagstrom
2009-11-30 9:53 ` Simon Kagstrom
[not found] ` <1259580207.19465.379.camel@macbook.infradead.org>
[not found] ` <20091130123752.39727115@marrow.netinsight.se>
[not found] ` <1259582202.19465.388.camel@macbook.infradead.org>
2009-11-30 12:03 ` Simon Kagstrom
2009-11-30 9:54 ` Jörn Engel
2009-11-30 9:54 ` Jörn Engel
2009-11-30 10:23 ` David Woodhouse
2009-11-30 10:23 ` David Woodhouse
2009-11-30 10:27 ` David Woodhouse
2009-11-30 10:27 ` David Woodhouse
2009-11-30 9:09 ` Artem Bityutskiy
2009-11-30 9:09 ` Artem Bityutskiy
2009-11-30 9:28 ` Simon Kagstrom
2009-11-30 9:28 ` Simon Kagstrom
2009-10-13 13:22 ` [PATCH/RFC v5 5/5]: mtdoops: refactor as a dump_device Simon Kagstrom
2009-10-13 13:22 ` Simon Kagstrom
2009-10-14 13:34 ` [PATCH v6 0/5]: mtdoops: fixes and improvements Simon Kagstrom
2009-10-14 13:34 ` Simon Kagstrom
2009-10-14 13:40 ` [PATCH v6 1/5]: mtdoops: avoid erasing already empty areas Simon Kagstrom
2009-10-14 13:40 ` Simon Kagstrom
2009-10-14 13:41 ` [PATCH v6 2/5]: mtdoops: Keep track of used/unused mtdoops pages in an array Simon Kagstrom
2009-10-14 13:41 ` Simon Kagstrom
2009-10-14 13:41 ` [PATCH v6 3/5]: mtdoops: Make page (record) size configurable Simon Kagstrom
2009-10-14 13:41 ` Simon Kagstrom
2009-10-14 13:41 ` [PATCH v6 4/5]: core: Add kernel message dumper to call on oopses and panics Simon Kagstrom
2009-10-14 13:41 ` Simon Kagstrom
2009-10-14 16:49 ` Linus Torvalds
2009-10-14 16:49 ` Linus Torvalds
2009-10-14 13:41 ` [PATCH v6 5/5]: mtdoops: refactor as a kmsg_dumper Simon Kagstrom
2009-10-14 13:41 ` Simon Kagstrom
2009-10-14 15:12 ` Simon Kagstrom
2009-10-14 15:12 ` Simon Kagstrom
2009-10-15 5:11 ` vimal singh
2009-10-15 5:11 ` vimal singh
2009-10-12 12:27 ` [PATCH] panic.c: export panic_on_oops Simon Kagstrom
2009-10-12 12:27 ` Simon Kagstrom
2009-10-12 12:32 ` Ingo Molnar
2009-10-12 12:32 ` Ingo Molnar
2009-10-12 13:08 ` Alan Cox
2009-10-12 13:08 ` Alan Cox
2009-10-12 13:25 ` Ingo Molnar [this message]
2009-10-12 13:25 ` Ingo Molnar
2009-10-12 13:32 ` David Woodhouse
2009-10-12 13:32 ` David Woodhouse
2009-10-12 14:26 ` Ingo Molnar
2009-10-12 14:26 ` Ingo Molnar
2009-10-12 14:36 ` David Woodhouse
2009-10-12 14:36 ` David Woodhouse
2009-10-12 15:14 ` Ingo Molnar
2009-10-12 15:14 ` Ingo Molnar
2009-10-12 18:32 ` Carl-Daniel Hailfinger
2009-10-12 18:32 ` Carl-Daniel Hailfinger
2009-10-12 19:18 ` Ingo Molnar
2009-10-12 19:18 ` Ingo Molnar
2009-10-12 14:12 ` Arjan van de Ven
2009-10-12 14:12 ` Arjan van de Ven
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=20091012132503.GD25464@elte.hu \
--to=mingo@elte.hu \
--cc=aaro.koskinen@nokia.com \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=dedekind1@gmail.com \
--cc=dwmw2@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=simon.kagstrom@netinsight.net \
--cc=torvalds@linux-foundation.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.