freebsd-dev/sys/x86
Alexander Motin 23ce462092 Make lapic_ipi_vectored(APIC_IPI_DEST_SELF) NMI safe.
Sending IPI to self or all CPUs does not require write into upper part of
the ICR, prone to races.  Previously the code disabled interrupts, but it
was not enough for NMIs.  Instead of that when possible write only lower
part of the register, or use special SELF IPI register in x2APIC mode.

This also removes ICR reads used to preserve reserved bits on write.
It was there from the beginning, but I failed to find explanation why,
neither I see Linux doing it.  Specification even tells that ICR content
may be lost in deep C-states, so if hardware does not bother to preserve
it, why should we?

MFC after:	2 weeks
Sponsored by:	iXsystems, Inc.
2020-07-24 19:54:15 +00:00
..
acpica Call acpi_pxm_set_proximity_info() slightly earlier on x86. 2020-05-14 16:07:27 +00:00
bios Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
conf Floppy driver really only works on x86 2019-08-12 22:58:50 +00:00
cpufreq Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
include hwpmc: Always set pmc_cpuid to something 2020-07-14 22:25:06 +00:00
iommu Move sys/iommu.h to dev/iommu/ as a part of generic IOMMU busdma backend. 2020-07-21 13:50:10 +00:00
isa Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
pci Add pci_early function to detect Intel stolen memory. 2018-10-31 23:17:00 +00:00
x86 Make lapic_ipi_vectored(APIC_IPI_DEST_SELF) NMI safe. 2020-07-24 19:54:15 +00:00
xen amd64: allow parallel shootdown IPIs 2020-07-14 20:37:50 +00:00