freebsd-dev/sys/powerpc/aim
Nathan Whitehorn 827cc9b981 New pmap implementation for 64-bit PowerPC processors. The main focus of
this change is to improve concurrency:
- Drop global state stored in the shadow overflow page table (and all other
  global state)
- Remove all global locks
- Use per-PTE lock bits to allow parallel page insertion
- Reconstruct state when requested for evicted PTEs instead of buffering
  it during overflow

This drops total wall time for make buildworld on a 32-thread POWER8 system
by a factor of two and system time by a factor of three, providing performance
20% better than similarly clocked Core i7 Xeons per-core. Performance on
smaller SMP systems, where PMAP lock contention was not as much of an issue,
is nearly unchanged.

Tested on:	POWER8, POWER5+, G5 UP, G5 SMP (64-bit and 32-bit kernels)
Merged from:	user/nwhitehorn/ppc64-pmap-rework
Looked over by:	jhibbits, andreast
MFC after:	3 months
Relnotes:	yes
Sponsored by:	FreeBSD Foundation
2015-02-24 21:37:20 +00:00
..
interrupt.c Fix the Wii build, and remove an extraneous critical_enter(). 2013-10-16 04:11:42 +00:00
locore32.S Remove FreeBSD/wii. 2015-02-10 06:35:16 +00:00
locore64.S Make sure to relocate tmpstk with everything else and avoid processing 2015-01-21 19:09:15 +00:00
locore.S MFppc64: 2010-07-13 05:32:19 +00:00
machdep.c Remove FreeBSD/wii. 2015-02-10 06:35:16 +00:00
mmu_oea64.c New pmap implementation for 64-bit PowerPC processors. The main focus of 2015-02-24 21:37:20 +00:00
mmu_oea64.h New pmap implementation for 64-bit PowerPC processors. The main focus of 2015-02-24 21:37:20 +00:00
mmu_oea.c Remove FreeBSD/wii. 2015-02-10 06:35:16 +00:00
moea64_if.m New pmap implementation for 64-bit PowerPC processors. The main focus of 2015-02-24 21:37:20 +00:00
moea64_native.c New pmap implementation for 64-bit PowerPC processors. The main focus of 2015-02-24 21:37:20 +00:00
mp_cpudep.c On 64-bit PowerPC, use more native forms of the PPC 970 HID restore 2015-01-21 02:57:54 +00:00
slb.c Flip the semantic of M_NOWAIT to only require the allocation to not 2012-11-14 20:01:40 +00:00
trap_subr32.S Use relocation-safe methods to determine the sizes of the exception handlers. 2015-01-23 07:36:51 +00:00
trap_subr64.S Kernel support for the Vector-Scalar eXtension (VSX) found on the POWER7 2015-02-22 21:40:27 +00:00
trap.c Kernel support for the Vector-Scalar eXtension (VSX) found on the POWER7 2015-02-22 21:40:27 +00:00
uma_machdep.c Rename global cnt to vm_cnt to avoid shadowing. 2014-03-22 10:26:09 +00:00