freebsd-nq/sys/amd64/include
Konstantin Belousov 4c918926cd Add x2APIC support. Enable it by default if CPU is capable. The
hw.x2apic_enable tunable allows disabling it from the loader prompt.

To closely repeat effects of the uncached memory ops when accessing
registers in the xAPIC mode, the x2APIC writes to MSRs are preceeded
by mfence, except for the EOI notifications.  This is probably too
strict, only ICR writes to send IPI require serialization to ensure
that other CPUs see the previous actions when IPI is delivered.  This
may be changed later.

In vmm justreturn IPI handler, call doreti_iret instead of doing iretd
inline, to handle corner conditions.

Note that the patch only switches LAPICs into x2APIC mode. It does not
enables FreeBSD to support > 255 CPUs, which requires parsing x2APIC
MADT entries and doing interrupts remapping, but is the required step
on the way.

Reviewed by:	neel
Tested by:	pho (real hardware), neel (on bhyve)
Discussed with:	jhb, grehan
Sponsored by:	The FreeBSD Foundation
MFC after:	2 months
2015-02-09 21:00:56 +00:00
..
pc - Add a new structure type for the ACPI 3.0 SMAP entry that includes the 2014-08-29 21:25:47 +00:00
xen xen: implement the privcmd user-space device 2014-10-22 17:07:20 +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
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
cpu.h amd64/i386: introduce APIC hooks for different APIC implementations. 2014-06-16 08:43:03 +00:00
cpufunc.h Add x2APIC support. Enable it by default if CPU is capable. The 2015-02-09 21:00:56 +00:00
cputypes.h
db_machdep.h
dump.h Factor out duplicated code from dumpsys() on each architecture into generic 2015-01-07 01:01:39 +00:00
elf.h
endian.h
exec.h
fdt.h
float.h
floatingpoint.h
fpu.h Create a separate structure for per-CPU state saved across suspend and 2014-09-06 15:23:28 +00:00
frame.h
gdb_machdep.h
ieeefp.h
in_cksum.h
intr_machdep.h
iodev.h
kdb.h
limits.h
md_var.h For x86, read MAXPHYADDR, defined in SDM vol 3 4.1.4 Enumeration of Paging 2015-01-12 07:36:25 +00:00
memdev.h
metadata.h loader: implement multiboot support for Xen Dom0 2015-01-15 16:27:20 +00:00
minidump.h
mp_watchdog.h
nexusvar.h
npx.h
ofw_machdep.h
param.h Bump MAXCPU on amd64 from 64 to 256. In practice APIC only permits 255 2014-08-20 16:06:24 +00:00
pcb.h Create a separate structure for per-CPU state saved across suspend and 2014-09-06 15:23:28 +00:00
pci_cfgreg.h
pcpu.h
pmap.h amd64: make uiomove_fromphys functional for pages not mapped by the DMAP 2014-10-24 09:48:58 +00:00
pmc_mdep.h
ppireg.h
proc.h
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
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 xen: add a hook to perform AP startup 2014-03-11 10:27:57 +00:00
specialreg.h
stack.h
stdarg.h
sysarch.h
timerreg.h
trap.h
tss.h
ucontext.h
varargs.h
vdso.h
vm.h
vmm_dev.h Simplify instruction restart logic in bhyve. 2015-01-18 03:08:30 +00:00
vmm_instruction_emul.h AMD processors that have the SVM decode assist capability will store the 2014-09-13 22:16:40 +00:00
vmm.h MOVS instruction emulation. 2015-01-19 06:53:31 +00:00
vmparam.h Revert r276600: PHYS_TO_DMAP_RAW() and DMAP_TO_PHYS_RAW() are no 2015-01-12 07:50:55 +00:00