freebsd_amp_hwpstate/sys/vm
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
..
_vm_radix.h
default_pager.c
device_pager.c
memguard.c
memguard.h
phys_pager.c
pmap.h
redzone.c
redzone.h
sg_pager.c
swap_pager.c
swap_pager.h
uma.h Rationalize per-cpu zones. 2020-11-05 15:08:56 +00:00
uma_core.c uma: fix KTR message after r366840 2020-10-19 18:54:44 +00:00
uma_dbg.c
uma_dbg.h
uma_int.h
vm.h
vm_domainset.c
vm_domainset.h
vm_dumpset.h Avoid dump_avail[] redefinition. 2020-10-14 22:51:40 +00:00
vm_extern.h
vm_fault.c Implement superpages for PowerPC64 (HPT) 2020-11-06 14:12:45 +00:00
vm_glue.c vmspace: Convert to refcount(9) 2020-11-04 16:30:56 +00:00
vm_init.c
vm_kern.c
vm_kern.h
vm_map.c vmspace: Convert to refcount(9) 2020-11-04 16:30:56 +00:00
vm_map.h vmspace: Convert to refcount(9) 2020-11-04 16:30:56 +00:00
vm_meter.c
vm_mmap.c
vm_object.c
vm_object.h
vm_page.c Avoid dump_avail[] redefinition. 2020-10-14 22:51:40 +00:00
vm_page.h Avoid dump_avail[] redefinition. 2020-10-14 22:51:40 +00:00
vm_pageout.c vm_pageout: Avoid rounding down the inactive scan target 2020-10-02 19:16:06 +00:00
vm_pageout.h
vm_pagequeue.h
vm_pager.c
vm_pager.h
vm_param.h
vm_phys.c Flag vm_reserv and vm_phys sysctls as MPSAFE. 2020-09-23 19:36:07 +00:00
vm_phys.h Conditionally compile struct vm_phys_seg's md_first field. This field is 2020-10-23 06:24:38 +00:00
vm_radix.c
vm_radix.h
vm_reserv.c Flag vm_reserv and vm_phys sysctls as MPSAFE. 2020-09-23 19:36:07 +00:00
vm_reserv.h
vm_swapout.c
vm_swapout_dummy.c
vm_unix.c
vnode_pager.c
vnode_pager.h