forked from skristiansson/linux
-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
core: Add kernel message dumper to call on oopses and panics
The core functionality is implemented as per Linus suggestion from http://lists.infradead.org/pipermail/linux-mtd/2009-October/027620.html (with the kmsg_dump implementation by Linus). A struct kmsg_dumper has been added which contains a callback to dump the kernel log buffers on crashes. The kmsg_dump function gets called from oops_exit() and panic() and invokes this callbacks with the crash reason. [dwmw2: Fix log_end handling] Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net> Reviewed-by: Anders Grafstrom <anders.grafstrom@netinsight.net> Reviewed-by: Linus Torvalds <torvalds@linux-foundation.org> Acked-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
- Loading branch information
Simon Kagstrom
authored and
David Woodhouse
committed
Nov 30, 2009
1 parent
7cb777a
commit 456b565
Showing
3 changed files
with
166 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
/* | ||
* linux/include/kmsg_dump.h | ||
* | ||
* Copyright (C) 2009 Net Insight AB | ||
* | ||
* Author: Simon Kagstrom <simon.kagstrom@netinsight.net> | ||
* | ||
* This file is subject to the terms and conditions of the GNU General Public | ||
* License. See the file COPYING in the main directory of this archive | ||
* for more details. | ||
*/ | ||
#ifndef _LINUX_KMSG_DUMP_H | ||
#define _LINUX_KMSG_DUMP_H | ||
|
||
#include <linux/list.h> | ||
|
||
enum kmsg_dump_reason { | ||
KMSG_DUMP_OOPS, | ||
KMSG_DUMP_PANIC, | ||
}; | ||
|
||
/** | ||
* struct kmsg_dumper - kernel crash message dumper structure | ||
* @dump: The callback which gets called on crashes. The buffer is passed | ||
* as two sections, where s1 (length l1) contains the older | ||
* messages and s2 (length l2) contains the newer. | ||
* @list: Entry in the dumper list (private) | ||
* @registered: Flag that specifies if this is already registered | ||
*/ | ||
struct kmsg_dumper { | ||
void (*dump)(struct kmsg_dumper *dumper, enum kmsg_dump_reason reason, | ||
const char *s1, unsigned long l1, | ||
const char *s2, unsigned long l2); | ||
struct list_head list; | ||
int registered; | ||
}; | ||
|
||
void kmsg_dump(enum kmsg_dump_reason reason); | ||
|
||
int kmsg_dump_register(struct kmsg_dumper *dumper); | ||
|
||
int kmsg_dump_unregister(struct kmsg_dumper *dumper); | ||
|
||
#endif /* _LINUX_KMSG_DUMP_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters