linux/Documentation/x86
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
..
i386 doc: spelling error changes 2014-05-05 15:32:05 +02:00
x86_64 x86/mce: Update bootlog description to reflect behavior on AMD 2017-06-14 07:32:10 +02:00
00-INDEX Documentation/: update 00-INDEX files 2014-02-10 16:01:40 -08:00
boot.txt docs: fix locations of several documents that got moved 2016-10-24 08:12:35 -02:00
early-microcode.txt Documentation/microcode: Document some aspects for more clarity 2016-06-08 11:04:20 +02:00
earlyprintk.txt doc: spelling error changes 2014-05-05 15:32:05 +02:00
entry_64.txt x86/asm/entry/64: Update path names 2015-07-02 11:08:50 +02:00
exception-tables.txt x86/mm: Expand the exception table logic to allow new handling options 2016-02-18 09:21:46 +01:00
intel_mpx.txt x86/Documentation: Fix various typos in Documentation/x86/ files 2016-07-01 10:00:10 +02:00
intel_rdt_ui.txt x86/intel_rdt: Fix a typo in Documentation 2017-05-09 09:41:42 +02:00
kernel-stacks Documentation/x86: Rename IRQSTACKSIZE to IRQ_STACK_SIZE 2015-08-24 11:42:41 -06:00
mtrr.txt x86/mm/mtrr: Remove kernel internal MTRR interfaces: unexport mtrr_add() and mtrr_del() 2015-08-28 10:09:28 +02:00
orc-unwinder.txt x86/unwind: Add the ORC unwinder 2017-07-26 13:18:20 +02:00
pat.txt x86/pat: Document the PAT initialization sequence 2016-03-29 12:23:27 +02:00
protection-keys.txt x86/pkeys: Update documentation 2016-10-05 10:34:55 +02:00
tlb.txt x86/Documentation: Fix various typos in Documentation/x86/ files 2016-07-01 10:00:10 +02:00
topology.txt x86/topology: Document cpu_llc_id 2016-12-20 09:36:29 +01:00
usb-legacy-support.txt x86: doc: move x86-generic documentation from Doc/x86/i386 2008-07-22 15:34:38 -04:00
zero-page.txt Merge branch 'linus' into WIP.x86/boot, to fix up conflicts and to pick up updates 2017-03-01 09:02:26 +01:00