freebsd-skq/sys/amd64/include
Alexander Motin aba10e131f Allow swi_sched() to be called from NMI context.
For purposes of handling hardware error reported via NMIs I need a way to
escape NMI context, being too restrictive to do something significant.

To do it this change introduces new swi_sched() flag SWI_FROMNMI, making
it careful about used KPIs.  On platforms allowing IPI sending from NMI
context (x86 for now) it immediately wakes clk_intr_event via new IPI_SWI,
otherwise it works just like SWI_DELAY.  To handle the delayed SWIs this
patch calls clk_intr_event on every hardclock() tick.

MFC after:	2 weeks
Sponsored by:	iXsystems, Inc.
Differential Revision:	https://reviews.freebsd.org/D25754
2020-07-25 15:19:38 +00:00
..
pc sys/amd64: further adoption of SPDX licensing ID tags. 2017-11-27 15:03:07 +00:00
xen
_align.h
_bus.h Regularize my copyright notice 2019-12-04 16:56:11 +00:00
_inttypes.h
_limits.h
_stdint.h
_types.h
acpica_machdep.h
apm_bios.h
asm.h amd64: Add CFI directives for libc syscall stubs 2019-10-23 19:03:03 +00:00
asmacros.h amd64: prevents speculations over swapgs reload of %gs base. 2019-08-06 16:53:25 +00:00
atomic.h Expand generic subword atomic primitives 2020-03-25 23:12:43 +00:00
bus_dma.h sys/amd64: further adoption of SPDX licensing ID tags. 2017-11-27 15:03:07 +00:00
bus.h
clock.h re-synchronize TSC-s on SMP systems after resume, if necessary 2018-05-25 07:33:20 +00:00
counter.h amd64: provide custom zpcpu set/add/sub routines 2020-02-12 11:15:33 +00:00
cpu.h Add a custom implementation of cpu_lock_delay() for x86. 2018-11-05 22:54:03 +00:00
cpufunc.h amd64: patch ffsl to use the compiler builtin 2020-07-16 11:28:24 +00:00
cputypes.h
csan.h Add kcsan_md_unsupported from NetBSD. 2019-11-21 13:22:23 +00:00
db_machdep.h Cleanups related to debug exceptions on x86. 2018-05-22 00:45:00 +00:00
dump.h
efi.h amd64 ef_rt_arch_call: Preserve %rflags around call into EFI RT service. 2019-06-03 15:32:42 +00:00
elf.h
endian.h
exec.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
fdt.h
float.h
floatingpoint.h spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
fpu.h Add domain policy allocation for amd64 fpu_kern_ctx 2020-07-03 14:54:46 +00:00
frame.h PTI for amd64. 2018-01-17 11:44:21 +00:00
gdb_machdep.h gdb(4):amd64: Bump MI GDB_BUFSZ for more efficient transfers 2019-08-22 00:35:17 +00:00
ieeefp.h Resolve conflicts between macros in fenv.h and ieeefp.h 2018-05-31 20:22:47 +00:00
in_cksum.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
intr_machdep.h Drop "All rights reserved" from my copyright statements. 2019-03-06 22:11:45 +00:00
iodev.h sys/amd64: further adoption of SPDX licensing ID tags. 2017-11-27 15:03:07 +00:00
kdb.h sys/amd64: further adoption of SPDX licensing ID tags. 2017-11-27 15:03:07 +00:00
limits.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
md_var.h amd64: move pcb out of kstack to struct thread. 2019-10-25 20:09:42 +00:00
memdev.h sys/amd64: further adoption of SPDX licensing ID tags. 2017-11-27 15:03:07 +00:00
metadata.h
minidump.h sys/amd64: further adoption of SPDX licensing ID tags. 2017-11-27 15:03:07 +00:00
mp_watchdog.h sys/amd64: further adoption of SPDX licensing ID tags. 2017-11-27 15:03:07 +00:00
nexusvar.h
npx.h
ofw_machdep.h
param.h Define MAXCPU consistently between the kernel and KLDs. 2020-02-05 19:08:21 +00:00
pcb.h Provide dummy definition of the amd64 struct pcb for -m32 compilation. 2019-10-26 18:22:52 +00:00
pci_cfgreg.h
pcpu_aux.h amd64: move pcb out of kstack to struct thread. 2019-10-25 20:09:42 +00:00
pcpu.h amd64 pmap: microoptimize local shootdowns for PCID PTI configurations 2020-07-18 18:19:57 +00:00
pmap.h amd64 pmap: microoptimize local shootdowns for PCID PTI configurations 2020-07-18 18:19:57 +00:00
pmc_mdep.h hwpmc: ABI fixes 2018-06-04 02:05:48 +00:00
ppireg.h sys/amd64: further adoption of SPDX licensing ID tags. 2017-11-27 15:03:07 +00:00
proc.h amd64: move pcb out of kstack to struct thread. 2019-10-25 20:09:42 +00:00
procctl.h amd64 KPTI: add control from procctl(2). 2019-03-16 11:44:33 +00:00
profile.h Fix high resolution kernel profiling just enough to not crash at boot 2018-06-02 05:48:44 +00:00
psl.h
ptrace.h
pvclock.h
reg.h
reloc.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
resource.h
runq.h sys/amd64: further adoption of SPDX licensing ID tags. 2017-11-27 15:03:07 +00:00
segments.h amd64: move GDT into PCPU area. 2019-11-12 15:51:47 +00:00
setjmp.h
sf_buf.h sys/amd64: further adoption of SPDX licensing ID tags. 2017-11-27 15:03:07 +00:00
sgx.h
sgxreg.h
sigframe.h
signal.h
smp.h Allow swi_sched() to be called from NMI context. 2020-07-25 15:19:38 +00:00
specialreg.h
stack.h
stdarg.h
sysarch.h
timerreg.h sys/amd64: further adoption of SPDX licensing ID tags. 2017-11-27 15:03:07 +00:00
trap.h
tss.h amd64: move common_tss into pcpu. 2019-11-10 09:28:18 +00:00
ucontext.h
vdso.h
vm.h sys/amd64: further adoption of SPDX licensing ID tags. 2017-11-27 15:03:07 +00:00
vmm_dev.h vmm(4): Add 12 user ABI compat after r349948 2020-05-20 17:27:54 +00:00
vmm_instruction_emul.h bhyve(8): For prototyping, reattempt decode in userspace 2020-06-25 00:18:42 +00:00
vmm_snapshot.h Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
vmm.h bhyve(8): For prototyping, reattempt decode in userspace 2020-06-25 00:18:42 +00:00
vmparam.h Fix some nits in pmap_page_array_startup(). 2019-09-03 22:26:01 +00:00