freebsd-dev/sys/powerpc/powerpc
Leandro Lupori e2d6c417e3 Implement superpages for PowerPC64 (HPT)
This change adds support for transparent superpages for PowerPC64
systems using Hashed Page Tables (HPT). All pmap operations are
supported.

The changes were inspired by RISC-V implementation of superpages,
by @markj (r344106), but heavily adapted to fit PPC64 HPT architecture
and existing MMU OEA64 code.

While these changes are not better tested, superpages support is disabled by
default. To enable it, use vm.pmap.superpages_enabled=1.

In this initial implementation, when superpages are disabled, system
performance stays at the same level as without these changes. When
superpages are enabled, buildworld time increases a bit (~2%). However,
for workloads that put a heavy pressure on the TLB the performance boost
is much bigger (see HPC Challenge and pgbench on D25237).

Reviewed by:	jhibbits
Sponsored by:	Eldorado Research Institute (eldorado.org.br)
Differential Revision:	https://reviews.freebsd.org/D25237
2020-11-06 14:12:45 +00:00
..
altivec.c powerpc: Simplify _nodrop variants of FPU and vector register saves 2020-03-13 01:27:37 +00:00
autoconf.c
bus_machdep.c [PowerPC] bus_space cleanup part 2: Convert to c99 initializers. 2020-09-13 21:34:32 +00:00
busdma_machdep.c Refine the busdma template interface. Provide tools for filling in fields 2020-09-14 05:58:12 +00:00
clock.c [PowerPC] Implement VDSO timebase access on powerpc* 2020-09-08 03:00:31 +00:00
copyinout.c powerpc: clean up empty lines in .c and .h files 2020-09-01 21:20:08 +00:00
cpu_subr64.S [PowerPC64LE] Fix sleeping on POWER8. 2020-09-23 02:28:19 +00:00
cpu.c [PowerPC] Make PPC 970 PMC SPRs the standard ones 2020-11-05 14:15:50 +00:00
db_disasm.c powerpc: clean up empty lines in .c and .h files 2020-09-01 21:20:08 +00:00
db_hwwatch.c
db_interface.c powerpc: clean up empty lines in .c and .h files 2020-09-01 21:20:08 +00:00
db_trace.c powerpc: clean up empty lines in .c and .h files 2020-09-01 21:20:08 +00:00
dump_machdep.c
elf32_machdep.c random(4) FenestrasX: Push root seed version to arc4random(3) 2020-10-10 21:52:00 +00:00
elf64_machdep.c random(4) FenestrasX: Push root seed version to arc4random(3) 2020-10-10 21:52:00 +00:00
elf_common.c [PowerPC] Make new auxv format default 2020-08-24 13:40:35 +00:00
exec_machdep.c [POWERPC] Floating-Point Exception trap support 2020-11-06 13:34:30 +00:00
fpu.c [POWERPC] Floating-Point Exception trap support 2020-11-06 13:34:30 +00:00
gdb_machdep.c [PPC] Handle qOffsets packet 2019-12-16 13:17:39 +00:00
genassym.c powerpc: clean up empty lines in .c and .h files 2020-09-01 21:20:08 +00:00
in_cksum.c [PowerPC64LE] Use correct in_masks table on LE to fix checksumming 2020-09-15 20:47:33 +00:00
interrupt.c [PowerPC] Move pmc_hook out of critical section 2020-09-01 11:30:39 +00:00
intr_machdep.c [PowerPC] Add root_pic assertion. 2020-09-08 22:42:41 +00:00
iommu_if.m
machdep.c [PowerPC] More relocation fixes 2020-06-21 03:39:26 +00:00
mem.c Add the MEM_EXTRACT_PADDR ioctl to /dev/mem. 2020-09-02 18:12:47 +00:00
minidump_machdep.c Avoid dump_avail[] redefinition. 2020-10-14 22:51:40 +00:00
mp_machdep.c powerpc: clean up empty lines in .c and .h files 2020-09-01 21:20:08 +00:00
nexus.c [PowerPC64LE] Bus space prep for LE 2020-09-13 21:22:39 +00:00
openpic.c [PowerPC] Remove unused openpic_set_priority(). 2020-09-01 01:57:56 +00:00
pic_if.m powerpc: Add opaque 'private data' to interrupt vectors 2019-01-12 22:05:42 +00:00
platform_if.m powerpc: Fix the NUMA domain list on powernv 2020-01-18 01:26:54 +00:00
platform.c powerpc: clean up empty lines in .c and .h files 2020-09-01 21:20:08 +00:00
pmap_dispatch.c Implement superpages for PowerPC64 (HPT) 2020-11-06 14:12:45 +00:00
ptrace_machdep.c powerpc/ptrace: Give ptrace(2) access to SPE registers when available 2019-11-22 04:34:46 +00:00
sc_machdep.c sc(4) md bits: stop setting sc->kbd entirely 2019-12-30 02:07:55 +00:00
setjmp.S
sigcode32.S Rename assym.s to assym.inc 2018-03-20 17:58:51 +00:00
sigcode64.S [PowerPC] Save a dword in the powerpc64 signal trampoline 2020-01-17 23:41:35 +00:00
stack_machdep.c Reimplement stack capture of running threads on i386 and amd64. 2020-01-31 15:43:33 +00:00
support.S powerpc: Use IFUNCs for copyin/copyout/etc 2020-06-06 03:09:12 +00:00
swtch32.S [PowerPC] Ensure ppc32 cpu_switch routines set up Secure-PLT. 2020-05-26 02:27:10 +00:00
swtch64.S powerpc64: Fix switch panic from cpu_throw() 2019-04-29 22:37:35 +00:00
syncicache.c powerpc: clean up empty lines in .c and .h files 2020-09-01 21:20:08 +00:00
sys_machdep.c powerpc: clean up empty lines in .c and .h files 2020-09-01 21:20:08 +00:00
trap.c [POWERPC] Floating-Point Exception trap support 2020-11-06 13:34:30 +00:00
uio_machdep.c
uma_machdep.c Tidy up the #includes. Recent changes, such as the introduction of 2020-11-02 19:20:06 +00:00
vm_machdep.c amd64 KPTI: add control from procctl(2). 2019-03-16 11:44:33 +00:00