freebsd with flexible iflib nic queues
Go to file
Alan Cox 9e4e511499 Change the order in which the file name, arguments, environment, and
shell command are stored in exec*()'s demand-paged string buffer.  For
a "buildworld" on an 8GB amd64 multiprocessor, the new order reduces
the number of global TLB shootdowns by 31%.  It also eliminates about
330k page faults on the kernel address space.

Change exec_shell_imgact() to use "args->begin_argv" consistently as
the start of the argument and environment strings.  Previously, it
would sometimes use "args->buf", which is the start of the overall
buffer, but no longer the start of the argument and environment
strings.  While I'm here, eliminate unnecessary passing of "&length"
to copystr(), where we don't actually care about the length of the
copied string.

Clean up the initialization of the exec map.  In particular, use the
correct size for an entry, and express that size in the same way that
is used when an entry is allocated.  The old size was one page too
large.  (This discrepancy originated in 2004 when I rewrote
exec_map_first_page() to use sf_buf_alloc() instead of the exec map
for mapping the first page of the executable.)

Reviewed by:	kib
2010-07-25 17:43:38 +00:00
bin Fix alignment for the 'flags' label, and make more room for 'tdev'. 2010-07-24 15:37:36 +00:00
cddl Catch up with r210324. d_buf will be NULL for SHT_NOBITS sections, do not 2010-07-23 22:24:25 +00:00
contrib Merge r210464 from vendor/ncurses/dist: 2010-07-25 11:48:27 +00:00
crypto More commas 2010-06-01 22:46:57 +00:00
etc Upgrade our Clang in base to r108428. 2010-07-20 17:16:57 +00:00
games Add -p option to have pom(6) print just the percentage, without extra text. 2010-07-15 00:16:04 +00:00
gnu kgdb: correctly map sections to addresses in elf object modules (amd64) 2010-07-23 17:21:23 +00:00
include Connect powerpc64 to the build. It is not presently part of make universe, 2010-07-13 21:19:59 +00:00
kerberos5 Fix a typo. 2010-01-09 18:53:03 +00:00
lib Apply a small grammar fix to {toupper,tolower}(3). 2010-07-25 13:32:19 +00:00
libexec RTLD support for powerpc64. A few small modifications to the Makefile 2010-07-10 17:43:24 +00:00
release add some modern stuff: SMP, SCHED_ULE, PREEMPTION 2010-07-15 16:32:59 +00:00
rescue Enable liblzma support in libarchive 2010-05-10 15:28:44 +00:00
sbin Export PCI IDs of ATA/SATA controllers through CAM and ata(4) layers to 2010-07-25 15:43:52 +00:00
secure OpenSSL configuration for powerpc64 2010-07-10 22:07:48 +00:00
share - Regenerate after adding WITH_GNU_GREP 2010-07-22 19:30:13 +00:00
sys Change the order in which the file name, arguments, environment, and 2010-07-25 17:43:38 +00:00
tools Add BSD grep to the base system and make it our default grep. 2010-07-22 19:11:57 +00:00
usr.bin - Fix --color behaviour to only output color sequences if stdout is a tty 2010-07-25 08:42:18 +00:00
usr.sbin Fix the include path for nfs_lock.h. 2010-07-24 22:16:14 +00:00
COPYRIGHT Happy New Year 2010! :-) 2009-12-31 10:00:37 +00:00
LOCKS Update LOCKS syntax. 2008-06-05 19:47:58 +00:00
MAINTAINERS Add a comment to MAINTAINERS indicating that sbin/routed is in fact 2010-04-10 12:29:09 +00:00
Makefile Connect FDT infrastructure to the build system. 2010-06-13 13:02:43 +00:00
Makefile.inc1 Relax FDT_DTS_FILE validation (and unbreak world build). 2010-07-15 13:21:25 +00:00
Makefile.mips Merge from TBEMD: 2010-06-24 16:28:52 +00:00
ObsoleteFiles.inc Upgrade our Clang in base to r108428. 2010-07-20 17:16:57 +00:00
README
UPDATING Add BSD grep to the base system and make it our default grep. 2010-07-22 19:11:57 +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 ``world''
target should only be used in cases where the source tree has not
changed from the currently running version.  See:
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, documentation
for which can be found at:
   http://www.freebsd.org/doc/en_US.ISO8859-1/books/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.

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.

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