summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/apic/x2apic_phys.c
diff options
context:
space:
mode:
authorVlastimil Babka2017-09-29 11:23:35 +0200
committerIngo Molnar2017-09-29 19:44:03 +0200
commit77072f09eab19326dd2424c8dad0a443341a228f (patch)
tree42a19b0f80140154adb06f4551752132dd8ea3e6 /arch/x86/kernel/apic/x2apic_phys.c
parentMerge tag 'acpi-4.14-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ra... (diff)
downloadkernel-qcow2-linux-77072f09eab19326dd2424c8dad0a443341a228f.tar.gz
kernel-qcow2-linux-77072f09eab19326dd2424c8dad0a443341a228f.tar.xz
kernel-qcow2-linux-77072f09eab19326dd2424c8dad0a443341a228f.zip
x86/stacktrace: Avoid recording save_stack_trace() wrappers
The save_stack_trace() and save_stack_trace_tsk() wrappers of __save_stack_trace() add themselves to the call stack, and thus appear in the recorded stacktraces. This is redundant and wasteful when we have limited space to record the useful part of the backtrace with e.g. page_owner functionality. Fix this by making sure __save_stack_trace() is noinline (which matches the current gcc decision) and bumping the skip in the wrappers (save_stack_trace_tsk() only when called for the current task). This is similar to what was done for arm in 3683f44c42e9 ("ARM: stacktrace: avoid listing stacktrace functions in stacktrace") and is pending for arm64. Also make sure that __save_stack_trace_reliable() doesn't get this problem in the future by marking it __always_inline (which matches current gcc decision), per Josh Poimboeuf. Signed-off-by: Vlastimil Babka <vbabka@suse.cz> Acked-by: Josh Poimboeuf <jpoimboe@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Miroslav Benes <mbenes@suse.cz> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/20170929092335.2744-1-vbabka@suse.cz Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/kernel/apic/x2apic_phys.c')
0 files changed, 0 insertions, 0 deletions