freebsd with flexible iflib nic queues
Go to file
Nate Lawson 4953bccacf Make fxp(4) INTR_MPSAFE (but do not enable MPSAFE just yet):
- Add fxp_start_body() and change fxp_start() to just acquire locks and
  then call fxp_start_body().  Places that would call fxp_start() with
  locks held (mutex recursion) now call fxp_start_body() directly.
  Remove MTX_RECURSE flag from sc_mtx. [gallatin]
- Change fxp_attach() to work without the softc lock, saving interrupt
  hooking until the head of fxp_attach().
- Call ether_ifattach() before overriding ifp parameters. This reverts
  part of 1.155.
- Remove multiple error paths in fxp_attach().
- Teardown interrupt in fxp_detach() before unlocking the softc.
- Make sure mutex is not held in fxp_release()
- Delete the miibus instance and/or self in fxp_release(), not in
  fxp_detach().  This can happen if attach fails partway through.
- Move ifmedia_removeall to fxp_release() since attach may fail after
  media have been allocated.
- Add locking to fxp_suspend, fxp_resume, fxp_start, fxp_intr,
  fxp_poll, fxp_tick, fxp_ioctl, fxp_watchdog.
- Pass in ifp to fxp_intr_body since its callers sometimes already use
  it.
- Add compatibility define for INTR_MPSAFE for 4.x. [gallatin]
- You don't need to bzero softc.

Ideas from:	gallatin, mux
Tested by:	>400M packets of dd/ssh, NFS, ping on i386 UP
2003-04-25 09:01:54 +00:00
bin Revert the zombie part of previous commit 2003-04-15 18:49:20 +00:00
contrib Teach gcc how to put unitialized data into BSS on FreeBSD. 2003-04-13 01:04:01 +00:00
crypto Nit. 2003-04-23 17:23:06 +00:00
etc Use $ipnat_program instead of the hardcoded path, which was wron 2003-04-24 18:14:52 +00:00
games Add an option to print the time in 12-hour format. 2003-03-28 16:37:45 +00:00
gnu Removed invasion into these makefiles by the "legacy" stuff; 2003-04-12 14:44:49 +00:00
include Add stub implementations of pthread_[gs]etconcurrency to libc_r and 2003-04-20 01:53:13 +00:00
kerberos5 Migrate to a new way of dealing with building from old revisions of 2003-04-05 20:30:30 +00:00
lib Restore bzip2(1) support in loader(8) after Peter's renames of 2003-04-25 06:44:56 +00:00
libexec properly refuse a connection in the -c case if the client ip's subdirectory 2003-04-19 10:14:43 +00:00
release Removing comment in some text files for fixit floppy overflow. 2003-04-25 06:08:11 +00:00
sbin Change default to be 'process all events before calling daemon.' 2003-04-25 02:13:42 +00:00
secure Remove Kerberos IV shims. 2003-04-23 17:26:01 +00:00
share device s/acpica/acpi/ 2003-04-24 09:54:18 +00:00
sys Make fxp(4) INTR_MPSAFE (but do not enable MPSAFE just yet): 2003-04-25 09:01:54 +00:00
tools Sync with latest and greatest Apple sources (which, among other things, fix 2003-04-23 23:42:23 +00:00
usr.bin Aristotle dies in 02 Oct 322 BC not in March. 2003-04-24 09:54:02 +00:00
usr.sbin Similar to chmod(1); make -v -v mean very verbose and show 2003-04-25 08:57:55 +00:00
COPYRIGHT
MAINTAINERS I'd like to keep an eye on nsdispatch and friends for a while. 2003-04-18 21:17:46 +00:00
Makefile Kill upgrade target docs. It too is stale. 2003-04-03 05:34:36 +00:00
Makefile.inc1 Rename KRNLSRCDIR to KERNSRCDIR and allow it to be overridden. The name 2003-04-16 21:05:06 +00:00
README KerberosIV de-orbit burn continues. Disconnect from "make world". 2003-03-08 10:01:26 +00:00
UPDATING Add warning about a potential hang on boot at devd after 20030507 if 2003-04-25 02:10: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/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.

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