diff options
| author | Alexander van Heukelum <heukelum@sleipnir.lusi.uni-sb.de> | 2008-10-04 17:12:44 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2008-10-13 04:33:43 -0400 |
| commit | ca0a816403c53411bb6b6fb8bf60cef30695b09d (patch) | |
| tree | 2a19497527209f362934d9edb8612651ed3a8122 | |
| parent | 2ac53721f37c79acddaf60f6ff232f56b7abddba (diff) | |
dumpstack: x86: use log_lvl and unify trace formatting
- x86: Write log_lvl strings if available
- start raw stack dumps on new line
- i386: Remove extra indentation for raw stack dumps
Signed-off-by: Alexander van Heukelum <heukelum@fastmail.fm>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
| -rw-r--r-- | arch/x86/kernel/dumpstack_32.c | 18 | ||||
| -rw-r--r-- | arch/x86/kernel/dumpstack_64.c | 8 |
2 files changed, 13 insertions, 13 deletions
diff --git a/arch/x86/kernel/dumpstack_32.c b/arch/x86/kernel/dumpstack_32.c index 517b507bc56a..09bc3330d557 100644 --- a/arch/x86/kernel/dumpstack_32.c +++ b/arch/x86/kernel/dumpstack_32.c | |||
| @@ -155,8 +155,8 @@ static void | |||
| 155 | show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs, | 155 | show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs, |
| 156 | unsigned long *stack, unsigned long bp, char *log_lvl) | 156 | unsigned long *stack, unsigned long bp, char *log_lvl) |
| 157 | { | 157 | { |
| 158 | printk("%sCall Trace:\n", log_lvl); | ||
| 158 | dump_trace(task, regs, stack, bp, &print_trace_ops, log_lvl); | 159 | dump_trace(task, regs, stack, bp, &print_trace_ops, log_lvl); |
| 159 | printk("%s =======================\n", log_lvl); | ||
| 160 | } | 160 | } |
| 161 | 161 | ||
| 162 | void show_trace(struct task_struct *task, struct pt_regs *regs, | 162 | void show_trace(struct task_struct *task, struct pt_regs *regs, |
| @@ -184,17 +184,16 @@ show_stack_log_lvl(struct task_struct *task, struct pt_regs *regs, | |||
| 184 | if (kstack_end(stack)) | 184 | if (kstack_end(stack)) |
| 185 | break; | 185 | break; |
| 186 | if (i && ((i % 8) == 0)) | 186 | if (i && ((i % 8) == 0)) |
| 187 | printk("\n%s ", log_lvl); | 187 | printk("\n%s", log_lvl); |
| 188 | printk("%08lx ", *stack++); | 188 | printk(" %08lx", *stack++); |
| 189 | touch_nmi_watchdog(); | ||
| 189 | } | 190 | } |
| 190 | printk("\n%sCall Trace:\n", log_lvl); | 191 | printk("\n"); |
| 191 | |||
| 192 | show_trace_log_lvl(task, regs, sp, bp, log_lvl); | 192 | show_trace_log_lvl(task, regs, sp, bp, log_lvl); |
| 193 | } | 193 | } |
| 194 | 194 | ||
| 195 | void show_stack(struct task_struct *task, unsigned long *sp) | 195 | void show_stack(struct task_struct *task, unsigned long *sp) |
| 196 | { | 196 | { |
| 197 | printk(" "); | ||
| 198 | show_stack_log_lvl(task, NULL, sp, 0, ""); | 197 | show_stack_log_lvl(task, NULL, sp, 0, ""); |
| 199 | } | 198 | } |
| 200 | 199 | ||
| @@ -229,7 +228,7 @@ void show_registers(struct pt_regs *regs) | |||
| 229 | print_modules(); | 228 | print_modules(); |
| 230 | __show_regs(regs, 0); | 229 | __show_regs(regs, 0); |
| 231 | 230 | ||
| 232 | printk(KERN_EMERG "Process %.*s (pid: %d, ti=%p task=%p task.ti=%p)", | 231 | printk(KERN_EMERG "Process %.*s (pid: %d, ti=%p task=%p task.ti=%p)\n", |
| 233 | TASK_COMM_LEN, current->comm, task_pid_nr(current), | 232 | TASK_COMM_LEN, current->comm, task_pid_nr(current), |
| 234 | current_thread_info(), current, task_thread_info(current)); | 233 | current_thread_info(), current, task_thread_info(current)); |
| 235 | /* | 234 | /* |
| @@ -242,8 +241,9 @@ void show_registers(struct pt_regs *regs) | |||
| 242 | unsigned char c; | 241 | unsigned char c; |
| 243 | u8 *ip; | 242 | u8 *ip; |
| 244 | 243 | ||
| 245 | printk("\n" KERN_EMERG "Stack: "); | 244 | printk(KERN_EMERG "Stack:\n"); |
| 246 | show_stack_log_lvl(NULL, regs, ®s->sp, 0, KERN_EMERG); | 245 | show_stack_log_lvl(NULL, regs, ®s->sp, |
| 246 | 0, KERN_EMERG); | ||
| 247 | 247 | ||
| 248 | printk(KERN_EMERG "Code: "); | 248 | printk(KERN_EMERG "Code: "); |
| 249 | 249 | ||
diff --git a/arch/x86/kernel/dumpstack_64.c b/arch/x86/kernel/dumpstack_64.c index 521c833cdc3b..7fd32944ceac 100644 --- a/arch/x86/kernel/dumpstack_64.c +++ b/arch/x86/kernel/dumpstack_64.c | |||
| @@ -284,7 +284,7 @@ static void | |||
| 284 | show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs, | 284 | show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs, |
| 285 | unsigned long *stack, unsigned long bp, char *log_lvl) | 285 | unsigned long *stack, unsigned long bp, char *log_lvl) |
| 286 | { | 286 | { |
| 287 | printk("Call Trace:\n"); | 287 | printk("%sCall Trace:\n", log_lvl); |
| 288 | dump_trace(task, regs, stack, bp, &print_trace_ops, log_lvl); | 288 | dump_trace(task, regs, stack, bp, &print_trace_ops, log_lvl); |
| 289 | } | 289 | } |
| 290 | 290 | ||
| @@ -330,7 +330,7 @@ show_stack_log_lvl(struct task_struct *task, struct pt_regs *regs, | |||
| 330 | break; | 330 | break; |
| 331 | } | 331 | } |
| 332 | if (i && ((i % 4) == 0)) | 332 | if (i && ((i % 4) == 0)) |
| 333 | printk("\n"); | 333 | printk("\n%s", log_lvl); |
| 334 | printk(" %016lx", *stack++); | 334 | printk(" %016lx", *stack++); |
| 335 | touch_nmi_watchdog(); | 335 | touch_nmi_watchdog(); |
| 336 | } | 336 | } |
| @@ -388,9 +388,9 @@ void show_registers(struct pt_regs *regs) | |||
| 388 | unsigned char c; | 388 | unsigned char c; |
| 389 | u8 *ip; | 389 | u8 *ip; |
| 390 | 390 | ||
| 391 | printk("Stack: "); | 391 | printk(KERN_EMERG "Stack:\n"); |
| 392 | show_stack_log_lvl(NULL, regs, (unsigned long *)sp, | 392 | show_stack_log_lvl(NULL, regs, (unsigned long *)sp, |
| 393 | regs->bp, ""); | 393 | regs->bp, KERN_EMERG); |
| 394 | 394 | ||
| 395 | printk(KERN_EMERG "Code: "); | 395 | printk(KERN_EMERG "Code: "); |
| 396 | 396 | ||
