freebsd kernel with SKQ
Go to file
Mark Johnston ec492b13f1 Add a small allocator for exec_map entries.
Upon each execve, we allocate a KVA range for use in copying data to the
new image. Pages must be faulted into the range, and when the range is
freed, the backing pages are freed and their mappings are destroyed. This
is a lot of needless overhead, and the exec_map management becomes a
bottleneck when many CPUs are executing execve concurrently. Moreover, the
number of available ranges is fixed at 16, which is insufficient on large
systems and potentially excessive on 32-bit systems.

The new allocator reduces overhead by making exec_map allocations
persistent. When a range is freed, pages backing the range are marked clean
and made easy to reclaim. With this change, the exec_map is sized based on
the number of CPUs.

Reviewed by:	kib
MFC after:	1 month
Differential Revision:	https://reviews.freebsd.org/D8921
2017-01-05 01:44:12 +00:00
bin pax(1): Fix a bug with archives smaller than 512 bytes. 2016-12-21 15:26:59 +00:00
cddl Convert ipv4_flags and ipv4_offset fields into host byte order. 2016-12-29 20:27:54 +00:00
contrib MFV r311279: zlib 1.2.10. 2017-01-04 16:09:08 +00:00
crypto MFV r308196: 2016-11-02 06:49:25 +00:00
etc Update ntp.conf to use the ntpd pool feature. 2017-01-02 15:19:22 +00:00
gnu Add WITH_LLD_AS_LD build knob 2016-11-25 13:15:28 +00:00
include Remove some uses of the GCC __nonnull() attribute. 2017-01-01 17:16:47 +00:00
kerberos5 Conditionalize adding ${KRB5DIR}/lib/gssapi/krb5/gkrb5_err.et to ETSRCS 2017-01-02 19:03:01 +00:00
lib __vdso_gettc(): be extra careful with /dev/hpet mappings, never unmap 2017-01-04 16:10:52 +00:00
libexec Don't use high precision clock for expiration as only second portion is 2016-12-26 17:23:09 +00:00
release Revert r309339, thus re-instating r309314 2016-12-16 23:05:47 +00:00
rescue DIRDEPS_BUILD: Update dependencies. 2016-11-13 00:11:30 +00:00
sbin Remove dead code in dhclient(8) 2017-01-04 18:13:05 +00:00
secure Only bake krb5_config.h support in to ssh(3), etc if both MK_GSSAPI and 2017-01-02 20:29:50 +00:00
share Fix typo 2017-01-03 21:11:30 +00:00
sys Add a small allocator for exec_map entries. 2017-01-05 01:44:12 +00:00
targets Merge ^/head r308491 through r308841. 2016-11-19 16:05:55 +00:00
tests Bump WARNS to 6 to catch simple QA issues like some of the ones I squashed 2017-01-01 04:02:06 +00:00
tools Remove llvm-objdump when Clang is disabled. It was missed in r310889. 2017-01-04 21:55:52 +00:00
usr.bin Misc Coverity fixes for tail(1) 2017-01-04 23:22:34 +00:00
usr.sbin style cleanup 2017-01-04 17:54:44 +00:00
.arcconfig callsign isn't required anymore 2016-09-29 06:19:45 +00:00
.arclint phabricator related changes: 2015-04-20 20:33:22 +00:00
COPYRIGHT Bump copyright year. 2016-12-31 12:41:42 +00:00
LOCKS
MAINTAINERS Remove myself from kern_timeout.c yeah! 2016-07-27 20:37:32 +00:00
Makefile Add missing files in zlib 1.2.8. 2017-01-04 08:12:31 +00:00
Makefile.inc1 Only bake krb5_config.h support in to ssh(3), etc if both MK_GSSAPI and 2017-01-02 20:29:50 +00:00
Makefile.libcompat Fix build of lib32 libraries for amd64 and powerpc64 with cross toolchain 2016-12-25 15:39:52 +00:00
ObsoleteFiles.inc Make /usr/lib/libbsnmptools.so.0 into an INTERRNALLIB 2017-01-03 22:31:05 +00:00
README Vendor import of zlib 1.2.10. 2017-01-04 09:37:45 +00:00
UPDATING Put a tentative import date in ObsoleteFiles.inc and UPDATING. 2016-12-17 18:35:17 +00:00

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

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)
and http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
for more information, including setting make(1) variables.

The `buildkernel` and `installkernel` targets build and install
the kernel and the modules (see below).  Please see the top of
the Makefile in this directory for more information on the
standard build targets and compile-time flags.

Building a kernel is a somewhat more involved process.  See build(7), config(8),
and http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html
for more information.

Note: If you want to build and install the kernel with the
`buildkernel` and `installkernel` targets, you might need to build
world before.  More information is available in the handbook.

The kernel configuration files reside in the sys/<arch>/conf
sub-directory.  GENERIC is the default configuration used in release builds.
NOTES contains entries and documentation for all possible
devices, not just those commonly used.


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.

sys		Kernel sources.

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:

  http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/synching.html