freebsd-dev/sys/powerpc
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
..
aim New pmap implementation for 64-bit PowerPC processors. The main focus of 2015-02-24 21:37:20 +00:00
booke Refactor PowerPC (especially AIM) init sequence to be less baroque. 2015-01-18 18:32:43 +00:00
conf Remove FreeBSD/wii. 2015-02-10 06:35:16 +00:00
cpufreq
fpu Kernel support for the Vector-Scalar eXtension (VSX) found on the POWER7 2015-02-22 21:40:27 +00:00
include New pmap implementation for 64-bit PowerPC processors. The main focus of 2015-02-24 21:37:20 +00:00
mambo
mpc85xx
ofw Remove FreeBSD/wii. 2015-02-10 06:35:16 +00:00
powermac Make the PowerMac fan control nonlinear 2015-02-20 06:19:23 +00:00
powerpc Kernel support for the Vector-Scalar eXtension (VSX) found on the POWER7 2015-02-22 21:40:27 +00:00
ps3 New pmap implementation for 64-bit PowerPC processors. The main focus of 2015-02-24 21:37:20 +00:00
pseries New pmap implementation for 64-bit PowerPC processors. The main focus of 2015-02-24 21:37:20 +00:00
psim