freebsd-skq/sys/x86/include
Conrad Meyer 665919aaaf x86: Implement MWAIT support for stopping a CPU
IPI_STOP is used after panic or when ddb is entered manually.  MONITOR/
MWAIT allows CPUs that support the feature to sleep in a low power way
instead of spinning.  Something similar is already used at idle.

It is perhaps especially useful in oversubscribed VM environments, and is
safe to use even if the panic/ddb thread is not the BSP.  (Except in the
presence of MWAIT errata, which are detected automatically on platforms with
known wakeup problems.)

It can be tuned/sysctled with "machdep.stop_mwait," which defaults to 0
(off).  This commit also introduces the tunable
"machdep.mwait_cpustop_broken," which defaults to 0, unless the CPU has
known errata, but may be set to "1" in loader.conf to signal that mwait
wakeup is broken on CPUs FreeBSD does not yet know about.

Unfortunately, Bhyve doesn't yet support MONITOR extensions, so this doesn't
help bhyve hypervisors running FreeBSD guests.

Submitted by:   Anton Rang <rang AT acm.org> (earlier version)
Reviewed by:	kib
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D20135
2019-05-04 20:34:26 +00:00
..
xen
_align.h
_inttypes.h
_limits.h
_stdint.h
_types.h i386: Merge PAE and non-PAE pmaps into same kernel. 2019-01-30 02:07:13 +00:00
acpica_machdep.h
apicreg.h
apicvar.h Drop "All rights reserved" from my copyright statements. 2019-03-06 22:11:45 +00:00
apm_bios.h
bus_dma.h
bus.h
busdma_impl.h x86 busdma: fix mis-use of bus_addr_t where vm_paddr_t is assumed. 2019-01-18 13:38:56 +00:00
cputypes.h
dump.h
elf.h Consolidate identical ELF auxargs type defintions. 2018-10-22 22:24:32 +00:00
endian.h
fdt.h
float.h
fpu.h
frame.h
ifunc.h Update x86/ifunc.h. 2018-09-30 16:57:30 +00:00
init.h x86: improve reservation of AP trampoline memory 2018-04-05 14:39:51 +00:00
intr_machdep.h Drop "All rights reserved" from my copyright statements. 2019-03-06 22:11:45 +00:00
legacyvar.h
mca.h
metadata.h
mptable.h
ofw_machdep.h
pci_cfgreg.h pci_cfgreg.c: Use io port config access for early boot time. 2019-04-09 18:07:17 +00:00
procctl.h amd64 KPTI: add control from procctl(2). 2019-03-16 11:44:33 +00:00
psl.h
ptrace.h
pvclock.h
reg.h Cleanups related to debug exceptions on x86. 2018-05-22 00:45:00 +00:00
segments.h
setjmp.h
sigframe.h
signal.h Remove very old and unused signal information codes. 2018-03-27 20:57:51 +00:00
specialreg.h Add symbolic name for TSC_AUX MSR address. 2019-03-15 16:39:05 +00:00
stack.h
stdarg.h
sysarch.h Add usermode helpers for for Intel userspace protection keys feature. 2019-02-20 09:56:23 +00:00
trap.h Remove very old and unused signal information codes. 2018-03-27 20:57:51 +00:00
ucode.h Log a message after a successful boot-time microcode update. 2018-09-14 17:04:36 +00:00
ucontext.h Fix a typo. 2018-03-19 17:14:56 +00:00
vdso.h
vmware.h
x86_smp.h x86: Implement MWAIT support for stopping a CPU 2019-05-04 20:34:26 +00:00
x86_var.h Port sysctl kern.elf32.read_exec from amd64 to i386. 2019-02-07 02:17:34 +00:00