Commit 61e67fb9d3ed13e6a7f58652ae4979b9c872fa57
1 parent
db2c4c7791
Exists in
master
and in
7 other branches
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); |