freebsd-dev/sys/x86/x86
Eric van Gyzen 2f32a971b7 Wait longer for a previous IPI to be sent
When sending an IPI, if a previous IPI is still pending delivery,
native_lapic_ipi_vectored() waits for the previous IPI to be sent.
We've seen a few inexplicable panics with the current timeout of 50 ms.
Increase the timeout to 1 second and make it tunable.

No hardware specification mentions a timeout in this case; I checked
the Intel SDM, Intel MP spec, and Intel x2APIC spec.  Linux and illumos
wait forever.  In Linux, see __default_send_IPI_shortcut() in
arch/x86/kernel/apic/ipi.c.  In illumos, see apic_send_ipi() in
usr/src/uts/i86pc/io/pcplusmp/apic_common.c.  However, misbehaving hardware
could hang the system if we wait forever.

Reviewed by:	mav kib
MFC after:	1 week
Sponsored by:	Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D29942
2021-04-30 13:32:29 -05:00
..
autoconf.c
bus_machdep.c Generalize bus_space(9) and atomic(9) sanitizer interceptors 2021-03-22 22:21:53 -04:00
busdma_bounce.c x86 busdma_bounce: use malloc_domainset_aligned(9). 2021-01-17 19:29:05 +02:00
busdma_machdep.c Move the iommu stubs to a generic place, so they are available on all the 2020-10-23 21:27:48 +00:00
cpu_machdep.c Balance parentheses in sysctl descriptions 2021-04-11 10:30:55 +02:00
dbreg.c x86: implement kdb watchpoint functions 2021-03-29 12:05:43 -03:00
delay.c Add a custom implementation of cpu_lock_delay() for x86. 2018-11-05 22:54:03 +00:00
dump_machdep.c
fdt_machdep.c
identcpu.c x86 identcpu.c: fix formatting of the comment. 2021-01-10 04:42:33 +02: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 Rename kernel option ACPI_DMAR to IOMMU. 2020-09-29 20:29:07 +00:00
legacy.c x86: clean up empty lines in .c and .h files 2020-09-01 21:23:59 +00:00
local_apic.c Wait longer for a previous IPI to be sent 2021-04-30 13:32:29 -05:00
mca.c mca: Handle inconsistent CMCI capability reporting 2021-02-08 14:42:54 -05: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 gdb: allow setting/removing hardware watchpoints 2021-03-30 11:36:41 -03:00
mptable_pci.c x86: clean up empty lines in .c and .h files 2020-09-01 21:23:59 +00:00
mptable.c x86: clean up empty lines in .c and .h files 2020-09-01 21:23:59 +00:00
msi.c Rename kernel option ACPI_DMAR to IOMMU. 2020-09-29 20:29:07 +00:00
nexus.c Avoid dump_avail[] redefinition. 2020-10-14 22:51:40 +00:00
pvclock.c
stack_machdep.c Add a kstack_contains() helper function. 2020-12-01 17:04:46 +00:00
tsc.c x86: tsc: deprioritize TSC on VirtualBox 2021-03-08 14:43:06 -06:00
ucode.c Free microcode memory later. 2019-05-17 17:11:01 +00:00
x86_mem.c x86: clean up empty lines in .c and .h files 2020-09-01 21:23:59 +00:00