mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-31 14:23:49 +01:00
Introduce a generic API for unwinding user stacks. In order to expand user space unwinding to be able to handle more complex scenarios, such as deferred unwinding and reading user space information, create a generic interface that all architectures can use that support the various unwinding methods. This is an alternative method for handling user space stack traces from the simple stack_trace_save_user() API. This does not replace that interface, but this interface will be used to expand the functionality of user space stack walking. None of the structures introduced will be exposed to user space tooling. Support for frame pointer unwinding is added. For an architecture to support frame pointer unwinding it needs to enable CONFIG_HAVE_UNWIND_USER_FP and define ARCH_INIT_USER_FP_FRAME. By encoding the frame offsets in struct unwind_user_frame, much of this code can also be reused for future unwinder implementations like sframe. Cc: Masami Hiramatsu <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Jiri Olsa <[email protected]> Cc: Arnaldo Carvalho de Melo <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Andrii Nakryiko <[email protected]> Cc: Indu Bhagat <[email protected]> Cc: "Jose E. Marchesi" <[email protected]> Cc: Beau Belgrave <[email protected]> Cc: Linus Torvalds <[email protected]> Cc: Andrew Morton <[email protected]> Cc: Jens Axboe <[email protected]> Cc: Florian Weimer <[email protected]> Cc: Sam James <[email protected]> Link: https://lore.kernel.org/[email protected] Reviewed-by: Jens Remus <[email protected]> Signed-off-by: Josh Poimboeuf <[email protected]> Co-developed-by: Mathieu Desnoyers <[email protected]> Link: https://lore.kernel.org/all/[email protected]/ Signed-off-by: Mathieu Desnoyers <[email protected]> Co-developed-by: Steven Rostedt (Google) <[email protected]> Signed-off-by: Steven Rostedt (Google) <[email protected]>
68 lines
1.7 KiB
Makefile
68 lines
1.7 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# asm headers that all architectures except um should have
|
|
# (This file is not included when SRCARCH=um since UML borrows several
|
|
# asm headers from the host architecture.)
|
|
|
|
mandatory-y += atomic.h
|
|
mandatory-y += archrandom.h
|
|
mandatory-y += barrier.h
|
|
mandatory-y += bitops.h
|
|
mandatory-y += bug.h
|
|
mandatory-y += cacheflush.h
|
|
mandatory-y += cfi.h
|
|
mandatory-y += checksum.h
|
|
mandatory-y += compat.h
|
|
mandatory-y += current.h
|
|
mandatory-y += delay.h
|
|
mandatory-y += device.h
|
|
mandatory-y += div64.h
|
|
mandatory-y += dma-mapping.h
|
|
mandatory-y += dma.h
|
|
mandatory-y += emergency-restart.h
|
|
mandatory-y += exec.h
|
|
mandatory-y += ftrace.h
|
|
mandatory-y += futex.h
|
|
mandatory-y += hardirq.h
|
|
mandatory-y += hw_irq.h
|
|
mandatory-y += io.h
|
|
mandatory-y += irq.h
|
|
mandatory-y += irq_regs.h
|
|
mandatory-y += irq_work.h
|
|
mandatory-y += kdebug.h
|
|
mandatory-y += kmap_size.h
|
|
mandatory-y += kprobes.h
|
|
mandatory-y += linkage.h
|
|
mandatory-y += local.h
|
|
mandatory-y += local64.h
|
|
mandatory-y += mmiowb.h
|
|
mandatory-y += mmu.h
|
|
mandatory-y += mmu_context.h
|
|
mandatory-y += module.h
|
|
mandatory-y += module.lds.h
|
|
mandatory-y += msi.h
|
|
mandatory-y += pci.h
|
|
mandatory-y += percpu.h
|
|
mandatory-y += pgalloc.h
|
|
mandatory-y += preempt.h
|
|
mandatory-y += rqspinlock.h
|
|
mandatory-y += runtime-const.h
|
|
mandatory-y += rwonce.h
|
|
mandatory-y += sections.h
|
|
mandatory-y += serial.h
|
|
mandatory-y += shmparam.h
|
|
mandatory-y += simd.h
|
|
mandatory-y += softirq_stack.h
|
|
mandatory-y += switch_to.h
|
|
mandatory-y += timex.h
|
|
mandatory-y += tlbflush.h
|
|
mandatory-y += topology.h
|
|
mandatory-y += trace_clock.h
|
|
mandatory-y += uaccess.h
|
|
mandatory-y += unwind_user.h
|
|
mandatory-y += vermagic.h
|
|
mandatory-y += vga.h
|
|
mandatory-y += video.h
|
|
mandatory-y += word-at-a-time.h
|
|
mandatory-y += xor.h
|