freebsd with flexible iflib nic queues
Go to file
Attilio Rao c7aebda8a1 The soft and hard busy mechanism rely on the vm object lock to work.
Unify the 2 concept into a real, minimal, sxlock where the shared
acquisition represent the soft busy and the exclusive acquisition
represent the hard busy.
The old VPO_WANTED mechanism becames the hard-path for this new lock
and it becomes per-page rather than per-object.
The vm_object lock becames an interlock for this functionality:
it can be held in both read or write mode.
However, if the vm_object lock is held in read mode while acquiring
or releasing the busy state, the thread owner cannot make any
assumption on the busy state unless it is also busying it.

Also:
- Add a new flag to directly shared busy pages while vm_page_alloc
  and vm_page_grab are being executed.  This will be very helpful
  once these functions happen under a read object lock.
- Move the swapping sleep into its own per-object flag

The KPI is heavilly changed this is why the version is bumped.
It is very likely that some VM ports users will need to change
their own code.

Sponsored by:	EMC / Isilon storage division
Discussed with:	alc
Reviewed by:	jeff, kib
Tested by:	gavin, bapt (older version)
Tested by:	pho, scottl
2013-08-09 11:11:11 +00:00
bin Add -c flag to pgrep(1) and pkill(1), to match login classes. 2013-08-09 08:38:51 +00:00
cddl MFV r254079: 2013-08-08 23:38:31 +00:00
contrib - Fix compile errors from the clang conversion 2013-08-09 03:29:46 +00:00
crypto MFV r254106 (OpenSSL bugfix for RT #2984): 2013-08-08 22:29:35 +00:00
etc Add empty zones for Shared Address Space (RFC 6598) 2013-08-09 07:57:04 +00:00
games
gnu Part of r245761 makes "grep -D skip" broken for pipes, i.e. 2013-08-08 11:53:47 +00:00
include stdlib.h: Add correct POSIX version for POSIX extensions to C. 2013-07-05 14:16:04 +00:00
kerberos5
lib According to POSIX \ in the fnmatch(3) pattern should escape 2013-08-08 09:04:02 +00:00
libexec Revert r253748,253749 2013-07-28 18:44:17 +00:00
release Fix the bootable CD: 2013-08-03 20:14:29 +00:00
rescue - Trim an unused and bogus Makefile for mount_smbfs. 2013-06-28 21:00:08 +00:00
sbin Change <sys/diskpc98.h> to not redefine the same symbols that are 2013-08-07 00:00:48 +00:00
secure
share The soft and hard busy mechanism rely on the vm object lock to work. 2013-08-09 11:11:11 +00:00
sys The soft and hard busy mechanism rely on the vm object lock to work. 2013-08-09 11:11:11 +00:00
tools Improve the sysctl symbol extraction from the kernel so that it find more 2013-08-07 20:35:26 +00:00
usr.bin Pass variables prefixed with both LD_ and LD_32_ to the run-time linker. 2013-08-07 00:28:17 +00:00
usr.sbin Change <sys/diskpc98.h> to not redefine the same symbols that are 2013-08-07 00:00:48 +00:00
COPYRIGHT
LOCKS
MAINTAINERS Add myself as maintainer for nvme(4), nvd(4) and nvmecontrol(8). 2013-07-31 18:18:02 +00:00
Makefile Fix bug in universe where if upgrade_checks wants a new make, 2013-07-24 17:55:08 +00:00
Makefile.inc1 Generate debug data release dist sets 2013-07-23 19:34:09 +00:00
ObsoleteFiles.inc In r227839, when removing libkvm dependency on procfs(5), 2013-07-10 19:44:43 +00:00
README
UPDATING opensolaris code: translate INVARIANTS to DEBUG and ZFS_DEBUG 2013-08-06 15:51:56 +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.

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.

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