freebsd-dev/sys/amd64
Konstantin Belousov 3b23ffe271 amd64 pmap: reorder IPI send and local TLB flush in TLB invalidations.
Right now code first flushes all local TLB entries that needs to be
flushed, then signals IPI to remote cores, and then waits for
acknowledgements while spinning idle.  In the VMWare article 'Don’t
shoot down TLB shootdowns!' it was noted that the time spent spinning
is lost, and can be more usefully used doing local TLB invalidation.

We could use the same invalidation handler for local TLB as for
remote, but typically for pmap == curpmap we can use INVLPG for locals
instead of INVPCID on remotes, since we cannot control context
switches on them.  Due to that, keep the local code and provide the
callbacks to be called from smp_targeted_tlb_shootdown() after IPIs
are fired but before spin wait starts.

Reviewed by:	alc, cem, markj, Anton Rang <rang at acm.org>
Tested by:	pho
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
Differential revision:	https://reviews.freebsd.org/D25188
2020-06-10 22:07:57 +00:00
..
acpica Merge ACPICA 20190329. 2019-03-29 20:21:28 +00:00
amd64 amd64 pmap: reorder IPI send and local TLB flush in TLB invalidations. 2020-06-10 22:07:57 +00:00
cloudabi32 Use uintptr_t instead of register_t * for the stack base. 2019-12-03 23:17:54 +00:00
cloudabi64 Use uintptr_t instead of register_t * for the stack base. 2019-12-03 23:17:54 +00:00
conf ice(4): Introduce new driver for Intel E800 Ethernet controllers 2020-05-26 23:35:10 +00:00
ia32 Make ps_strings in struct image_params into a pointer. 2020-04-15 20:21:30 +00:00
include vmm(4): Add 12 user ABI compat after r349948 2020-05-20 17:27:54 +00:00
linux Handle getcpu() calls in vsyscall emulation on amd64. 2020-05-31 18:20:20 +00:00
linux32 Convert canary, execpathp, and pagesizes to pointers. 2020-04-16 21:53:17 +00:00
pci pci_cfgreg.c: Use io port config access for early boot time. 2019-04-09 18:07:17 +00:00
sgx Fix a few places that free a page from an object without busy held. This is 2019-12-02 22:42:05 +00:00
vmm vmm(4): Add 12 user ABI compat after r349948 2020-05-20 17:27:54 +00:00
Makefile