Go to file
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
.github/workflows
bin Whitespace cleanup 2020-10-29 14:44:09 +00:00
cddl
contrib snmpmod(3): fix typo under the COMMUNITIES section 2020-11-05 21:37:24 +00:00
crypto
etc
gnu
include
kerberos5
lib pmcstat: fix PPC kernel symbol resolution 2020-11-05 16:47:23 +00:00
libexec Replace literal uses of /usr/local with a variable 2020-11-03 12:29:10 +00:00
release release: Add an image for CI 2020-11-02 21:10:49 +00:00
rescue
sbin Style, not functional changes: 2020-11-03 22:04:32 +00:00
secure
share Add qat(4) 2020-11-05 15:55:23 +00:00
stand loader: add aarch64 support for zstd 2020-10-28 21:18:04 +00:00
sys Implement superpages for PowerPC64 (HPT) 2020-11-06 14:12:45 +00:00
targets
tests cryptotest: Add qat(4) coverage 2020-11-05 16:00:57 +00:00
tools Remove unnecessary __DECONST(). 2020-11-03 22:53:23 +00:00
usr.bin Restrict locale settings to the file they occur in 2020-11-05 08:58:21 +00:00
usr.sbin VirtIO: Make sure the guest knows the TRIM alignment requirements 2020-11-05 17:10:14 +00:00
.arcconfig
.arclint
.cirrus.yml CI: switch to qemu42 package 2020-10-29 02:02:30 +00:00
.clang-format
.gitattributes
.gitignore
COPYRIGHT
LOCKS
MAINTAINERS
Makefile pkgbase: Add incremental packages 2020-11-02 18:23:50 +00:00
Makefile.inc1 fix the docs, this was always wrong... In some cases, DISTDIR is set 2020-11-04 23:26:15 +00:00
Makefile.libcompat
Makefile.sys.inc
ObsoleteFiles.inc
README
README.md
RELNOTES
UPDATING Fix year in 2 most recent entries (2010 -> 2020) 2020-11-01 19:13:55 +00:00

README.md

FreeBSD Source:

This is the top level of the FreeBSD source directory. This file was last revised on: FreeBSD

FreeBSD is an operating system used to power modern servers, desktops, and embedded platforms. A large community has continually developed it for more than thirty years. Its advanced networking, security, and storage features have made FreeBSD the platform of choice for many of the busiest web sites and most pervasive embedded networking and storage devices.

For copyright information, please see the file COPYRIGHT in this directory. Additional copyright information also exists for some sources in this tree - please see the specific source directories for more information.

The Makefile in this directory supports a number of targets for building components (or all) of the FreeBSD source tree. See build(7), config(8), https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html, and https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html for more information, including setting make(1) variables.

Source Roadmap:

bin		System/user commands.

cddl		Various commands and libraries under the Common Development
		and Distribution License.

contrib		Packages contributed by 3rd parties.

crypto		Cryptography stuff (see crypto/README).

etc		Template files for /etc.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberos5	Kerberos5 (Heimdal) package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

rescue		Build system for statically linked /rescue utilities.

sbin		System commands.

secure		Cryptographic libraries and commands.

share		Shared resources.

stand		Boot loader sources.

sys		Kernel sources.

sys/<arch>/conf Kernel configuration files. GENERIC is the configuration
		used in release builds. NOTES contains documentation of
		all possible entries.

tests		Regression tests which can be run by Kyua.  See tests/README
		for additional information.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.

For information on synchronizing your source tree with one or more of the FreeBSD Project's development branches, please see:

https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/current-stable.html