linux/scripts
Linus Torvalds b0c79f49c3 Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 asm updates from Ingo Molnar:

 - Introduce the ORC unwinder, which can be enabled via
   CONFIG_ORC_UNWINDER=y.

   The ORC unwinder is a lightweight, Linux kernel specific debuginfo
   implementation, which aims to be DWARF done right for unwinding.
   Objtool is used to generate the ORC unwinder tables during build, so
   the data format is flexible and kernel internal: there's no
   dependency on debuginfo created by an external toolchain.

   The ORC unwinder is almost two orders of magnitude faster than the
   (out of tree) DWARF unwinder - which is important for perf call graph
   profiling. It is also significantly simpler and is coded defensively:
   there has not been a single ORC related kernel crash so far, even
   with early versions. (knock on wood!)

   But the main advantage is that enabling the ORC unwinder allows
   CONFIG_FRAME_POINTERS to be turned off - which speeds up the kernel
   measurably:

   With frame pointers disabled, GCC does not have to add frame pointer
   instrumentation code to every function in the kernel. The kernel's
   .text size decreases by about 3.2%, resulting in better cache
   utilization and fewer instructions executed, resulting in a broad
   kernel-wide speedup. Average speedup of system calls should be
   roughly in the 1-3% range - measurements by Mel Gorman [1] have shown
   a speedup of 5-10% for some function execution intense workloads.

   The main cost of the unwinder is that the unwinder data has to be
   stored in RAM: the memory cost is 2-4MB of RAM, depending on kernel
   config - which is a modest cost on modern x86 systems.

   Given how young the ORC unwinder code is it's not enabled by default
   - but given the performance advantages the plan is to eventually make
   it the default unwinder on x86.

   See Documentation/x86/orc-unwinder.txt for more details.

 - Remove lguest support: its intended role was that of a temporary
   proof of concept for virtualization, plus its removal will enable the
   reduction (removal) of the paravirt API as well, so Rusty agreed to
   its removal. (Juergen Gross)

 - Clean up and fix FSGS related functionality (Andy Lutomirski)

 - Clean up IO access APIs (Andy Shevchenko)

 - Enhance the symbol namespace (Jiri Slaby)

* 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (47 commits)
  objtool: Handle GCC stack pointer adjustment bug
  x86/entry/64: Use ENTRY() instead of ALIGN+GLOBAL for stub32_clone()
  x86/fpu/math-emu: Add ENDPROC to functions
  x86/boot/64: Extract efi_pe_entry() from startup_64()
  x86/boot/32: Extract efi_pe_entry() from startup_32()
  x86/lguest: Remove lguest support
  x86/paravirt/xen: Remove xen_patch()
  objtool: Fix objtool fallthrough detection with function padding
  x86/xen/64: Fix the reported SS and CS in SYSCALL
  objtool: Track DRAP separately from callee-saved registers
  objtool: Fix validate_branch() return codes
  x86: Clarify/fix no-op barriers for text_poke_bp()
  x86/switch_to/64: Rewrite FS/GS switching yet again to fix AMD CPUs
  selftests/x86/fsgsbase: Test selectors 1, 2, and 3
  x86/fsgsbase/64: Report FSBASE and GSBASE correctly in core dumps
  x86/fsgsbase/64: Fully initialize FS and GS state in start_thread_common
  x86/asm: Fix UNWIND_HINT_REGS macro for older binutils
  x86/asm/32: Fix regs_get_register() on segment registers
  x86/xen/64: Rearrange the SYSCALL entries
  x86/asm/32: Remove a bunch of '& 0xffff' from pt_regs segment reads
  ...
