freebsd with flexible iflib nic queues
Go to file
Peter Wemm 6bd95d70db Work-in-progress commit syncing up pmap cleanups that I have been working
on for a while:
- fine grained TLB shootdown for SMP on i386
- ranged TLB shootdowns.. eg: specify a range of pages to shoot down with
  a single IPI, since the IPI is very expensive.  Adjust some callers
  that used to trigger this inside tight loops to do a ranged shootdown
  at the end instead.
- PG_G support for SMP on i386 (options ENABLE_PG_G)
- defer PG_G activation till after we decide what we are going to do with
  PSE and the 4MB pages at the start of the kernel.  This should solve
  some rumored strangeness about stale PG_G entries getting stuck
  underneath the 4MB pages.
- add some instrumentation for the fine TLB shootdown
- convert some asm instruction wrappers from functions to inlines.  gcc
  seems to do a fair bit better with this.
- [temporarily!] pessimize the tlb shootdown IPI handlers.  I will fix
  this again shortly.

This has been working fairly well for me for a while, but I have tweaked
it again prior to commit since my last major testing round.  The only
outstanding problem that I know of is PG_G related, which is why there
is an option for it (not on by default for SMP).  I have seen a world
speedups by a few percent (as much as 4 or 5% in one case) but I have
*not* accurately measured this - I am a bit sceptical of these numbers.
2002-02-25 23:49:51 +00:00
bin Fix a bug introduced in rev.1.23 - for some reason mkdir("/", ...) system 2002-02-25 09:17:44 +00:00
contrib Use the default 'ld' emulation rather than hard coding it. 2002-02-25 04:49:17 +00:00
crypto Update build after import of Heimdal Kerberos 2002/02/17. 2002-02-19 15:53:33 +00:00
etc Make sure we don't remove /etc/mail/sendmail.cf on make clean since this 2002-02-24 02:38:23 +00:00
games Add one. 2002-02-25 21:52:34 +00:00
gnu Use libgcc_p.a when -pg is in effect. 2002-02-24 06:05:22 +00:00
include Per POSIX <grp.h> doesn't require <sys/types.h>. 2002-02-25 17:20:40 +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 Per POSIX <grp.h> doesn't require <sys/types.h>. 2002-02-25 17:20:40 +00:00
libexec Rewrite the part of the conversation function that allocates the reply array; 2002-02-25 16:39:34 +00:00
release Supply -DNO_WERROR to the kernel build during release. 2002-02-25 21:53:18 +00:00
sbin #include <sys/time.h> instead of depending on namespace pollution in 2002-02-25 03:36:06 +00:00
secure o Move NTOHL() and associated macros into <sys/param.h>. These are 2002-02-18 20:35:27 +00:00
share Add a definition for mode page 0x2a "CD capabilities and mechanical 2002-02-24 13:27:57 +00:00
sys Work-in-progress commit syncing up pmap cleanups that I have been working 2002-02-25 23:49:51 +00:00
tools Complete '_' hack. 2002-02-07 19:32:40 +00:00
usr.bin Thoreau listed twice. 2002-02-25 23:26:13 +00:00
usr.sbin Add a hint about -DNO_WERROR 2002-02-25 21:59:57 +00:00
COPYRIGHT Update to add the July 22, 1999 addendum. 1999-09-05 21:33:47 +00:00
Makefile FreeBSD 4.1 bootstrapping aid (``:C'' make(1) modifier used 2002-02-08 09:48:34 +00:00
Makefile.inc1 Obviate the need to set the COMPILER_PATH and LIBRARY_PATH in Makefile.inc1 2002-02-21 10:23:41 +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 Add notes about sendmail update from gshapiro. 2002-02-18 06:29: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, 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