#
303975 |
|
11-Aug-2016 |
gjb |
Copy stable/11@r303970 to releng/11.0 as part of the 11.0-RELEASE cycle.
Prune svn:mergeinfo from the new branch, and rename it to RC1.
Update __FreeBSD_version.
Use the quarterly branch for the default FreeBSD.conf pkg(8) repo and the dvd1.iso packages population.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
302408 |
|
08-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
#
290989 |
|
17-Nov-2015 |
nwhitehorn |
Where appropriate, use the endian-flipping OF_getencprop() instead of OF_getprop() to get encode-int encoded values from the OF tree. This is a no-op at present, since all existing PowerPC ports are big-endian, but it is a correctness improvement and will be required if we have a little-endian kernel at some future point.
Where it is totally impossible for the code ever to be used on a little-endian system (much of powerpc/powermac, for instance), I have not necessarily made the appropriate changes.
MFC after: 1 month
|
#
280147 |
|
16-Mar-2015 |
nwhitehorn |
Convert PTE eviction lock from an RW lock to a RM lock. It is held for writing approximately never (< 0.00000001% under heavy VM load, and it can go for months without ever being acquired in normal operation). This provides a 10% (2-minute) improvement in wall clock time for make -j32 buildworld on a 4-core 32-thread POWER8.
|
#
279940 |
|
13-Mar-2015 |
nwhitehorn |
Deallocate any leftover page table entries in the LPAR at boot. This prevents contamination from a previous kernel (e.g. after shutdown -r).
|
#
279252 |
|
24-Feb-2015 |
nwhitehorn |
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
|
#
278456 |
|
09-Feb-2015 |
nwhitehorn |
Mark invalid page table entries correctly for PMAP as well as for the hypervisor. This prevents an infinite loop where processes with evicted pages would page fault forever when PMAP decided the evicted pages on which the process was faulting was actually present and did not need to be restored.
Found while building LLVM with make -j32.
Sponsored by: FreeBSD Foundation
|
#
278434 |
|
09-Feb-2015 |
nwhitehorn |
Fix typo in PTE insertion overflow handling: use the page we're actually returning, not the one we just looked at.
|
#
278389 |
|
08-Feb-2015 |
nwhitehorn |
Add some error checking on the supplied page size list. This makes sure that we (a) get the correct large page size to provide to pmap and (b) we can alert the user if running under incorrectly-configured PowerKVM on POWER7 and POWER8 systems.
MFC after: 1 week
|
#
258503 |
|
23-Nov-2013 |
andreast |
Limit the large page size to 16MB for now.
MFC after: 1 week
|
#
257473 |
|
31-Oct-2013 |
andreast |
Ouch, do the shift properly. An uin64_t needs the right postfix when shifting.
|
#
255909 |
|
27-Sep-2013 |
nwhitehorn |
Make sure that ref and changed bits propagate back to the VM layer whenever pages are unmapped. The old code had several races that could allow these to become stale.
Approved by: re (kib)
|
#
255643 |
|
17-Sep-2013 |
nwhitehorn |
Merge in support for PAPR-compliant (Power Architecture Platform Requirements) systems from the projects/pseries branch. This in principle includes all IBM POWER hardware released in the last 15 years with the exception of POWER3-based systems when run in 64-bit mode. The main development target, however, has been the PAPR logical partition support that is the default target in KVM on POWER and QEMU -- mileage may vary on actual hardware at present. Much of the heavy lifting here was done by Andreas Tobler.
Approved by: re (kib)
|