mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] x86_64: remove empty lines from stack traces/oopses
@ 2008-07-31 23:51 Alexey Dobriyan
  2008-08-11 17:02 ` Ingo Molnar
  0 siblings, 1 reply; 5+ messages in thread
From: Alexey Dobriyan @ 2008-07-31 23:51 UTC (permalink / raw)
  To: akpm, mingo; +Cc: linux-kernel, ak

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
---

 arch/x86/kernel/traps_64.c |    5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

--- a/arch/x86/kernel/traps_64.c
+++ b/arch/x86/kernel/traps_64.c
@@ -339,9 +339,8 @@ static void
 show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs,
 		unsigned long *stack, unsigned long bp, char *log_lvl)
 {
-	printk("\nCall Trace:\n");
+	printk("Call Trace:\n");
 	dump_trace(task, regs, stack, bp, &print_trace_ops, log_lvl);
-	printk("\n");
 }
 
 void show_trace(struct task_struct *task, struct pt_regs *regs,
@@ -386,6 +385,7 @@ show_stack_log_lvl(struct task_struct *task, struct pt_regs *regs,
 		printk(" %016lx", *stack++);
 		touch_nmi_watchdog();
 	}
+	printk("\n");
 	show_trace_log_lvl(task, regs, sp, bp, log_lvl);
 }
 
@@ -443,7 +443,6 @@ void show_registers(struct pt_regs *regs)
 		printk("Stack: ");
 		show_stack_log_lvl(NULL, regs, (unsigned long *)sp,
 				regs->bp, "");
-		printk("\n");
 
 		printk(KERN_EMERG "Code: ");
 


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] x86_64: remove empty lines from stack traces/oopses
  2008-07-31 23:51 [PATCH] x86_64: remove empty lines from stack traces/oopses Alexey Dobriyan
@ 2008-08-11 17:02 ` Ingo Molnar
  2008-08-11 19:22   ` Alexey Dobriyan
  0 siblings, 1 reply; 5+ messages in thread
From: Ingo Molnar @ 2008-08-11 17:02 UTC (permalink / raw)
  To: Alexey Dobriyan
  Cc: akpm, mingo, linux-kernel, ak, Thomas Gleixner, H. Peter Anvin,
	Arjan van de Ven


* Alexey Dobriyan <adobriyan@gmail.com> wrote:

>  show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs,
>  		unsigned long *stack, unsigned long bp, char *log_lvl)
>  {
> -	printk("\nCall Trace:\n");
> +	printk("Call Trace:\n");
>  	dump_trace(task, regs, stack, bp, &print_trace_ops, log_lvl);
> -	printk("\n");
>  }

hm, it's nice to have stack traces stand out a bit, and to not get the 
'Call Trace' embedded in the middle of a printk (which happens to crash 
or produce a stack dump).

>  void show_trace(struct task_struct *task, struct pt_regs *regs,
> @@ -386,6 +385,7 @@ show_stack_log_lvl(struct task_struct *task, struct pt_regs *regs,
>  		printk(" %016lx", *stack++);
>  		touch_nmi_watchdog();
>  	}
> +	printk("\n");
>  	show_trace_log_lvl(task, regs, sp, bp, log_lvl);
>  }
>  
> @@ -443,7 +443,6 @@ void show_registers(struct pt_regs *regs)
>  		printk("Stack: ");
>  		show_stack_log_lvl(NULL, regs, (unsigned long *)sp,
>  				regs->bp, "");
> -		printk("\n");
>  
>  		printk(KERN_EMERG "Code: ");

just to make sure i get the gist of your change, do you have a 'before' 
and 'after' sample oops, so that we can see the difference?

	Ingo

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] x86_64: remove empty lines from stack traces/oopses
  2008-08-11 17:02 ` Ingo Molnar
@ 2008-08-11 19:22   ` Alexey Dobriyan
  2008-08-15 15:25     ` Ingo Molnar
  0 siblings, 1 reply; 5+ messages in thread
From: Alexey Dobriyan @ 2008-08-11 19:22 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: akpm, mingo, linux-kernel, ak, Thomas Gleixner, H. Peter Anvin,
	Arjan van de Ven

On Mon, Aug 11, 2008 at 07:02:19PM +0200, Ingo Molnar wrote:
> * Alexey Dobriyan <adobriyan@gmail.com> wrote:
> 
> >  show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs,
> >  		unsigned long *stack, unsigned long bp, char *log_lvl)
> >  {
> > -	printk("\nCall Trace:\n");
> > +	printk("Call Trace:\n");
> >  	dump_trace(task, regs, stack, bp, &print_trace_ops, log_lvl);
> > -	printk("\n");
> >  }
> 
> hm, it's nice to have stack traces stand out a bit, and to not get the 
> 'Call Trace' embedded in the middle of a printk (which happens to crash 
> or produce a stack dump).

