opnsense-src/sys
Robert Watson 1d8cd39e71 Change the default disposition of debug.mpsafenet from 0 to 1, which
will cause the network stack to operate without the Giant lock by
default.  This change has the potential to improve performance by
increasing parallelism and decreasing latency in network processing.

Due to the potential exposure of existing or new bugs, the following
compatibility functionality is maintained:

- It is still possible to disable Giant-free operation by setting
  debug.mpsafenet to 0 in loader.conf.

- Add "options NET_WITH_GIANT", which will restore the default value of
  debug.mpsafenet to 0, and is intended for use on systems compiled with
  known unsafe components, or where a more conservative configuration is
  desired.

- Add a new declaration, NET_NEEDS_GIANT("componentname"), which permits
  kernel components to declare dependence on Giant over the network
  stack.  If the declaration is made by a preloaded module or a compiled
  in component, the disposition of debug.mpsafenet will be set to 0 and
  a warning concerning performance degraded operation printed to the
  console.  If it is declared by a loadable kernel module after boot, a
  warning is displayed but the disposition cannot be changed.  This is
  implemented by defining a new SYSINIT() value, SI_SUB_SETTINGS, which
  is intended for the processing of configuration choices after tunables
  are read in and the console is available to generate errors, but
  before much else gets going.

This compatibility behavior will go away when we've finished the last
of the locking work and are confident that operation is correct.
2004-08-28 15:11:13 +00:00
..
alpha Move the kernel-specific logic to adjust frompc from MI to MD. For 2004-08-27 19:42:35 +00:00
amd64 s/smp_rv_mtx/smp_ipi_mtx/g 2004-08-28 00:49:55 +00:00
arm Move the kernel-specific logic to adjust frompc from MI to MD. For 2004-08-27 19:42:35 +00:00
boot Add a few helper functions for zeroing kernel space and reading 2004-08-28 14:57:34 +00:00
cam Add locking to the kqueue subsystem. This also makes the kqueue subsystem 2004-08-15 06:24:42 +00:00
coda Put a version element in the VFS filesystem configuration structure 2004-07-30 22:08:52 +00:00
compat Regenerate after fcntl() wrappers were marked MP safe. 2004-08-24 20:24:34 +00:00
conf Change the default disposition of debug.mpsafenet from 0 to 1, which 2004-08-28 15:11:13 +00:00
contrib From __FreeBSD_version 600001 on PFIL_HOOKS is permanently in the kernel and 2004-08-27 20:01:08 +00:00
crypto Use __FBSDID(). 2004-06-14 00:38:54 +00:00
ddb Damage control. Correcly advance symtab and strtab pointers, not 2004-07-28 08:59:08 +00:00
dev Tag a last set of PCI network interfaces as IFF_NEEDSGIANT until they 2004-08-28 15:10:35 +00:00
doc Experimental support for using doxygen to generate kernel documentation. 2004-07-11 16:13:57 +00:00
fs Remove bogus vrele() call added in previous. 2004-08-27 11:24:31 +00:00
gdb Comment-out the debugging printf I left in in case there were some 2004-08-10 19:32:33 +00:00
geom Use sc->sc_mediasize instead of sc->sc_provider->mediasize which contains 2004-08-28 02:35:43 +00:00
gnu Add locking to the kqueue subsystem. This also makes the kqueue subsystem 2004-08-15 06:24:42 +00:00
i4b Apply error and success logic consistently to the function netisr_queue() and 2004-08-27 18:33:08 +00:00
i386 s/smp_rv_mtx/smp_ipi_mtx/g 2004-08-28 00:49:55 +00:00
ia64 Catch up with the drive-by renaming of IA32 to COMPAT_IA32. Missed 2004-08-27 21:57:00 +00:00
isa Improve sync recovery algorithm: 2004-08-27 21:25:16 +00:00
isofs/cd9660 Put a version element in the VFS filesystem configuration structure 2004-07-30 22:08:52 +00:00
kern 1. try to use existing mailbox address in thread_update_usr_ticks. 2004-08-28 04:16:32 +00:00
libkern Move the kernel-specific logic to adjust frompc from MI to MD. For 2004-08-27 19:42:35 +00:00
modules opt_pfil_hooks.h is no longer required. 2004-08-27 19:57:33 +00:00
net Change the default disposition of debug.mpsafenet from 0 to 1, which 2004-08-28 15:11:13 +00:00
net80211 Add a new network interface flag, IFF_NEEDSGIANT, which will allow 2004-07-27 23:20:45 +00:00
netatalk Inline umich license from COPYRIGHT to make it clear what license the 2004-08-10 03:23:05 +00:00
netatm Avoid casts as lvalues. 2004-07-28 06:59:55 +00:00
netgraph Apply error and success logic consistently to the function netisr_queue() and 2004-08-27 18:33:08 +00:00
netinet Apply error and success logic consistently to the function netisr_queue() and 2004-08-27 18:33:08 +00:00
netinet6 Apply error and success logic consistently to the function netisr_queue() and 2004-08-27 18:33:08 +00:00
netipsec Apply error and success logic consistently to the function netisr_queue() and 2004-08-27 18:33:08 +00:00
netipx Avoid casts as lvalues. Declare local variable as u_char * instead of 2004-07-28 06:58:23 +00:00
netkey Semi-gratuitous white space synchronization with KAME tree: to reduce 2004-08-27 18:41:41 +00:00
netnatm Constify send and receive space constants in natm. 2004-06-24 03:11:29 +00:00
netncp Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
netsmb Avoid casts as lvalues. 2004-07-28 06:59:55 +00:00
nfs Remove advertising clause from University of California Regent's 2004-04-07 05:00:01 +00:00
nfs4client Put a version element in the VFS filesystem configuration structure 2004-07-30 22:08:52 +00:00
nfsclient In nfs_timer(), pass curthread rather than &thread0 into the protocol 2004-08-25 01:23:38 +00:00
nfsserver Convert a mtx_lock(&Giant) to a mtx_unlock(&Giant) in nfsrv_link() to 2004-08-25 16:52:59 +00:00
opencrypto Don't acquire Giant in cryptof_close(), as the code is intended to be 2004-08-10 03:26:17 +00:00
pc98 Always compile PFIL_HOOKS into the kernel and remove the associated kernel 2004-08-27 15:16:24 +00:00
pccard Move PNP IDs back into oldcard files 2004-08-13 06:57:31 +00:00
pci Tag a last set of PCI network interfaces as IFF_NEEDSGIANT until they 2004-08-28 15:10:35 +00:00
posix4
powerpc Move the kernel-specific logic to adjust frompc from MI to MD. For 2004-08-27 19:42:35 +00:00
rpc fix array index out of bounds in rpc->rc_srtt[], rpc->rc_sdrtt[] 2004-07-15 22:21:25 +00:00
security Allow mac_bsdextended(4) to log failed attempts to syslog's AUTHPRIV 2004-08-21 20:19:19 +00:00
sparc64 Move the kernel-specific logic to adjust frompc from MI to MD. For 2004-08-27 19:42:35 +00:00
sys Change the default disposition of debug.mpsafenet from 0 to 1, which 2004-08-28 15:11:13 +00:00
tools Pass doxygen doc comments through to the output. 2004-07-11 16:14:24 +00:00
ufs Currently, if the secure level is low enough, system flags can 2004-08-22 02:03:41 +00:00
vm Move the cow field between wire_count and hold_count. This is the 2004-08-22 20:52:23 +00:00
Makefile Add a NO_BOOT knob to prevent building the boot blocks and loader. 2004-08-19 09:54:28 +00:00