freebsd-skq/sys
Matthew Dillon d74ac6819b Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt
disablement assumptions in kern_fork.c by adding another API call,
cpu_critical_fork_exit().  Cleanup the td_savecrit field by moving it
from MI to MD.  Temporarily move cpu_critical*() from <arch>/include/cpufunc.h
to <arch>/<arch>/critical.c (stage-2 will clean this up).

Implement interrupt deferral for i386 that allows interrupts to remain
enabled inside critical sections.  This also fixes an IPI interlock bug,
and requires uses of icu_lock to be enclosed in a true interrupt disablement.

This is the stage-1 commit.  Stage-2 will occur after stage-1 has stabilized,
and will move cpu_critical*() into its own header file(s) + other things.
This commit may break non-i386 architectures in trivial ways.  This should
be temporary.

Reviewed by:	core
Approved by:	core
2002-03-27 05:39:23 +00:00
..
alpha Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt 2002-03-27 05:39:23 +00:00
amd64 Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt 2002-03-27 05:39:23 +00:00
arm Guard against redefining __gnuc_va_list. 2002-03-24 11:25:46 +00:00
boot Add option -n to i386 boot2 to disallow boot interruption by keypress. 2002-03-23 19:40:27 +00:00
cam Maxtor Personal Storage 3000XT (Firewire) hangs upon 2002-03-24 00:17:39 +00:00
coda Remove __P. 2002-03-20 05:00:21 +00:00
compat Fixed some style bugs in the removal of __P(()). Tabs before "__P((" 2002-03-24 04:04:50 +00:00
conf Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt 2002-03-27 05:39:23 +00:00
contrib We don't need ip_ipsec_pxy.c in userland. 2002-03-26 13:42:09 +00:00
crypto Remove __P. 2002-03-20 05:14:42 +00:00
ddb Fixed some style bugs in the removal of __P(()). Continuation lines 2002-03-23 11:53:03 +00:00
dev Push BIO_FORMAT into a local hack inside the floppy drivers where 2002-03-26 19:16:37 +00:00
fs Fixed some style bugs in the removal of __P(()). Continuation lines 2002-03-24 04:35:23 +00:00
geom Eliminate some thread pointers which do not make sense anymore. 2002-03-26 22:07:38 +00:00
gnu Moved $FreeBSD$ to the correct place. 2002-03-23 13:48:10 +00:00
i4b Add support for Q.931 subaddresses. 2002-03-26 15:13:54 +00:00
i386 Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt 2002-03-27 05:39:23 +00:00
ia64 Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt 2002-03-27 05:39:23 +00:00
isa Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt 2002-03-27 05:39:23 +00:00
isofs/cd9660 Fixed some style bugs in the removal of __P(()). Continuation lines 2002-03-24 04:35:23 +00:00
kern Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt 2002-03-27 05:39:23 +00:00
libkern Remove 'register' keyword. 2002-03-21 18:49:23 +00:00
modules Fix kernel build. 2002-03-25 08:02:54 +00:00
net Fixed some style bugs in the removal of __P(()). The main ones were 2002-03-24 09:34:04 +00:00
netatalk Remove __P. 2002-03-20 02:39:27 +00:00
netatm Remove __P. 2002-03-20 08:00:54 +00:00
netgraph Fix bugs where the ng_ppp node could transmit PPP frames whose length 2002-03-15 02:31:14 +00:00
netinet Fixed some style bugs in the removal of __P(()). Continuation lines 2002-03-24 10:19:10 +00:00
netinet6 Corrected arguments to key_allocsa called from 2002-03-25 10:46:24 +00:00
netipx Remove __P. 2002-03-20 02:39:27 +00:00
netkey Remove __P. 2002-03-20 02:39:27 +00:00
netnatm Remove __P. 2002-03-20 02:39:27 +00:00
netncp
netns Remove __P. 2002-03-20 02:39:27 +00:00
netsmb Missed this file for select SMP fixes associated with rev 1.93 of 2002-03-14 05:16:18 +00:00
nfs Remove unused include. 2002-03-20 10:12:07 +00:00
nfsclient Remove references to vm_zone.h and switch over to the new uma API. 2002-03-20 10:07:52 +00:00
nfsserver Remove references to vm_zone.h and switch over to the new uma API. 2002-03-20 10:07:52 +00:00
pc98 Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt 2002-03-27 05:39:23 +00:00
pccard Better power code and better power diagnostics 2002-03-20 19:02:08 +00:00
pci smbus_alloc_bus is not part of the smbus interface anymore 2002-03-23 18:27:16 +00:00
posix4 Remove __P. 2002-03-19 22:20:14 +00:00
powerpc Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt 2002-03-27 05:39:23 +00:00
rpc
security/lomac DBA update: pick the right DBA for various LOMAC copyrights. 2002-03-13 22:55:20 +00:00
sparc64 Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt 2002-03-27 05:39:23 +00:00
svr4
sys Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt 2002-03-27 05:39:23 +00:00
tools Return vnode_if back to its AWK roots. 2002-03-01 01:20:23 +00:00
ufs Two minor changes to dirhash, which result in some marginal benchmark 2002-03-20 17:58:02 +00:00
vm Remove an unused prototype. 2002-03-26 05:30:59 +00:00
Makefile