freebsd-skq/sys/i386
kib b8cb7e293a Optimize i386 pmap_extract_and_hold().
In particular, stop using pmap_pte() to read non-promoted pte while
walking the page table.  pmap_pte() needs to shoot down the kernel
mapping globally which causes IPI broadcast.  Since
pmap_extract_and_hold() is used for slow copyin(9), it is very
significant hit for the 4/4 kernels.

Instead, create single purpose per-processor page frame and use it to
locally map page table page inside the critical section, to avoid
reuse of the frame by other thread if context switched.

Measurement demostrated very significant improvements in any load that
utilizes copyin/copyout.

Found and benchmarked by:	bde
Sponsored by:	The FreeBSD Foundation
2018-05-25 16:29:22 +00:00
..
acpica Rename assym.s to assym.inc 2018-03-20 17:58:51 +00:00
bios Use NULL for SYSINIT's last arg, which is a pointer type 2018-05-18 17:58:09 +00:00
cloudabi32 Use TO_PTR() to convert integers to pointers. 2017-11-26 14:45:56 +00:00
conf Enable kernel dump features in GENERIC for most platforms. 2018-05-19 19:53:23 +00:00
i386 Optimize i386 pmap_extract_and_hold(). 2018-05-25 16:29:22 +00:00
ibcs2 Fix kernel memory disclosure in ibcs2_getdents 2018-03-21 23:26:42 +00:00
include Optimize i386 pmap_extract_and_hold(). 2018-05-25 16:29:22 +00:00
linux Avoid two suword() calls per auxarg entry. 2018-05-24 16:25:18 +00:00
pci Correct pseudo misspelling in sys/ comments 2018-02-23 18:15:50 +00:00
Makefile