[PATCH] x86: Compress stack unwinder output
authorAndi Kleen <ak@suse.de>
Thu, 7 Dec 2006 01:14:00 +0000 (02:14 +0100)
committerAndi Kleen <andi@basil.nowhere.org>
Thu, 7 Dec 2006 01:14:00 +0000 (02:14 +0100)
The unwinder has some extra newlines, which eat up loads of screen
space when it spews. (See https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=137900
for a nasty example).

warning_symbol-> and warning-> already printk a newline, so don't add one
in the strings passed to them.

[AK: redone for new code]

Signed-off-by: Dave Jones <davej@redhat.com>
Signed-off-by: Andi Kleen <ak@suse.de>
arch/i386/kernel/traps.c
arch/x86_64/kernel/traps.c

index fe81d89..396041a 100644 (file)
@@ -202,22 +202,22 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
                if (unw_ret > 0) {
                        if (call_trace == 1 && !arch_unw_user_mode(&info)) {
                                ops->warning_symbol(data,
-                                            "DWARF2 unwinder stuck at %s\n",
+                                            "DWARF2 unwinder stuck at %s",
                                             UNW_PC(&info));
                                if (UNW_SP(&info) >= PAGE_OFFSET) {
-                                       MSG("Leftover inexact backtrace:\n");
+                                       MSG("Leftover inexact backtrace:");
                                        stack = (void *)UNW_SP(&info);
                                        if (!stack)
                                                return;
                                        ebp = UNW_FP(&info);
                                } else
-                                       MSG("Full inexact backtrace again:\n");
+                                       MSG("Full inexact backtrace again:");
                        } else if (call_trace >= 1)
                                return;
                        else
-                               MSG("Full inexact backtrace again:\n");
+                               MSG("Full inexact backtrace again:");
                } else
-                       MSG("Inexact backtrace:\n");
+                       MSG("Inexact backtrace:");
        }
        if (!stack) {
                unsigned long dummy;
index d3f43c9..eedd4e7 100644 (file)
@@ -280,7 +280,7 @@ void dump_trace(struct task_struct *tsk, struct pt_regs *regs,
                if (unw_ret > 0) {
                        if (call_trace == 1 && !arch_unw_user_mode(&info)) {
                                ops->warning_symbol(data,
-                                            "DWARF2 unwinder stuck at %s\n",
+                                            "DWARF2 unwinder stuck at %s",
                                             UNW_PC(&info));
                                if ((long)UNW_SP(&info) < 0) {
                                        MSG("Leftover inexact backtrace:");
@@ -288,13 +288,13 @@ void dump_trace(struct task_struct *tsk, struct pt_regs *regs,
                                        if (!stack)
                                                return;
                                } else
-                                       MSG("Full inexact backtrace again:\n");
+                                       MSG("Full inexact backtrace again:");
                        } else if (call_trace >= 1)
                                return;
                        else
-                               MSG("Full inexact backtrace again:\n");
+                               MSG("Full inexact backtrace again:");
                } else
-                       MSG("Inexact backtrace:\n");
+                       MSG("Inexact backtrace:");
        }
        if (!stack) {
                unsigned long dummy;