From: Artem Bityutskiy <dedekind1@gmail.com>
To: Simon Kagstrom <simon.kagstrom@netinsight.net>
Cc: linux-mtd <linux-mtd@lists.infradead.org>
Subject: Re: [PATCH v13 4/4]: mtdoops: refactor as a kmsg_dumper
Date: Tue, 10 Nov 2009 18:04:58 +0200 [thread overview]
Message-ID: <1257869098.21596.806.camel@localhost> (raw)
In-Reply-To: <20091103141903.23d0d0be@marrow.netinsight.se>
On Tue, 2009-11-03 at 14:19 +0100, Simon Kagstrom wrote:
> The last messages which happens before a crash might contain interesting
> information about the crash. This patch reworks mtdoops using the
> kmsg_dumper support instead of a console, which simplifies the code and
> also includes the messages before the oops started.
>
> On oops callbacks, the MTD device write is scheduled in a work queue (to
> be able to use the regular mtd->write call), while panics call
> mtd->panic_write directly. Thus, if panic_on_oops is set, the oops will
> be written out during the panic.
>
> A parameter to specify which mtd device to use (number or name), as well
> as a flag, writable at runtime, to toggle wheter to dump oopses or only
> panics (since oopses can often be handled by regular syslog).
>
> Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
> Reviewed-by: Anders Grafstrom <anders.grafstrom@netinsight.net>
Pushed to my l2-mtd-2.6 tree with the following amendments on top,
please, review:
diff --git a/drivers/mtd/mtdoops.c b/drivers/mtd/mtdoops.c
index 731876a..a714ec4 100644
--- a/drivers/mtd/mtdoops.c
+++ b/drivers/mtd/mtdoops.c
@@ -337,9 +337,8 @@ static void mtdoops_do_dump(struct kmsg_dumper *dumper,
static void mtdoops_notify_add(struct mtd_info *mtd)
{
struct mtdoops_context *cxt = &oops_cxt;
- u64 mtdoops_pages = mtd->size;
-
- do_div(mtdoops_pages, record_size);
+ u64 mtdoops_pages = div_u64(mtd->size, record_size);
+ int err;
if (!strcmp(mtd->name, mtddev))
cxt->mtd_index = mtd->index;
@@ -352,13 +351,11 @@ static void mtdoops_notify_add(struct mtd_info *mtd)
mtd->index);
return;
}
-
if (mtd->erasesize < record_size) {
printk(KERN_ERR "mtdoops: eraseblock size of MTD partition %d too small\n",
mtd->index);
return;
}
-
if (mtd->size > MTDOOPS_MAX_MTD_SIZE) {
printk(KERN_ERR "mtdoops: mtd%d is too large (limit is %d MiB)\n",
mtd->index, MTDOOPS_MAX_MTD_SIZE / 1024 / 1024);
@@ -369,12 +366,14 @@ static void mtdoops_notify_add(struct mtd_info *mtd)
cxt->oops_page_used = vmalloc(DIV_ROUND_UP(mtdoops_pages,
BITS_PER_LONG));
if (!cxt->oops_page_used) {
- printk(KERN_ERR "Could not allocate page array\n");
+ printk(KERN_ERR "mtdoops: could not allocate page array\n");
return;
}
+
cxt->dump.dump = mtdoops_do_dump;
- if (kmsg_dump_register(&cxt->dump) < 0) {
- printk(KERN_ERR "Registering kmsg dumper failed\n");
+ err = kmsg_dump_register(&cxt->dump);
+ if (err) {
+ printk(KERN_ERR "mtdoops: registering kmsg dumper failed, error %d\n", err);
vfree(cxt->oops_page_used);
cxt->oops_page_used = NULL;
return;
@@ -394,7 +393,7 @@ static void mtdoops_notify_remove(struct mtd_info *mtd)
return;
if (kmsg_dump_unregister(&cxt->dump) < 0)
- printk(KERN_WARNING "Could not unregister kmsg_dumper??\n");
+ printk(KERN_WARNING "mtdoops: could not unregister kmsg_dumper\n");
cxt->mtd = NULL;
flush_scheduled_work();
--
Best Regards,
Artem Bityutskiy (Артём Битюцкий)
next prev parent reply other threads:[~2009-11-10 16:05 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-15 7:40 [PATCH v7 0/5]: mtdoops: fixes and improvements Simon Kagstrom
2009-10-15 7:47 ` [PATCH v7 1/5]: mtdoops: avoid erasing already empty areas Simon Kagstrom
2009-10-23 3:57 ` Artem Bityutskiy
2009-10-15 7:47 ` [PATCH v7 2/5]: mtdoops: Keep track of used/unused mtdoops pages in an array Simon Kagstrom
2009-10-23 4:08 ` Artem Bityutskiy
2009-10-15 7:47 ` [PATCH v7 3/5]: mtdoops: Make page (record) size configurable Simon Kagstrom
2009-10-23 4:13 ` Artem Bityutskiy
2009-10-23 6:58 ` Simon Kagstrom
2009-10-15 7:48 ` [PATCH v7 4/5]: core: Add kernel message dumper to call on oopses and panics Simon Kagstrom
2009-10-15 9:31 ` Ingo Molnar
2009-10-15 14:10 ` [PATCH v8 4/5] " Simon Kagstrom
2009-10-15 15:46 ` Ingo Molnar
2009-10-16 7:46 ` [PATCH v9 " Simon Kagstrom
2009-10-16 8:09 ` Ingo Molnar
2009-10-16 8:24 ` Artem Bityutskiy
2009-10-16 9:25 ` [PATCH v10 " Simon Kagstrom
2009-10-16 10:10 ` Ingo Molnar
2009-10-16 11:00 ` Artem Bityutskiy
2009-10-16 12:57 ` Ingo Molnar
2009-10-16 12:09 ` [PATCH v11 " Simon Kagstrom
2009-10-19 11:48 ` Artem Bityutskiy
2009-10-19 12:50 ` Ingo Molnar
2009-10-21 23:33 ` Linus Torvalds
2009-10-22 6:25 ` Simon Kagstrom
2009-10-22 6:36 ` Artem Bityutskiy
2009-10-22 6:42 ` Simon Kagstrom
2009-10-22 8:52 ` Artem Bityutskiy
2009-10-22 8:58 ` Simon Kagstrom
2009-10-23 7:22 ` Ingo Molnar
2009-10-23 15:53 ` Shargorodsky Atal (EXT-Teleca/Helsinki)
2009-10-24 17:05 ` Artem Bityutskiy
2009-10-26 10:40 ` Shargorodsky Atal (EXT-Teleca/Helsinki)
2009-10-26 7:41 ` Simon Kagstrom
2009-10-26 10:36 ` Shargorodsky Atal (EXT-Teleca/Helsinki)
2009-10-26 11:53 ` Simon Kagstrom
2009-10-26 15:13 ` Shargorodsky Atal (EXT-Teleca/Helsinki)
2009-10-26 15:37 ` Simon Kagstrom
2009-10-16 11:25 ` [PATCH v10 " Aaro Koskinen
2009-10-15 7:48 ` [PATCH v7 5/5]: mtdoops: refactor as a kmsg_dumper Simon Kagstrom
2009-10-15 14:10 ` [PATCH v8 " Simon Kagstrom
2009-10-16 7:46 ` [PATCH v9 " Simon Kagstrom
2009-10-23 4:32 ` [PATCH v7 " Artem Bityutskiy
2009-10-23 6:34 ` Simon Kagstrom
2010-01-06 14:33 ` David Woodhouse
2010-01-07 6:47 ` Simon Kagstrom
2009-10-29 12:35 ` [PATCH v12 0/4]: mtdoops: fixes and improvements Simon Kagstrom
2009-10-29 12:41 ` [PATCH v12 1/4]: mtdoops: Keep track of used/unused mtdoops pages in an array Simon Kagstrom
2009-10-29 15:24 ` Artem Bityutskiy
2009-10-29 12:41 ` [PATCH v12 2/4]: mtdoops: Add a maximum MTD partition size Simon Kagstrom
2009-10-29 15:27 ` Artem Bityutskiy
2009-11-03 6:23 ` Artem Bityutskiy
2009-10-29 12:41 ` [PATCH v12 3/4]: mtdoops: Make page (record) size configurable Simon Kagstrom
2009-11-03 6:23 ` Artem Bityutskiy
2009-11-03 7:27 ` Simon Kagstrom
2009-11-03 7:45 ` Artem Bityutskiy
2009-10-29 12:41 ` [PATCH v12 4/4]: mtdoops: refactor as a kmsg_dumper Simon Kagstrom
2009-11-03 7:29 ` Artem Bityutskiy
2009-11-03 13:19 ` [PATCH v13 " Simon Kagstrom
2009-11-10 9:55 ` Simon Kagstrom
2009-11-10 11:53 ` Artem Bityutskiy
2009-11-10 11:58 ` Simon Kagstrom
2009-11-10 16:04 ` Artem Bityutskiy [this message]
2009-11-10 16:11 ` Artem Bityutskiy
2009-11-11 9:46 ` Simon Kagstrom
2009-11-11 10:29 ` Artem Bityutskiy
2009-11-11 11:27 ` Simon Kagstrom
2009-11-11 11:34 ` Artem Bityutskiy
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=1257869098.21596.806.camel@localhost \
--to=dedekind1@gmail.com \
--cc=linux-mtd@lists.infradead.org \
--cc=simon.kagstrom@netinsight.net \
/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