freebsd-skq/sys
John Baldwin 36412d79b4 - Make the mutex code almost completely machine independent. This greatly
reducues the maintenance load for the mutex code.  The only MD portions
  of the mutex code are in machine/mutex.h now, which include the assembly
  macros for handling mutexes as well as optionally overriding the mutex
  micro-operations.  For example, we use optimized micro-ops on the x86
  platform #ifndef I386_CPU.
- Change the behavior of the SMP_DEBUG kernel option.  In the new code,
  mtx_assert() only depends on INVARIANTS, allowing other kernel developers
  to have working mutex assertiions without having to include all of the
  mutex debugging code.  The SMP_DEBUG kernel option has been renamed to
  MUTEX_DEBUG and now just controls extra mutex debugging code.
- Abolish the ugly mtx_f hack.  Instead, we dynamically allocate
  seperate mtx_debug structures on the fly in mtx_init, except for mutexes
  that are initiated very early in the boot process.   These mutexes
  are declared using a special MUTEX_DECLARE() macro, and use a new
  flag MTX_COLD when calling mtx_init.  This is still somewhat hackish,
  but it is less evil than the mtx_f filler struct, and the mtx struct is
  now the same size with and without mutex debugging code.
- Add some micro-micro-operation macros for doing the actual atomic
  operations on the mutex mtx_lock field to make it easier for other archs
  to override/optimize mutex ops if needed.  These new tiny ops also clean
  up the code in some places by replacing long atomic operation function
  calls that spanned 2-3 lines with a short 1-line macro call.
- Don't call mi_switch() from mtx_enter_hard() when we block while trying
  to obtain a sleep mutex.  Calling mi_switch() would bogusly release
  Giant before switching to the next process.  Instead, inline most of the
  code from mi_switch() in the mtx_enter_hard() function.  Note that when
  we finally kill Giant we can back this out and go back to calling
  mi_switch().
2000-10-20 07:26:37 +00:00
..
alpha - Make the mutex code almost completely machine independent. This greatly 2000-10-20 07:26:37 +00:00
amd64 - Make the mutex code almost completely machine independent. This greatly 2000-10-20 07:26:37 +00:00
boot Convert from the Alpha compontents to PowerPC ones. 2000-10-16 19:58:32 +00:00
cam Add the quirk entry for the Sony Memory Stick Adapter. 2000-10-20 00:53:30 +00:00
coda Forward-declare struct mbuf so that this file is less self-insufficient 2000-10-05 11:58:22 +00:00
compat A start at an implemention of linux_rt_sendsig & linux_rt_sigreturn 2000-10-17 00:00:20 +00:00
compile
conf - Make the mutex code almost completely machine independent. This greatly 2000-10-20 07:26:37 +00:00
contrib/dev Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
crypto Fix broken const'ness in declaration of sha1_loop(). 2000-10-09 18:49:14 +00:00
ddb Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
dev Bugfix: The data is not stored only in the first cblock, calculate the 2000-10-20 00:35:52 +00:00
fs Fix nullfs breakage caused by incomplete migration of v_interlock from 2000-10-15 06:25:42 +00:00
geom Avoid the modules madness I inadvertently introduced by making the 2000-09-02 19:17:34 +00:00
gnu Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
i4b Add a debug flag bit for a new driver. 2000-10-18 08:39:24 +00:00
i386 - Make the mutex code almost completely machine independent. This greatly 2000-10-20 07:26:37 +00:00
ia64 - Make the mutex code almost completely machine independent. This greatly 2000-10-20 07:26:37 +00:00
isa Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
isofs/cd9660 Blow away the v_specmountpoint define, replacing it with what it was 2000-10-09 17:31:39 +00:00
kern - Make the mutex code almost completely machine independent. This greatly 2000-10-20 07:26:37 +00:00
libkern Fix compilation of profiled kernels by including <machine/lock.h> 2000-10-14 08:34:27 +00:00
miscfs Fix nullfs breakage caused by incomplete migration of v_interlock from 2000-10-15 06:25:42 +00:00
modules After some complaints about the dir names, the random device is 2000-10-14 10:59:56 +00:00
msdosfs Blow away the v_specmountpoint define, replacing it with what it was 2000-10-09 17:31:39 +00:00
net Augment the 'ifaddr' structure with a 'struct if_data' to keep 2000-10-19 23:15:54 +00:00
netatalk Just need to pass the address family to if_simloop(), not the whole sockaddr. 2000-05-24 21:16:56 +00:00
netatm Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
netgraph Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
netinet Augment the 'ifaddr' structure with a 'struct if_data' to keep 2000-10-19 23:15:54 +00:00
netinet6 Augment the 'ifaddr' structure with a 'struct if_data' to keep 2000-10-19 23:15:54 +00:00
netipx Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
netkey make sure we have IV that is random enough. memory allocator on 2000-08-28 08:24:46 +00:00
netnatm Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
netncp Convert lockmgr locks from using simple locks to using mutexes. 2000-10-04 01:29:17 +00:00
netns Clean up some loose ends in the network code, including the X.25 and ISO 2000-02-13 03:32:07 +00:00
nfs Make nfs PDIRUNLOCK aware. Now it is possible to use nullfs mounts on top 2000-10-15 08:06:32 +00:00
nfsclient Make nfs PDIRUNLOCK aware. Now it is possible to use nullfs mounts on top 2000-10-15 08:06:32 +00:00
nfsserver Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
ntfs Blow away the v_specmountpoint define, replacing it with what it was 2000-10-09 17:31:39 +00:00
nwfs Convert lockmgr locks from using simple locks to using mutexes. 2000-10-04 01:29:17 +00:00
pc98 Converted da' and wd' into rda' and rwd', respectively. 2000-10-18 15:28:10 +00:00
pccard Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
pci NEWCARD/Cardbus - 2000-10-19 08:34:32 +00:00
posix4 Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
powerpc - Make the mutex code almost completely machine independent. This greatly 2000-10-20 07:26:37 +00:00
rpc
sys - Make the mutex code almost completely machine independent. This greatly 2000-10-20 07:26:37 +00:00
tools remove crufty exec stuff, perl is in the base system 2000-06-27 19:09:55 +00:00
ufs o Introduce new VOP_ACCESS() flag VADMIN, allowing file systems to perform 2000-10-19 07:53:59 +00:00
vm Implement write combining for crashdumps. This is useful when 2000-10-17 10:05:49 +00:00
Makefile I should know better than to touch this without testing a 'make release' 2000-08-24 18:53:09 +00:00