2017-09-04 09:52:57 -07:00
..
basic fixdep: trivial: typo fix and correction 2017-08-10 01:01:03 +09:00
coccinelle drm: Introduce drm_property_blob_{get,put}() 2017-02-28 16:16:46 +01:00
dtc scripts/dtc: fix '%zx' warning 2017-08-31 16:33:15 -07:00
gcc-plugins randstruct: Whitelist NIU struct page overloading 2017-06-22 16:21:43 -07:00
gdb scripts/gdb: lx-dmesg: use explicit encoding=utf8 errors=replace 2017-07-12 16:26:01 -07:00
genksyms genksyms: add printf format attribute to error_with_pos() 2017-06-06 01:22:48 +09:00
kconfig Kbuild misc updates for 4.13 2017-07-07 15:09:09 -07:00
ksymoops Fix dead URLs to ftp.kernel.org 2017-03-28 16:16:52 +02:00
mod module: Add module name to modinfo 2017-05-23 14:08:31 -07:00
package Kbuild misc updates for 4.12 2017-05-10 20:41:43 -07:00
selinux doc: ReSTify SELinux.txt 2017-05-18 10:31:30 -06:00
tracing
.gitignore Docs: clean up some DocBook loose ends 2017-06-23 14:17:38 -06:00
adjust_autoksyms.sh kbuild: fix scripts/adjust_autoksyms.sh* for the no modules case 2016-12-11 22:30:10 +01:00
asn1_compiler.c
bloat-o-meter scripts/bloat-o-meter: compile .NUMBER regex 2016-12-12 18:55:06 -08:00
bootgraph.pl scripts: Switch to more portable Perl shebang 2017-05-14 11:20:44 +09:00
check_00index.sh
check_extable.sh
checkincludes.pl scripts: Switch to more portable Perl shebang 2017-05-14 11:20:44 +09:00
checkkconfigsymbols.py checkkconfigsymbols.py: support Kconfig's 'imply' statement 2017-02-03 11:49:06 +01:00
checkpatch.pl checkpatch: improve the STORAGE_CLASS test 2017-07-12 16:26:04 -07:00
checkstack.pl scripts: Switch to more portable Perl shebang 2017-05-14 11:20:44 +09:00
checksyscalls.sh kbuild: speed up checksyscalls.sh 2017-06-10 01:15:36 +09:00
checkversion.pl scripts: Switch to more portable Perl shebang 2017-05-14 11:20:44 +09:00
cleanfile scripts: Switch to more portable Perl shebang 2017-05-14 11:20:44 +09:00
cleanpatch scripts: Switch to more portable Perl shebang 2017-05-14 11:20:44 +09:00
coccicheck
config
conmakehash.c
const_structs.checkpatch
decode_stacktrace.sh
decodecode
depmod.sh
diffconfig
export_report.pl scripts: Switch to more portable Perl shebang 2017-05-14 11:20:44 +09:00
extract_xc3028.pl scripts: Switch to more portable Perl shebang 2017-05-14 11:20:44 +09:00
extract-cert.c
extract-ikconfig
extract-module-sig.pl scripts: Switch to more portable Perl shebang 2017-05-14 11:20:44 +09:00
extract-sys-certs.pl scripts: Switch to more portable Perl shebang 2017-05-14 11:20:44 +09:00
extract-vmlinux
faddr2line
gcc-goto.sh
gcc-ld
gcc-plugin.sh
gcc-version.sh
gcc-x86_32-has-stack-protector.sh
gcc-x86_64-has-stack-protector.sh
gen_initramfs_list.sh Kbuild misc updates for 4.13 2017-07-07 15:09:09 -07:00
get_dvb_firmware scripts: Switch to more portable Perl shebang 2017-05-14 11:20:44 +09:00
get_maintainer.pl get_maintainer: Prepare for separate MAINTAINERS files 2017-08-08 11:09:31 -07:00
gfp-translate
headerdep.pl scripts: Switch to more portable Perl shebang 2017-05-14 11:20:44 +09:00
headers_check.pl scripts: Switch to more portable Perl shebang 2017-05-14 11:20:44 +09:00
headers_install.sh
headers.sh
insert-sys-cert.c
kallsyms.c kbuild: modversions: add infrastructure for emitting relative CRCs 2017-02-03 08:28:25 -08:00
Kbuild.include kbuild: trivial cleanups on the comments 2017-08-10 00:58:20 +09:00
kernel-doc kernel-doc parser mishandles declarations split into lines 2017-08-30 16:18:16 -06:00
ld-version.sh
Lindent scripts/Lindent: clean up and optimize 2017-02-22 16:41:26 -08:00
link-vmlinux.sh kbuild: handle libs-y archives separately from built-in.o archives 2017-06-30 09:03:03 +09:00
Makefile Docs: clean up some DocBook loose ends 2017-06-23 14:17:38 -06:00
Makefile.asm-generic kbuild: update comments of Makefile.asm-generic 2017-08-25 00:10:05 +09:00
Makefile.build Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-09-04 09:52:57 -07:00
Makefile.clean
Makefile.dtbinst kbuild: Do not use hyphen in exported variable name 2017-08-21 09:06:00 +09:00
Makefile.extrawarn kbuild: drop -Wno-unknown-warning-option from clang options 2017-04-23 16:09:15 +09:00
Makefile.fwinst
Makefile.gcc-plugins gcc-plugins: Add the randstruct plugin 2017-06-22 16:15:45 -07:00
Makefile.headersinst kbuild: remove wrapper files handling from Makefile.headersinst 2017-07-11 21:33:54 +09:00
Makefile.help
Makefile.host kbuild: Add __cc-option macro 2017-06-25 12:47:55 +09:00
Makefile.kasan kasan: turn on -fsanitize-address-use-after-scope 2016-12-12 18:55:09 -08:00
Makefile.lib devicetree: Move include prefixes from arch to separate directory 2017-05-18 23:55:48 -07:00
Makefile.modbuiltin
Makefile.modinst
Makefile.modpost
Makefile.modsign
Makefile.ubsan
makelst
markup_oops.pl scripts: Switch to more portable Perl shebang 2017-05-14 11:20:44 +09:00
mkcompile_h scripts/mkcompile_h: Remove trailing spaces from compiler version 2017-06-19 22:48:15 +09:00
mkmakefile
mksysmap
mkuboot.sh
mkversion
module-common.lds module: set .init_array alignment to 8 2017-03-13 09:40:28 -07:00
namespace.pl scripts: Switch to more portable Perl shebang 2017-05-14 11:20:44 +09:00
objdiff scripts: objdiff: Ignore debug info when comparing 2017-03-11 11:13:38 +09:00
parse-maintainers.pl parse-maintainers: Move matching sections from MAINTAINERS 2017-08-08 11:16:14 -07:00
patch-kernel
pnmtologo.c
profile2linkerlist.pl scripts: Switch to more portable Perl shebang 2017-05-14 11:20:44 +09:00
prune-kernel
recordmcount.c ftrace: Allow for function tracing to record init functions on boot up 2017-03-24 20:51:49 -04:00
recordmcount.h
recordmcount.pl scripts: Switch to more portable Perl shebang 2017-05-14 11:20:44 +09:00
setlocalversion
show_delta
sign-file.c sign-file: fix build error in sign-file.c with libressl 2017-02-10 12:43:47 +11:00
sortextable.c
sortextable.h
spelling.txt scripts/spelling.txt: add a bunch more spelling mistakes 2017-07-06 16:24:30 -07:00
sphinx-pre-install scripts/sphinx-pre-install: add minimum support for RHEL 2017-08-07 14:26:41 -06:00
stackdelta scripts: Switch to more portable Perl shebang 2017-05-14 11:20:44 +09:00
stackusage
tags.sh tags: honor COMPILED_SOURCE with apart output directory 2017-06-06 08:42:34 +09:00
unifdef.c
ver_linux ver_linux: Use /usr/bin/awk instead of /bin/awk 2017-04-08 18:03:42 +02:00
xen-hypercalls.sh
xz_wrap.sh