Sometimes all you have is 80x25 or just screenshot from some stupid windows
monitoring program.

> >  void show_trace(struct task_struct *task, struct pt_regs *regs,
> > @@ -386,6 +385,7 @@ show_stack_log_lvl(struct task_struct *task, struct pt_regs *regs,
> >  		printk(" %016lx", *stack++);
> >  		touch_nmi_watchdog();
> >  	}
> > +	printk("\n");
> >  	show_trace_log_lvl(task, regs, sp, bp, log_lvl);
> >  }
> >  
> > @@ -443,7 +443,6 @@ void show_registers(struct pt_regs *regs)
> >  		printk("Stack: ");
> >  		show_stack_log_lvl(NULL, regs, (unsigned long *)sp,
> >  				regs->bp, "");
> > -		printk("\n");
> >  
> >  		printk(KERN_EMERG "Code: ");
> 
> just to make sure i get the gist of your change, do you have a 'before' 
> and 'after' sample oops, so that we can see the difference?

Any recent oops with and without empty lines after Call trace: and
after calltrace.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] x86_64: remove empty lines from stack traces/oopses
  2008-08-11 19:22   ` Alexey Dobriyan
@ 2008-08-15 15:25     ` Ingo Molnar
  2008-08-15 15:49       ` Arjan van de Ven
  0 siblings, 1 reply; 5+ messages in thread
From: Ingo Molnar @ 2008-08-15 15:25 UTC (permalink / raw)
  To: Alexey Dobriyan
  Cc: akpm, mingo, linux-kernel, ak, Thomas Gleixner, H. Peter Anvin,
	Arjan van de Ven


* Alexey Dobriyan <adobriyan@gmail.com> wrote:

> On Mon, Aug 11, 2008 at 07:02:19PM +0200, Ingo Molnar wrote:
> > * Alexey Dobriyan <adobriyan@gmail.com> wrote:
> > 
> > >  show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs,
> > >  		unsigned long *stack, unsigned long bp, char *log_lvl)
> > >  {
> > > -	printk("\nCall Trace:\n");
> > > +	printk("Call Trace:\n");
> > >  	dump_trace(task, regs, stack, bp, &print_trace_ops, log_lvl);
> > > -	printk("\n");
> > >  }
> > 
> > hm, it's nice to have stack traces stand out a bit, and to not get the 
> > 'Call Trace' embedded in the middle of a printk (which happens to crash 
> > or produce a stack dump).
> 
> Sometimes all you have is 80x25 or just screenshot from some stupid windows
> monitoring program.

> > just to make sure i get the gist of your change, do you have a 
> > 'before' and 'after' sample oops, so that we can see the difference?
> 
> Any recent oops with and without empty lines after Call trace: and 
> after calltrace.

ok - i've queued up your fix in tip/x86/debug.

Arjan, can the removal of empty newlines break the kerneloops.org 
parser?

	Ingo

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] x86_64: remove empty lines from stack traces/oopses
  2008-08-15 15:25     ` Ingo Molnar
@ 2008-08-15 15:49       ` Arjan van de Ven
  0 siblings, 0 replies; 5+ messages in thread
From: Arjan van de Ven @ 2008-08-15 15:49 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Alexey Dobriyan, akpm, mingo, linux-kernel, ak, Thomas Gleixner,
	H. Peter Anvin

On Fri, 15 Aug 2008 17:25:55 +0200
Ingo Molnar <mingo@elte.hu> wrote:

> > Any recent oops with and without empty lines after Call trace: and 
> > after calltrace.
> 
> ok - i've queued up your fix in tip/x86/debug.
> 
> Arjan, can the removal of empty newlines break the kerneloops.org 
> parser?

nope is fine; the parser isn't that fragile against empty lines
(in fact they get filtered out ;-)


-- 
If you want to reach me at my work email, use arjan@linux.intel.com
For development, discussion and tips for power savings, 
visit http://www.lesswatts.org

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2008-08-15 15:50 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-07-31 23:51 [PATCH] x86_64: remove empty lines from stack traces/oopses Alexey Dobriyan
2008-08-11 17:02 ` Ingo Molnar
2008-08-11 19:22   ` Alexey Dobriyan
2008-08-15 15:25     ` Ingo Molnar
2008-08-15 15:49       ` Arjan van de Ven

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®