linux-stable/arch/x86/xen
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
..
apic.c x86/apic: Move cpumask and to core code 2017-06-22 18:21:22 +02:00
debugfs.c x86/xen: Audit and remove any unnecessary uses of module.h 2016-07-14 15:06:59 +02:00
debugfs.h
efi.c x86/xen/efi: Initialize only the EFI struct members used by Xen 2017-06-23 11:11:03 +02:00
enlighten.c xen/vcpu: Handle xen_vcpu_setup() failure in hotplug 2017-06-13 16:10:55 +02:00
enlighten_hvm.c xen: fix hvm guest with kaslr enabled 2017-08-11 15:50:26 +02:00
enlighten_pv.c x86/paravirt/xen: Remove xen_patch() 2017-08-24 09:57:24 +02:00
enlighten_pvh.c xen/pvh: Do not fill kernel's e820 map in init_pvh_bootparams() 2017-05-02 11:17:39 +02:00
grant-table.c xen/grant-table: Use kmalloc_array() in arch_gnttab_valloc() 2016-08-26 10:44:22 +01:00
irq.c x86/xen: use xen_vcpu_id mapping for HYPERVISOR_vcpu_op 2016-07-25 13:32:34 +01:00
Kconfig x86/xen: enable PVHVM-only builds 2017-05-02 11:10:16 +02:00
Makefile objtool, x86: Add several functions and files to the objtool whitelist 2017-06-30 10:19:19 +02:00
mmu.c xen: make xen_flush_tlb_all() static 2017-05-19 08:04:25 +02:00
mmu.h x86/xen: Change __xen_pgd_walk() and xen_cleanmfnmap() to support p4d 2017-03-27 08:56:49 +02:00
mmu_hvm.c x86/xen: split off mmu_hvm.c 2017-05-02 11:05:10 +02:00
mmu_pv.c kexec: move vmcoreinfo out of the kernel's .bss section 2017-07-12 16:25:59 -07:00
multicalls.c x86: Replace __get_cpu_var uses 2014-08-26 13:45:49 -04:00
multicalls.h
p2m.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
pci-swiotlb-xen.c xen-swiotlb: consolidate xen_swiotlb_dma_ops 2017-06-20 11:12:59 +02:00
platform-pci-unplug.c xen/pvh: PVH guests always have PV devices 2017-02-07 08:07:01 -05:00
pmu.c xen: Make VPMU init message look less scary 2016-08-24 18:45:38 +01:00
pmu.h x86/xen: put setup.c, pmu.c and apic.c under CONFIG_XEN_PV 2017-05-02 11:09:28 +02:00
setup.c x86: xen: remove unnecessary variable in xen_foreach_remap_area() 2017-07-03 13:24:17 +02:00
smp.c xen/vcpu: Handle xen_vcpu_setup() failure at boot 2017-06-13 16:10:58 +02:00
smp.h xen/vcpu: Handle xen_vcpu_setup() failure at boot 2017-06-13 16:10:58 +02:00
smp_hvm.c xen/vcpu: Handle xen_vcpu_setup() failure at boot 2017-06-13 16:10:58 +02:00
smp_pv.c xen/x86: fix cpu hotplug 2017-07-23 08:13:11 +02:00
spinlock.c locking/spinlocks/x86, paravirt: Remove paravirt_ticketlocks_enabled 2017-01-14 09:33:46 +01:00
suspend.c x86/xen: split suspend.c for PV and PVHVM guests 2017-05-02 11:09:17 +02:00
suspend_hvm.c xen/pvh*: Support > 32 VCPUs at domain restore 2017-06-13 16:05:17 +02:00
suspend_pv.c x86/xen: split suspend.c for PV and PVHVM guests 2017-05-02 11:09:17 +02:00
time.c xen/x86: Don't BUG on CPU0 offlining 2017-07-23 08:09:24 +02:00
trace.c xen: use generated hypervisor symbols in arch/x86/xen/trace.c 2015-03-16 14:49:13 +00:00
vdso.h
vga.c
xen-asm.S x86/paravirt/xen: Remove xen_patch() 2017-08-24 09:57:24 +02:00
xen-asm_32.S x86/paravirt/xen: Remove xen_patch() 2017-08-24 09:57:24 +02:00
xen-asm_64.S x86/paravirt/xen: Remove xen_patch() 2017-08-24 09:57:24 +02:00
xen-head.S x86/xen: define startup_xen for XEN PV only 2017-05-02 11:09:37 +02:00
xen-ops.h x86/paravirt/xen: Remove xen_patch() 2017-08-24 09:57:24 +02:00
xen-pvh.S x86/boot/64: Rename init_level4_pgt and early_level4_pgt 2017-06-13 08:56:55 +02:00