This is not a must-have, and it is not for all archs so far anyway: Dump an I-pipe panic trace on ordinary kernel oopses. For me this turned out to be useful already, but not everyone may love to see his/her console flooded with call-history traces on oops, though this only happens if the tracer is enabled.
Comments welcome. Jan
---
arch/i386/mm/fault.c | 5 +++++
lib/bust_spinlocks.c | 5 +++++
2 files changed, 10 insertions(+)
Index: linux-2.6.20/arch/i386/mm/fault.c
===================================================================
--- linux-2.6.20.orig/arch/i386/mm/fault.c
+++ linux-2.6.20/arch/i386/mm/fault.c
@@ -23,6 +23,7 @@
#include <linux/module.h>
#include <linux/kprobes.h>
#include <linux/uaccess.h>
+#include <linux/ipipe_trace.h>
#include <asm/system.h>
#include <asm/desc.h>
@@ -68,9 +69,13 @@ void bust_spinlocks(int yes)
int loglevel_save = console_loglevel;
if (yes) {
+ ipipe_trace_panic_freeze();
oops_in_progress = 1;
return;
}
+
+ ipipe_trace_panic_dump();
+
#ifdef CONFIG_VT
unblank_screen();
#endif
Index: linux-2.6.20/lib/bust_spinlocks.c
===================================================================
--- linux-2.6.20.orig/lib/bust_spinlocks.c
+++ linux-2.6.20/lib/bust_spinlocks.c
@@ -12,14 +12,19 @@
#include <linux/tty.h>
#include <linux/wait.h>
#include <linux/vt_kern.h>
+#include <linux/ipipe_trace.h>
void bust_spinlocks(int yes)
{
if (yes) {
+ ipipe_trace_panic_freeze();
oops_in_progress = 1;
} else {
int loglevel_save = console_loglevel;
+
+ ipipe_trace_panic_dump();
+
#ifdef CONFIG_VT
unblank_screen();
#endif
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Adeos-main mailing list [email protected] https://mail.gna.org/listinfo/adeos-main
