freebsd-dev/sys
Matthew Dillon d23f5958bc Add mtx_lock_giant() and mtx_unlock_giant() wrappers for sysctl management
of Giant during the Giant unwinding phase, and start work on instrumenting
Giant for the file and proc mutexes.

These wrappers allow developers to turn on and off Giant around various
subsystems.  DEVELOPERS SHOULD NEVER TURN OFF GIANT AROUND A SUBSYSTEM JUST
BECAUSE THE SYSCTL EXISTS!  General developers should only considering
turning on Giant for a subsystem whos default is off (to help track down
bugs).  Only developers working on particular subsystems who know what
they are doing should consider turning off Giant.

These wrappers will greatly improve our ability to unwind Giant and test
the kernel on a (mostly) subsystem by subsystem basis.   They allow Giant
unwinding developers (GUDs) to emplace appropriate subsystem and structural
mutexes in the main tree and then request that the larger community test
the work by turning off Giant around the subsystem(s), without the larger
community having to mess around with patches.  These wrappers also allow
GUDs to boot into a (more likely to be) working system in the midst of
their unwinding work and to test that work under more controlled
circumstances.

There is a master sysctl, kern.giant.all, which defaults to 0 (off).  If
turned on it overrides *ALL* other kern.giant sysctls and forces Giant to
be turned on for all wrapped subsystems.  If turned off then Giant around
individual subsystems are controlled by various other kern.giant.XXX sysctls.

Code which overlaps multiple subsystems must have all related subsystem Giant
sysctls turned off in order to run without Giant.
2001-10-26 20:48:04 +00:00
..
alpha minor commenting based on syscall environment 2001-10-26 20:35:52 +00:00
amd64 Add APM compatibility feature to ACPI. 2001-10-26 17:43:05 +00:00
arm Remove funky right justification. 2001-10-23 00:42:15 +00:00
boot Just use ${MACHINE}, it's already special-casing pc98. 2001-10-25 09:05:47 +00:00
cam Add a quirk entry so that the Maxtor 3000LE USB drive will work. 2001-10-15 02:05:06 +00:00
coda Change the vnode list under the mount point from a LIST to a TAILQ 2001-10-23 01:21:29 +00:00
compat Reporting device drivers by traversing cdevsw[] is at best a hack 2001-10-26 15:30:44 +00:00
conf Add APM compatibility feature to ACPI. 2001-10-26 17:43:05 +00:00
contrib Remove file obsoleted by the 20010920 snapshot. 2001-10-04 23:17:35 +00:00
crypto properly check DES weak key. KAME PR 363. 2001-07-03 17:46:48 +00:00
ddb Make the flag field in the ps output one char wider to account for recent 2001-10-20 03:22:23 +00:00
dev - Change the taskqueue locking to protect the necessary parts of a task 2001-10-26 18:46:48 +00:00
fs Add VOP_IOCTL support, and fix a bug that would cause a panic if a file or 2001-10-26 18:52:47 +00:00
geom KSE Milestone 2 2001-09-12 08:38:13 +00:00
gnu Change the vnode list under the mount point from a LIST to a TAILQ 2001-10-23 01:21:29 +00:00
i4b fix kvprintf panic in attach routine 2001-10-24 14:12:47 +00:00
i386 Add APM compatibility feature to ACPI. 2001-10-26 17:43:05 +00:00
ia64 Add APM compatibility feature to ACPI. 2001-10-26 17:43:05 +00:00
isa Break out the bus front ends into their own files. Rewrite 2001-10-23 15:17:33 +00:00
isofs/cd9660 KSE Milestone 2 2001-09-12 08:38:13 +00:00
kern Add mtx_lock_giant() and mtx_unlock_giant() wrappers for sysctl management 2001-10-26 20:48:04 +00:00
libkern Implement these using mux1 and extr.u. I'll update the userland versions 2001-10-06 08:35:05 +00:00
modules Add APM compatibility feature to ACPI. 2001-10-26 17:43:05 +00:00
net Remove extra memory region kept by "struct pfil_head pfil_head_t;". 2001-10-22 08:46:23 +00:00
netatalk KSE Milestone 2 2001-09-12 08:38:13 +00:00
netatm KSE Milestone 2 2001-09-12 08:38:13 +00:00
netgraph Fix bug that cheated hook names out of the last 2 bytes. 2001-10-10 19:58:11 +00:00
netinet Don't use the ip_timestamp structure to access timestamp options, as the 2001-10-25 06:27:51 +00:00
netinet6 Pull post-4.4BSD change to sys/net/route.c from BSD/OS 4.2. 2001-10-17 18:07:05 +00:00
netipx KSE Milestone 2 2001-09-12 08:38:13 +00:00
netkey Fixed the value of the prefixlen in the sadb_address structure. 2001-10-22 20:19:47 +00:00
netnatm Change a couple of M_WAITOKs used in M_PREPEND() to M_TRYWAITs, which 2001-04-05 04:20:48 +00:00
netncp Change the kernel's ucred API as follows: 2001-10-11 23:38:17 +00:00
netns
netsmb Map errdos:67 to the ENOENT. 2001-08-21 09:16:57 +00:00
nfs Unwind some more macros. NFSMADV() was kinda silly since it was right 2001-09-28 04:37:08 +00:00
nfsclient o Note an additional potential problem here: LOCKD_MSG directly exports 2001-10-24 02:48:38 +00:00
nfsserver Now that nfsm_reply() does not usually set 'error' to 0, we need 2001-10-25 19:07:56 +00:00
pc98 cn_tab no longer exists, use cnadd() to add a console device. Note that 2001-10-24 18:30:05 +00:00
pccard Add a tunable (hw.pcic.boot_deactivated) which will boot the system 2001-10-23 07:04:03 +00:00
pci Defs for three (unused so far) bits in PCI command/status register 2001-10-25 17:43:26 +00:00
posix4 KSE Milestone 2 2001-09-12 08:38:13 +00:00
powerpc Remove funky right justification. 2001-10-23 00:42:15 +00:00
rpc Bring in a hybrid of SunSoft's transport-independent RPC (TI-RPC) and 2001-03-19 12:50:13 +00:00
sparc64 Add a per-thread ucred reference for syscalls and synchronous traps from 2001-10-26 08:12:54 +00:00
svr4
sys Add mtx_lock_giant() and mtx_unlock_giant() wrappers for sysctl management 2001-10-26 20:48:04 +00:00
tools KSE Milestone 2 2001-09-12 08:38:13 +00:00
ufs Implement kern.maxvnodes. adjusting kern.maxvnodes now actually has a 2001-10-26 00:08:05 +00:00
vm Move recently added procedure which was incorrectly placed within an 2001-10-26 16:27:54 +00:00
Makefile