Commit 61e67fb9d3ed13e6a7f58652ae4979b9c872fa57

Authored by Frederic Weisbecker
1 parent db2c4c7791

perf/x86-64: Use frame pointer to walk on irq and process stacks

We were using the frame pointer based stack walker on every
contexts in x86-32, but not in x86-64 where we only use the
seven-league boots on the exception stacks.

Use it also on irq and process stacks. This utterly accelerate
the captures.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>

Showing 1 changed file with 2 additions and 2 deletions Side-by-side Diff

arch/x86/kernel/dumpstack_64.c
... ... @@ -208,7 +208,7 @@
208 208 if (in_irq_stack(stack, irq_stack, irq_stack_end)) {
209 209 if (ops->stack(data, "IRQ") < 0)
210 210 break;
211   - bp = print_context_stack(tinfo, stack, bp,
  211 + bp = ops->walk_stack(tinfo, stack, bp,
212 212 ops, data, irq_stack_end, &graph);
213 213 /*
214 214 * We link to the next stack (which would be
... ... @@ -229,7 +229,7 @@
229 229 /*
230 230 * This handles the process stack:
231 231 */
232   - bp = print_context_stack(tinfo, stack, bp, ops, data, NULL, &graph);
  232 + bp = ops->walk_stack(tinfo, stack, bp, ops, data, NULL, &graph);
233 233 put_cpu();
234 234 }
235 235 EXPORT_SYMBOL(dump_trace);