FreeBSD src
Go to file
dillon d80041be33 This commit represents work mainly submitted by Tor and slightly modified
by myself.  It solves a serious vm_map corruption problem that can occur
with the buffer cache when block sizes > 64K are used.  This code has been
heavily tested in -stable but only tested somewhat on -current.  An MFC
will occur in a few days.  My additions include the vm_map_simplify_entry()
and minor buffer cache boundry case fix.

Make the buffer cache use a system map for buffer cache KVM rather then a
normal map.

Ensure that VM objects are not allocated for system maps.  There were cases
where a buffer map could wind up with a backing VM object -- normally
harmless, but this could also result in the buffer cache blocking in places
where it assumes no blocking will occur, possibly resulting in corrupted
maps.

Fix a minor boundry case in the buffer cache size limit is reached that
could result in non-optimal code.

Add vm_map_simplify_entry() calls to prevent 'creeping proliferation'
of vm_map_entry's in the buffer cache's vm_map.  Previously only a simple
linear optimization was made.  (The buffer vm_map typically has only a
handful of vm_map_entry's.  This stabilizes it at that level permanently).

PR: 20609
Submitted by: (Tor Egge) tegge
2001-02-04 06:19:28 +00:00
bin In the hope of saving others from hours of tedious recovery work, 2001-02-04 02:02:38 +00:00
contrib mdoc(7) police: split punctuation characters + misc fixes. 2001-02-01 17:12:45 +00:00
crypto mdoc(7) police: split punctuation characters + misc fixes. 2001-02-01 17:12:45 +00:00
etc Don't specify root:wheel for tun*, it's the default. 2001-02-03 23:31:31 +00:00
games Unfortunately low-altitude overflights is not enough to make penguins crash. 2001-02-02 22:35:13 +00:00
gnu mdoc(7) police: split punctuation characters + misc fixes. 2001-02-01 16:38:02 +00:00
include Add a lock to DIR to make telldir and friends MT-safe. 2001-01-24 13:01:47 +00:00
kerberos5 Fix ordering for real this time. 2000-08-30 03:44:30 +00:00
kerberosIV add strcollect.c to SRCS (new file in 1.0.5) 2000-12-29 23:44:24 +00:00
lib Spelling. 2001-02-04 02:05:16 +00:00
libexec Fix tftpd and tftp to support file transfers of over 65535 blocks 2001-02-02 10:53:02 +00:00
release Document API CS20 support. 2001-02-03 18:38:24 +00:00
sbin Add an xref for mount_ntfs. 2001-02-02 03:08:48 +00:00
secure Add .Lb libcipher 2001-01-24 14:27:30 +00:00
share Removed vestiges of vop_mmap. 2001-02-02 12:51:22 +00:00
sys This commit represents work mainly submitted by Tor and slightly modified 2001-02-04 06:19:28 +00:00
tools Look for modules in /boot/kernel these days. 2001-01-18 22:36:34 +00:00
usr.bin Fix tftpd and tftp to support file transfers of over 65535 blocks 2001-02-02 10:53:02 +00:00
usr.sbin MPPE_MasterKeyValid is only there if HAVE_DES is defined. 2001-02-04 01:20:33 +00:00
COPYRIGHT Update to add the July 22, 1999 addendum. 1999-09-05 21:33:47 +00:00
Makefile Add back displaying the `world' start time when displaying the stop time. 2000-12-06 04:35:45 +00:00
Makefile.inc1 Provide backwards compatable recognition of ${KERNEL}. You should be 2001-01-23 09:52:50 +00:00
Makefile.upgrade $Id$ -> $FreeBSD$ 1999-08-28 01:35:59 +00:00
README Slightly improve the description of "crypto". "DES" is a subset of 2000-08-31 17:59:01 +00:00
UPDATING Note change of KERNEL to KERNCONF for building instructions. Peter 2001-01-22 08:03:13 +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, the most
commonly used one being ``world'', which rebuilds and installs
everything in the FreeBSD system from the source tree except the
kernel, the kernel-modules and the contents of /etc.  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, documentation
for which can be found at:
   http://www.freebsd.org/handbook/kernelconfig.html
And in the config(8) man page.
Note: If you want to build and install the kernel with the
``buildkernel'' and ``installkernel'' targets, you have to build
world before.  More information is available in the handbook.

The sample kernel configuration files reside in the sys/i386/conf
sub-directory (assuming that you've installed the kernel sources), the
file named GENERIC being the one used to build your initial installation
kernel.  The file NOTES contains entries and documentation for all possible
devices, not just those commonly used.  It is the successor of the ancient
LINT file, but in contrast to LINT, it is not buildable as a kernel but a
pure reference and documentation file.


Source Roadmap:
---------------
bin		System/User commands.

contrib		Packages contributed by 3rd parties.

crypto		Cryptography stuff (see crypto/README).

etc		Template files for /etc

games		Amusements.

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

include		System include files.

kerberosIV	Kerberos package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

sbin		System commands.

secure		Cryptographic libraries and commands.

share		Shared resources.

sys		Kernel sources.

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/handbook/synching.html