ba0ced82ea
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 |
||
---|---|---|
.. | ||
autoconf.c | ||
bus_machdep.c | ||
busdma_bounce.c | ||
busdma_machdep.c | ||
cpu_machdep.c | ||
delay.c | ||
dump_machdep.c | ||
fdt_machdep.c | ||
identcpu.c | ||
intr_machdep.c | ||
io_apic.c | ||
legacy.c | ||
local_apic.c | ||
mca.c | ||
mp_watchdog.c | ||
mp_x86.c | ||
mptable_pci.c | ||
mptable.c | ||
msi.c | ||
nexus.c | ||
pvclock.c | ||
stack_machdep.c | ||
tsc.c | ||
ucode.c | ||
x86_mem.c |