freebsd kernel with SKQ
Go to file
Jeff Roberson a553d4b8eb Rework most of the bucket allocation and free code so that per cpu locks are
never held across blocking operations.  Also, fix two other lock order
reversals that were exposed by jhb's witness change.

The free path previously had a bug that would cause it to skip the free bucket
list in some cases and go straight to allocating a new bucket.  This has been
fixed as well.

These changes made the bucket handling code much cleaner and removed quite a
few lock operations.  This should be marginally faster now.

It is now possible to call malloc w/o Giant and avoid any witness warnings.
This still isn't entirely safe though because malloc_type statistics are not
protected by any lock.
2002-04-08 02:42:55 +00:00
bin errx()/strerror() -> err() 2002-04-07 04:59:13 +00:00
contrib Original code bugfixed. This NOT touch old sorting order a bit. 2002-04-07 00:49:00 +00:00
crypto Nuke stale copy of the pam_ssh(8) source code. 2002-04-06 04:46:01 +00:00
etc Correct path for saver to reflect reality. 2002-04-06 18:02:52 +00:00
games Add a few more tips, and tweak a couple. 2002-04-01 08:53:21 +00:00
gnu Add -lstdc++ to the link args for these C++ tools so that they can be 2002-04-07 02:40:55 +00:00
include o Move some function prototypes from <string.h> to the newly rewritten 2002-04-04 05:41:57 +00:00
kerberos5 Fix build when MAKE_KERBEROS4 is not requested. This was broken with 2002-02-21 15:54:20 +00:00
kerberosIV Install script via SCRIPTS. 2001-12-17 16:52:32 +00:00
lib Reorganize pam_sm_authenticate() to reduce code duplication. 2002-04-07 21:18:18 +00:00
libexec Fix a relocation bug in the ia64 ld.so. Weak function pointers in shared 2002-04-07 04:16:35 +00:00
release Fix handling of undefined variables. 2002-04-07 20:41:09 +00:00
sbin Add the possibility to use a no_rip_out configuration option in order 2002-04-07 17:01:20 +00:00
secure Switch over to using pam_login_access(8) module in sshd(8). 2002-03-26 12:52:28 +00:00
share FreeBSD prior to 4.5-RELEASE and older versions of 5.0-CURRENT do not 2002-04-07 17:03:06 +00:00
sys Rework most of the bucket allocation and free code so that per cpu locks are 2002-04-08 02:42:55 +00:00
tools Play catch up with the kernel. 2002-04-04 16:40:11 +00:00
usr.bin FreeBSD prior to 4.4-RELEASE and older versions of 5.0-CURRENT do 2002-04-07 16:53:47 +00:00
usr.sbin GCC 3.1 cleanup - add a break after default: at the end of a switch 2002-04-07 12:05:05 +00:00
COPYRIGHT
Makefile Makefile.inc0 is no longer used. 2002-03-03 22:37:35 +00:00
Makefile.inc1 Unbreak buildworld after include/Makefile,v 1.167 commit. 2002-04-04 06:49:46 +00:00
Makefile.upgrade Removed "env" commands. "sh" is a real shell, so 2002-03-19 05:58:36 +00:00
README Spell "FreeBSD" correctly. 2002-03-26 12:35:49 +00:00
UPDATING Add two items that have come up in the mailing lists regarding the 2002-04-05 07:42:42 +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 might need to build
world before.  More information is available in the handbook.

The sample kernel configuration files reside in the sys/<arch>/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.

kerberos5	Kerberos5 (Heimdal) package.

kerberosIV	KerberosIV (eBones) 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