freebsd-skq/sys/amd64/include
Konstantin Belousov 83c001d3c2 Re-apply r306516 (by cem):
Reduce the cost of TLB invalidation on x86 by using per-CPU completion flags

Reduce contention during TLB invalidation operations by using a per-CPU
completion flag, rather than a single atomically-updated variable.

On a Westmere system (2 sockets x 4 cores x 1 threads), dtrace measurements
show that smp_tlb_shootdown is about 50% faster with this patch; observations
with VTune show that the percentage of time spent in invlrng_single_page on an
interrupt (actually doing invalidation, rather than synchronization) increases
from 31% with the old mechanism to 71% with the new one.  (Running a basic file
server workload.)

Submitted by:	Anton Rang <rang at acm.org>
Reviewed by:	cem (earlier version)
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D8041
2016-10-04 17:01:24 +00:00
..
pc Add more UEFI/e820 memory types from latest specifications. 2016-07-24 09:15:11 +00:00
xen x86/xen: Consolidate xen-os.h in a single place 2015-10-21 10:04:35 +00:00
_align.h
_bus.h
_inttypes.h
_limits.h
_stdint.h
_types.h
acpica_machdep.h
apm_bios.h
asm.h Revert r274772: it is not valid on MIPS 2014-11-25 03:50:31 +00:00
asmacros.h Extend earlier addition of stack frames to most of support.S. This makes 2014-11-13 22:11:44 +00:00
atomic.h atomic: Add testandclear on i386/amd64 2016-05-16 07:19:33 +00:00
bus_dma.h
bus.h
clock.h xen: implement an early timer for Xen PVH 2014-03-11 10:20:42 +00:00
counter.h Replace a number of conflations of mp_ncpus and mp_maxid with either 2016-07-06 14:09:49 +00:00
cpu.h amd64/i386: introduce APIC hooks for different APIC implementations. 2014-06-16 08:43:03 +00:00
cpufunc.h Add amd64 functions to load/store GDT register, store IDT and TR registers. 2016-09-21 10:10:36 +00:00
cputypes.h Remove 'cpu' and 'cpu_class' on amd64. 2016-09-15 17:05:54 +00:00
db_machdep.h Decode some REX prefixes in inst_call(). This makes the 'next' and 2016-09-15 18:30:53 +00:00
dump.h Factor out duplicated code from dumpsys() on each architecture into generic 2015-01-07 01:01:39 +00:00
efi.h Change the efi_get_table interface to a void ** so we can return the 2016-09-22 19:04:51 +00:00
elf.h
endian.h
exec.h
fdt.h
float.h
floatingpoint.h
fpu.h Add FPU_KERN_NOCTX flag to the fpu_kern_enter() function on amd64. 2016-09-11 09:14:07 +00:00
frame.h
gdb_machdep.h
ieeefp.h
in_cksum.h Rationalize BSD license on sys/*/include/in_cksum.h 2015-08-05 19:05:12 +00:00
intr_machdep.h Fix build for !SMP kernels after the Xen MSIX workaround. 2016-08-22 21:23:17 +00:00
iodev.h
kdb.h
limits.h
md_var.h On amd64, declare sse2_pagezero() and start using it again, but only 2016-08-29 13:07:21 +00:00
memdev.h
metadata.h Move amd64 metadata.h to x86 and share with i386 2016-01-07 19:47:26 +00:00
minidump.h
mp_watchdog.h
nexusvar.h
npx.h
ofw_machdep.h
param.h Enable DEVICE_NUMA with up to 8 domains by default on amd64. 2016-04-12 21:23:44 +00:00
pcb.h Add FPU_KERN_NOCTX flag to the fpu_kern_enter() function on amd64. 2016-09-11 09:14:07 +00:00
pci_cfgreg.h
pcpu.h Re-apply r306516 (by cem): 2016-10-04 17:01:24 +00:00
pmap.h Export the pmap_cache_bits() and pmap_pinit_pml4() functions from the 2016-09-21 10:05:51 +00:00
pmc_mdep.h Use single instance of the identical INKERNEL() and PMC_IN_KERNEL() 2015-07-02 14:37:21 +00:00
ppireg.h
proc.h Eliminate pvh_global_lock from the amd64 pmap. 2016-05-14 23:35:11 +00:00
profile.h
psl.h
ptrace.h
pvclock.h Generalized parts of the XEN timer code into a generic pvclock 2015-02-04 08:26:43 +00:00
reg.h
reloc.h
resource.h Add support for managing PCI bus numbers. As with BARs and PCI-PCI bridge 2014-02-12 04:30:37 +00:00
runq.h
segments.h
setjmp.h
sf_buf.h Merge all MD sf_buf allocators into one MI, residing in kern/subr_sfbuf.c 2014-08-05 09:44:10 +00:00
sigframe.h
signal.h
smp.h Merge common parts of i386 and amd64 md_var.h and smp.h into 2015-12-07 17:41:20 +00:00
specialreg.h
stack.h Merge stack(9) implementations for i386 and amd64 under x86/. 2015-09-11 03:24:07 +00:00
stdarg.h
sysarch.h
timerreg.h
trap.h
tss.h
ucontext.h
varargs.h
vdso.h
vm.h Reassign copyright statements on several files from Advanced 2015-04-23 14:22:20 +00:00
vmm_dev.h Restructure memory allocation in bhyve to support "devmem". 2015-06-18 06:00:17 +00:00
vmm_instruction_emul.h Deprecate the 3-way return values from vm_gla2gpa() and vm_copy_setup(). 2015-05-06 16:25:20 +00:00
vmm.h sys/amd64: Small spelling fixes. 2016-05-03 22:13:04 +00:00
vmparam.h Retire VM_FREEPOOL_CACHE as the next step in eliminating PG_CACHE pages. 2015-06-08 04:59:32 +00:00