freebsd-nq/sys/x86/x86
Eric van Gyzen ba0ced82ea Fix handling of NMIs from unknown sources (BMC, hypervisor)
Release kernels have no KDB backends enabled, so they discard an NMI
if it is not due to a hardware failure.  This includes NMIs from
IPMI BMCs and hypervisors.

Furthermore, the interaction of panic_on_nmi, kdb_on_nmi, and
debugger_on_panic is confusing.

Respond to all NMIs according to panic_on_nmi and debugger_on_panic.
Remove kdb_on_nmi.  Expand the meaning of panic_on_nmi by making
it a bitfield.  There are currently two bits: one for NMIs due to
hardware failure, and one for all others.  Leave room for more.

If panic_on_nmi and debugger_on_panic are both true, don't actually panic,
but directly enter the debugger, to allow someone to leave the debugger
and [hopefully] resume normal execution.

Reviewed by:	kib
MFC after:	2 weeks
Relnotes:	yes: machdep.kdb_on_nmi is gone; machdep.panic_on_nmi changed
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D24558
2020-04-26 00:41:29 +00:00
..
autoconf.c ANSIfy sys/x86 2018-03-17 01:40:09 +00:00
bus_machdep.c Port the NetBSD KCSAN runtime to FreeBSD. 2019-11-21 11:22:08 +00:00
busdma_bounce.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
busdma_machdep.c Introduce the concept of busdma tag templates. A template can be allocated 2019-12-24 14:48:46 +00:00
cpu_machdep.c Fix handling of NMIs from unknown sources (BMC, hypervisor) 2020-04-26 00:41:29 +00:00
delay.c Add a custom implementation of cpu_lock_delay() for x86. 2018-11-05 22:54:03 +00:00
dump_machdep.c sys/x86: further adoption of SPDX licensing ID tags. 2017-11-27 15:11:47 +00:00
fdt_machdep.c sys/x86: further adoption of SPDX licensing ID tags. 2017-11-27 15:11:47 +00:00
identcpu.c x86/identcpu.c whitespace cleanup. 2020-02-21 16:55:28 +00:00
intr_machdep.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
io_apic.c Do not spuriously re-enable disabled io_apic pin on EOI for some configurations. 2020-03-18 21:34:52 +00:00
legacy.c Stop listing "on motherboard" as the parent of nexus devices on x86. 2019-08-14 22:13:11 +00:00
local_apic.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
mca.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
mp_watchdog.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
mp_x86.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
mptable_pci.c Drop "All rights reserved" from my copyright statements. 2019-03-06 22:11:45 +00:00
mptable.c Drop "All rights reserved" from my copyright statements. 2019-03-06 22:11:45 +00:00
msi.c Add support for Hygon Dhyana Family 18h processor. 2020-01-21 13:22:35 +00:00
nexus.c Move phys_avail definition into MI code. It is consumed in the MI layer and 2019-08-16 00:45:14 +00:00
pvclock.c
stack_machdep.c Reimplement stack capture of running threads on i386 and amd64. 2020-01-31 15:43:33 +00:00
tsc.c Improve TSC calibration logic. 2020-04-15 22:28:51 +00:00
ucode.c Free microcode memory later. 2019-05-17 17:11:01 +00:00
x86_mem.c