kernel-fxtec-pro1x/arch/x86/include/asm
Andy Lutomirski e0ffbaabc4 x86: Split syscall_trace_enter into two phases
This splits syscall_trace_enter into syscall_trace_enter_phase1 and
syscall_trace_enter_phase2.  Only phase 2 has full pt_regs, and only
phase 2 is permitted to modify any of pt_regs except for orig_ax.

The intent is that phase 1 can be called from the syscall fast path.

In this implementation, phase1 can handle any combination of
TIF_NOHZ (RCU context tracking), TIF_SECCOMP, and TIF_SYSCALL_AUDIT,
unless seccomp requests a ptrace event, in which case phase2 is
forced.

In principle, this could yield a big speedup for TIF_NOHZ as well as
for TIF_SECCOMP if syscall exit work were similarly split up.

Signed-off-by: Andy Lutomirski <luto@amacapital.net>
Link: http://lkml.kernel.org/r/2df320a600020fda055fccf2b668145729dd0c04.1409954077.git.luto@amacapital.net
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
2014-09-08 14:14:03 -07:00
..
crypto crypto: move x86 to the generic version of ablk_helper 2013-09-24 06:02:24 +10:00
numachip
trace ftrace, perf: Avoid infinite event generation loop 2013-11-19 16:57:40 +01:00
uv x86/uv: Update the UV3 TLB shootdown logic 2014-06-05 14:17:20 +02:00
xen arm: xen: implement multicall hypercall support. 2014-04-24 13:09:46 +01:00
a.out-core.h
acenv.h ACPICA: Linux: Add support to exclude <asm/acenv.h> inclusion. 2014-07-23 01:10:44 +02:00
acpi.h ACPI: Don't use acpi_lapic in ACPI core code 2014-07-21 13:50:58 +02:00
agp.h
alternative-asm.h
alternative.h x86/alternative: Add alternative_input_2 to support alternative with two features and input 2014-05-29 14:24:53 -07:00
amd_nb.h x86/AMD/NB: Fix amd_set_subcaches() parameter type 2014-01-25 08:50:09 +01:00
apb_timer.h
apic.h Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-08-13 18:23:32 -06:00
apic_flat_64.h
apicdef.h
apm.h
arch_hweight.h
archrandom.h random: Add arch_has_random[_seed]() 2014-03-19 22:24:08 -04:00
asm-offsets.h
asm.h kprobes: Introduce NOKPROBE_SYMBOL() macro to maintain kprobes blacklist 2014-04-24 10:02:56 +02:00
atomic.h arch,x86: Convert smp_mb__*() 2014-04-18 14:20:46 +02:00
atomic64_32.h
atomic64_64.h x86, bitops: Correct the assembly constraints to testing bitops 2013-12-04 14:31:28 -08:00
barrier.h x86, locking: Use no more OOSTORE nonsense 2014-06-18 18:41:22 +02:00
bios_ebda.h
bitops.h arch,x86: Convert smp_mb__*() 2014-04-18 14:20:46 +02:00
boot.h
bootparam_utils.h x86: Don't clear olpc_ofw_header when sentinel is detected 2013-08-09 15:29:48 -07:00
bug.h x86: always define BUG() and HAVE_ARCH_BUG, even with !CONFIG_BUG 2014-04-07 16:36:10 -07:00
bugs.h
cache.h
cacheflush.h
calgary.h
calling.h sched, x86: Optimize the preempt_schedule() call 2013-09-25 14:23:07 +02:00
ce4100.h
checksum.h
checksum_32.h x86, smap: Handle csum_partial_copy_*_user() 2013-09-01 14:09:48 -07:00
checksum_64.h net: Change x86_64 add32_with_carry to allow memory operand 2014-05-05 15:26:29 -04:00
clocksource.h x86, vdso: Make vsyscall_gtod_data handling x86 generic 2014-03-18 12:51:52 -07:00
cmdline.h x86, boot: Carve out early cmdline parsing function 2014-05-20 20:21:24 -07:00
cmpxchg.h x86: Simplify __HAVE_ARCH_CMPXCHG tests 2014-07-11 17:28:51 -07:00
cmpxchg_32.h x86: Simplify __HAVE_ARCH_CMPXCHG tests 2014-07-11 17:28:51 -07:00
cmpxchg_64.h x86: Simplify __HAVE_ARCH_CMPXCHG tests 2014-07-11 17:28:51 -07:00
compat.h
context_tracking.h
cpu.h
cpu_device_id.h
cpufeature.h x86, cpu: Kill cpu_has_mp 2014-07-14 12:21:40 -07:00
cpumask.h
crash.h kexec: support for kexec on panic using new system call 2014-08-08 15:57:33 -07:00
current.h
debugreg.h
delay.h
desc.h x86, trace: Delete __trace_alloc_intr_gate() 2013-11-08 14:15:47 -08:00
desc_defs.h
device.h
div64.h
dma-contiguous.h drivers: dma-contiguous: clean source code and prepare for device tree 2013-08-27 09:18:29 +02:00
dma-mapping.h
dma.h
dmi.h firmware/dmi_scan: generalize for use by other archs 2014-01-23 16:36:57 -08:00
dwarf2.h
e820.h x86: avoid remapping data in parse_setup_data() 2013-08-13 23:29:19 -07:00
edac.h
efi.h x86/reboot: Add EFI reboot quirk for ACPI Hardware Reduced flag 2014-07-18 21:23:52 +01:00
elf.h x86, vdso: Move the 32-bit vdso special pages after the text 2014-05-05 13:18:56 -07:00
emergency-restart.h
entry_arch.h
espfix.h x86, espfix: Fix broken header guard 2014-05-02 11:34:17 -07:00
exec.h
fb.h
fixmap.h x86, vdso: Move the vvar and hpet mappings next to the 64-bit vDSO 2014-05-05 13:19:01 -07:00
floppy.h x86: Remove deprecated IRQF_DISABLED 2014-03-04 21:47:51 +01:00
fpu-internal.h Merge branch 'x86-xsave-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-08-13 18:20:04 -06:00
frame.h
ftrace.h ftrace/x86: Have function graph tracer use its own trampoline 2014-07-17 09:44:37 -04:00
futex.h x86: replace futex_atomic_cmpxchg_inatomic() with user_atomic_cmpxchg_inatomic 2013-12-16 09:08:13 -08:00
gart.h
genapic.h
geode.h
gpio.h
hardirq.h x86, irq, trivial: Minor improvements of IRQ related code 2014-06-21 23:05:41 +02:00
hash.h lib: introduce arch optimized hash library 2013-12-17 14:27:17 -05:00
highmem.h
hpet.h x86/hpet: Make boot_hpet_disable extern 2014-05-08 08:15:34 +02:00
hugetlb.h x86, mm, hugetlb: Add missing TLB page invalidation for hugetlb_cow() 2014-05-13 16:34:09 -07:00
hw_breakpoint.h
hw_irq.h x86/irq: Clean up VECTOR_UNDEFINED and VECTOR_RETRIGGERED definition 2014-04-14 13:42:05 +02:00
hypertransport.h
hypervisor.h
i387.h
i8259.h x86, irq: Count legacy IRQs by legacy_pic->nr_legacy_irqs instead of NR_IRQS_LEGACY 2014-06-21 23:05:42 +02:00
ia32.h
ia32_unistd.h
idle.h
inat.h
inat_types.h
init.h
insn.h
inst.h
intel-mid.h x86, intel-mid: Add Merrifield platform support 2014-01-15 14:38:58 -08:00
intel_mid_vrtc.h intel_mid: Renamed *mrst* to *intel_mid* 2013-10-17 16:40:36 -07:00
intel_scu_ipc.h
io.h x86: use generic early_ioremap 2014-04-07 16:36:15 -07:00
io_apic.h x86, irq, PCI: Keep IRQ assignment for runtime power management 2014-08-29 13:38:00 +02:00
iomap.h
iommu.h
iommu_table.h
iosf_mbi.h x86, iosf: Added Quark MBI identifiers 2014-05-09 14:57:08 -07:00
ipi.h
irq.h nmi: provide the option to issue an NMI back trace to every cpu but current 2014-06-23 16:47:44 -07:00
irq_regs.h
irq_remapping.h iommu: dmar: Provide arch specific irq allocation 2014-05-16 14:05:19 +02:00
irq_vectors.h
irqflags.h x86_64/entry/xen: Do not invoke espfix64 on Xen 2014-07-28 15:25:40 -07:00
ist.h
jump_label.h compiler/gcc4: Add quirk for 'asm goto' miscompilation bug 2013-10-11 07:39:14 +02:00
kbdleds.h
Kbuild lib/scatterlist: make ARCH_HAS_SG_CHAIN an actual Kconfig 2014-08-08 15:57:26 -07:00
kdebug.h x86/dumpstack: Fix printk_address for direct addresses 2013-11-12 21:06:06 +01:00
kexec-bzimage64.h kexec-bzImage64: support for loading bzImage using 64bit entry 2014-08-08 15:57:33 -07:00
kexec.h kexec: support for kexec on panic using new system call 2014-08-08 15:57:33 -07:00
kgdb.h
kmap_types.h
kmemcheck.h
kprobes.h kprobes/x86: Call exception handlers directly from do_int3/do_debug 2014-04-24 10:02:59 +02:00
kvm_emulate.h KVM: emulate: put pointers in the fetch_cache 2014-07-11 09:14:03 +02:00
kvm_guest.h
kvm_host.h Revert "KVM: x86: Increase the number of fixed MTRR regs to 10" 2014-08-19 15:12:28 +02:00
kvm_para.h x86, kvm: correctly access the KVM_CPUID_FEATURES leaf at 0x40000101 2014-01-29 18:11:55 +01:00
lguest.h
lguest_hcall.h
linkage.h
local.h x86, bitops: Correct the assembly constraints to testing bitops 2013-12-04 14:31:28 -08:00
local64.h
mach_timer.h
mach_traps.h
math_emu.h
mc146818rtc.h x86: Simplify __HAVE_ARCH_CMPXCHG tests 2014-07-11 17:28:51 -07:00
mce.h hwpoison: remove unused global variable in do_machine_check() 2014-06-04 16:54:11 -07:00
microcode.h x86, microcode: Add a disable chicken bit 2014-05-20 20:21:27 -07:00
microcode_amd.h x86, microcode, AMD: Fix early ucode loading 2014-01-13 19:59:38 +01:00
microcode_intel.h
misc.h x86: Improve the printout of the SMP bootup CPU table 2013-09-28 10:10:26 +02:00
mmconfig.h
mmu.h x86, vdso: Reimplement vdso.so preparation in build-time C 2014-05-05 13:18:51 -07:00
mmu_context.h x86/mm: Add tracepoints for TLB flushes 2014-07-31 08:48:51 -07:00
mmx.h
mmzone.h
mmzone_32.h x86, platforms: Remove NUMAQ 2014-02-27 08:07:39 -08:00
mmzone_64.h
module.h
mpspec.h x86, apic: Remove mps_oem_check callback 2014-07-31 08:05:42 -07:00
mpspec_def.h
mshyperv.h x86: hyperv: Fixup the (brain) damage caused by the irq cleanup 2014-03-05 13:42:14 +01:00
msidef.h
msr.h x86: Add another set of MSR accessor functions 2014-03-13 15:34:45 -07:00
mtrr.h
mutex.h
mutex_32.h x86: Simplify __HAVE_ARCH_CMPXCHG tests 2014-07-11 17:28:51 -07:00
mutex_64.h compiler/gcc4: Add quirk for 'asm goto' miscompilation bug 2013-10-11 07:39:14 +02:00
mwait.h x86, cpufeature: Convert more "features" to bugs 2014-06-18 15:27:04 -07:00
nmi.h x86/nmi: Push duration printk() to irq context 2014-02-09 13:17:22 +01:00
nops.h
numa.h
numa_32.h
olpc.h
olpc_ofw.h
page.h arm64,ia64,ppc,s390,sh,tile,um,x86,mm: remove default gate area 2014-08-08 15:57:27 -07:00
page_32.h x86/mm: Implement ASLR for hugetlb mappings 2013-11-19 14:24:50 +01:00
page_32_types.h x86, relocs: Move ELF relocation handling to C 2013-08-07 21:00:04 -07:00
page_64.h arm64,ia64,ppc,s390,sh,tile,um,x86,mm: remove default gate area 2014-08-08 15:57:27 -07:00
page_64_types.h x86_64: expand kernel stack to 16K 2014-05-30 11:52:51 -07:00
page_types.h x86: revert wrong memblock current limit setting 2014-01-27 21:02:38 -08:00
paravirt.h x86, asmlinkage, paravirt: Make paravirt thunks global 2014-01-29 22:17:17 -08:00
paravirt_types.h x86, asmlinkage, paravirt: Don't rely on local assembler labels 2014-01-29 22:17:17 -08:00
parport.h
pat.h
pci-direct.h
pci-functions.h
pci.h PCI: Turn pcibios_penalize_isa_irq() into a weak function 2014-05-27 16:23:58 -06:00
pci_64.h
pci_x86.h
percpu.h percpu: invoke __verify_pcpu_ptr() from the generic part of accessors and operations 2014-06-17 19:12:40 -04:00
perf_event.h
perf_event_p4.h
pgalloc.h x86, mm: enable split page table lock for PMD level 2013-11-15 09:32:15 +09:00
pgtable-2level.h mm: x86 pgtable: require X86_64 for soft-dirty tracker 2014-06-04 16:54:05 -07:00
pgtable-2level_types.h
pgtable-3level.h mm: save soft-dirty bits on file pages 2013-08-13 17:57:48 -07:00
pgtable-3level_types.h
pgtable.h x86,mm: fix pte_special versus pte_numa 2014-08-29 16:28:16 -07:00
pgtable_32.h
pgtable_32_types.h
pgtable_64.h mm: x86 pgtable: drop unneeded preprocessor ifdef 2014-06-04 16:54:05 -07:00
pgtable_64_types.h x86-64, espfix: Don't leak bits 31:16 of %esp returning to 16-bit stack 2014-04-30 14:14:28 -07:00
pgtable_types.h x86: define _PAGE_NUMA by reusing software bits on the PMD and PTE levels 2014-06-04 16:53:55 -07:00
platform_sst_audio.h ASoC: Intel: add mrfld pipelines 2014-06-23 12:24:27 +01:00
pmc_atom.h x86/pmc_atom: Expose PMC device state and platform sleep state 2014-07-25 14:12:14 -07:00
posix_types.h
preempt.h percpu: add raw_cpu_ops 2014-04-07 16:36:13 -07:00
probe_roms.h
processor-cyrix.h
processor-flags.h
processor.h Merge branch 'x86-xsave-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-08-13 18:20:04 -06:00
prom.h x86, devicetree, irq: Use common mechanism to support irqdomain 2014-06-21 23:05:43 +02:00
proto.h x86, vdso: Move syscall and sysenter setup into kernel/cpu/common.c 2014-05-05 13:18:47 -07:00
ptrace.h x86: Split syscall_trace_enter into two phases 2014-09-08 14:14:03 -07:00
pvclock-abi.h
pvclock.h pvclock: detect watchdog reset at pvclock read 2013-11-06 09:48:43 +02:00
qrwlock.h x86, locking: Use no more OOSTORE nonsense 2014-06-18 18:41:22 +02:00
realmode.h
reboot.h
reboot_fixups.h
required-features.h
resume-trace.h
rio.h
rmwcc.h x86, bitops: Correct the assembly constraints to testing bitops 2013-12-04 14:31:28 -08:00
rtc.h
rwlock.h
rwsem.h
seccomp.h
seccomp_32.h
seccomp_64.h
sections.h
segment.h x86, trace: Register exception handler to trace IDT 2013-11-08 14:15:45 -08:00
serial.h
setup.h x86, espfix: Move espfix definitions into a separate header file 2014-05-01 14:16:15 -07:00
setup_arch.h
shmparam.h
sigcontext.h
sigframe.h
sighandling.h
signal.h signals: kill sigfindinword() 2014-06-06 16:08:11 -07:00
simd.h crypto: move x86 to the generic version of ablk_helper 2013-09-24 06:02:24 +10:00
smap.h
smp.h x86: Delete non-required instances of include <linux/init.h> 2014-01-06 21:25:18 -08:00
smpboot_hooks.h x86, apic: Replace trampoline physical addresses with defaults 2014-07-31 08:05:41 -07:00
sparsemem.h
special_insns.h x86: Add support for the clflushopt instruction 2014-02-27 08:23:28 -08:00
spinlock.h x86, locking/rwlocks: Enable qrwlocks on x86 2014-06-06 07:58:29 +02:00
spinlock_types.h x86, locking/rwlocks: Enable qrwlocks on x86 2014-06-06 07:58:29 +02:00
sta2x11.h
stackprotector.h
stacktrace.h
string.h
string_32.h
string_64.h
suspend.h
suspend_32.h
suspend_64.h
svm.h
swiotlb.h x86: enable DMA CMA with swiotlb 2014-06-04 16:53:57 -07:00
switch_to.h x86, asmlinkage: Make 32bit/64bit __switch_to visible 2013-08-06 14:18:30 -07:00
sync_bitops.h arch,x86: Convert smp_mb__*() 2014-04-18 14:20:46 +02:00
sys_ia32.h
syscall.h audit: use uapi/linux/audit.h for AUDIT_ARCH declarations 2014-03-20 10:11:59 -04:00
syscalls.h x86, asmlinkage: Make various syscalls asmlinkage 2013-08-06 14:18:33 -07:00
sysfb.h
tce.h
thread_info.h sched/idle, x86: Switch from TS_POLLING to TIF_POLLING_NRFLAG 2014-05-08 09:16:56 +02:00
time.h
timer.h Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-01-20 12:03:57 -08:00
timex.h
tlb.h
tlbflush.h mm, x86: Account for TLB flushes only when debugging 2014-01-25 09:10:41 +01:00
topology.h PCI changes for the v3.15 merge window: 2014-04-01 15:14:04 -07:00
trace_clock.h
traps.h Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-06-12 19:18:49 -07:00
tsc.h x86, tsc: Fallback to normal calibration if fast MSR calibration fails 2014-02-19 17:12:24 +01:00
uaccess.h Merge branch 'x86/mpx' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-01-20 14:46:32 -08:00
uaccess_32.h x86: Unify copy_to_user() and add size checking to it 2013-10-26 12:27:37 +02:00
uaccess_64.h x86, sparse: Do not force removal of __user when calling copy_to/from_user_nocheck() 2014-01-04 13:54:50 -08:00
unaligned.h
unistd.h sys_sgetmask/sys_ssetmask: add CONFIG_SGETMASK_SYSCALL 2014-06-04 16:54:14 -07:00
uprobes.h uprobes/x86: Rename arch_uprobe->def to ->defparam, minor comment updates 2014-06-05 16:21:57 +02:00
user.h
user32.h
user_32.h
user_64.h
vdso.h x86, vdso: Move the vvar area before the vdso text 2014-07-11 16:57:51 -07:00
vga.h x86, ia64: Move EFI_FB vga_default_device() initialization to pci_vga_fixup() 2014-07-10 16:48:48 -06:00
vgtod.h x86, vdso: Add 32 bit VDSO time support for 64 bit kernel 2014-03-18 12:52:41 -07:00
virtext.h
vm86.h
vmx.h KVM: nVMX: Fix returned value of MSR_IA32_VMX_PROCBASED_CTLS 2014-06-19 12:52:12 +02:00
vsyscall.h
vvar.h x86, vdso: Move the vvar and hpet mappings next to the 64-bit vDSO 2014-05-05 13:19:01 -07:00
word-at-a-time.h
x2apic.h
x86_init.h PCI: Drop "irq" param from *_restore_msi_irqs() 2013-12-13 08:44:30 -07:00
xcr.h
xor.h
xor_32.h
xor_64.h
xor_avx.h crypto: xor - Check for osxsave as well as avx in crypto/xor 2013-08-21 21:08:35 +10:00
xsave.h x86, xsave: Add forgotten inline annotation 2014-06-18 15:19:59 -07:00