linux/arch/um/include/asm
Josh Poimboeuf ee9f8fce99 x86/unwind: Add the ORC unwinder
Add the new ORC unwinder which is enabled by CONFIG_ORC_UNWINDER=y.
It plugs into the existing x86 unwinder framework.

It relies on objtool to generate the needed .orc_unwind and
.orc_unwind_ip sections.

For more details on why ORC is used instead of DWARF, see
Documentation/x86/orc-unwinder.txt - but the short version is
that it's a simplified, fundamentally more robust debugninfo
data structure, which also allows up to two orders of magnitude
faster lookups than the DWARF unwinder - which matters to
profiling workloads like perf.

Thanks to Andy Lutomirski for the performance improvement ideas:
splitting the ORC unwind table into two parallel arrays and creating a
fast lookup table to search a subset of the unwind table.

Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Jiri Slaby <jslaby@suse.cz>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: live-patching@vger.kernel.org
Link: http://lkml.kernel.org/r/0a6cbfb40f8da99b7a45a1a8302dc6aef16ec812.1500938583.git.jpoimboe@redhat.com
[ Extended the changelog. ]
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2017-07-26 13:18:20 +02:00
..
a.out-core.h
bugs.h
cache.h
common.lds.S um: v2: Use generic NOTES macro 2017-07-10 22:58:02 +02:00
dma.h um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
fixmap.h um: Remove broken highmem support 2015-04-13 21:01:02 +02:00
hardirq.h um: Do not change hard IRQ flags in soft IRQ processing 2016-01-10 21:49:48 +01:00
io.h um: add dummy ioremap and iounmap functions 2017-07-05 23:43:14 +02:00
irq.h
irqflags.h um: Use asm-generic/irqflags.h 2016-08-04 00:18:04 +02:00
Kbuild add asm-generic/extable.h 2017-03-27 20:27:28 -04:00
kmap_types.h um: remove km_type definitions 2012-07-24 15:27:31 +08:00
kvm_para.h kvmclock: Add functions to check if the host has stopped the vm 2012-04-08 12:48:59 +03:00
mmu_context.h mm/gup: Drop the arch_pte_access_permitted() MMU callback 2017-03-18 09:48:01 +01:00
mmu.h um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
page.h um: asm/page.h: remove the pte_high member from struct pte_t 2016-02-05 18:10:40 -08:00
pgalloc.h um: remove pointless include of asm/fixmap.h from asm/pgtable.h 2012-03-25 00:29:55 +01:00
pgtable-2level.h arch, mm: convert all architectures to use 5level-fixup.h 2017-03-09 11:48:47 -08:00
pgtable-3level.h arch, mm: convert all architectures to use 5level-fixup.h 2017-03-09 11:48:47 -08:00
pgtable.h um: kill pfn_t 2016-01-15 17:56:32 -08:00
processor-generic.h arch: remove unused macro/function thread_saved_pc() 2017-06-28 16:13:57 -07:00
ptrace-generic.h um: Define PTRACE_OLDSETOPTIONS 2015-11-06 22:49:09 +01:00
sections.h um: Use char[] for linker script address declarations 2015-05-31 13:14:06 +02:00
setup.h
smp.h um: Remove broken SMP support 2015-04-13 21:00:58 +02:00
stacktrace.h um: Add support for CONFIG_STACKTRACE 2014-10-13 21:46:25 +02:00
syscall-generic.h um: Add full asm/syscall.h support 2016-01-10 21:49:49 +01:00
sysrq.h um: move sysrq.h out of include/shared 2012-10-09 22:28:19 +02:00
thread_info.h um: Add seccomp support 2016-01-10 21:49:49 +01:00
timex.h
tlb.h mm: remove the page size change check in tlb_remove_page 2016-12-12 18:55:07 -08:00
tlbflush.h
uaccess.h um: switch to RAW_COPY_USER 2017-03-28 18:24:03 -04:00
unwind.h x86/unwind: Add the ORC unwinder 2017-07-26 13:18:20 +02:00