freebsd-dev/sys/conf
jhb 89aa66637a Add code to make default mutexes adaptive if the ADAPTIVE_MUTEXES kernel
option is used (not on by default).

- In the case of trying to lock a mutex, if the MTX_CONTESTED flag is set,
  then we can safely read the thread pointer from the mtx_lock member while
  holding sched_lock.  We then examine the thread to see if it is currently
  executing on another CPU.  If it is, then we keep looping instead of
  blocking.
- In the case of trying to unlock a mutex, it is now possible for a mutex
  to have MTX_CONTESTED set in mtx_lock but to not have any threads
  actually blocked on it, so we need to handle that case.  In that case,
  we just release the lock as if MTX_CONTESTED was not set and return.
- We do not adaptively spin on Giant as Giant is held for long times and
  it slows SMP systems down to a crawl (it was taking several minutes,
  like 5-10 or so for my test alpha and sparc64 SMP boxes to boot up when
  they adaptively spinned on Giant).
- We only compile in the code to do this for SMP kernels, it doesn't make
  sense for UP kernels.

Tested on:	i386, alpha, sparc64
2002-05-21 20:47:11 +00:00
..
defines
files Remove IFS from 5.0-CURRENT. This facilitates introducing UFS2 as 2002-05-19 00:11:08 +00:00
files.alpha ${MACHINE_ARCH}dump.c -> dump_machdep.c. 2002-05-13 02:40:21 +00:00
files.i386 Hook up the new linux_ptrace implementation. 2002-05-19 01:27:14 +00:00
files.ia64 ${MACHINE_ARCH}dump.c -> dump_machdep.c. 2002-05-13 02:40:21 +00:00
files.pc98 MFi386: 1.398-1.399 (${MACHINE_ARCH}_dump.c -> dump_machdep.c) 2002-05-21 04:13:08 +00:00
files.powerpc Build the fpu support routines. 2002-05-13 07:53:22 +00:00
files.sparc64 De-inline the tlb demap functions. These were so big that gcc3.1 refused 2002-05-20 16:10:17 +00:00
kern.mk Use -ffreestanding for kernel bits unconditionally. 2002-05-04 20:07:33 +00:00
kern.post.mk sysctl -w -> sysctl 2002-05-11 06:06:11 +00:00
kern.pre.mk Translated -malign-functions=4 to -falign-functions=16 for the new gcc. 2002-05-12 15:51:38 +00:00
kmod_syms.awk Respect setting of NM to allow cross-building. 2002-04-19 09:04:53 +00:00
kmod.mk Check that kldxref(8) exists before running it. 2002-05-14 07:49:12 +00:00
ldscript.alpha
ldscript.amd64
ldscript.i386
ldscript.ia64
ldscript.powerpc
ldscript.sparc64
majors Grab a major number for OpenFirmware disk devices. 2002-04-15 10:41:47 +00:00
Makefile.alpha
Makefile.i386
Makefile.ia64 Remove CWARNFLAGS and add GCC3. We handle GCC3.x specific flags 2002-05-19 03:41:48 +00:00
Makefile.pc98
Makefile.powerpc
Makefile.sparc64
makeLINT.sed Join the pissing contest: generate LINT with a single sed(1) command. 2002-05-02 16:34:47 +00:00
newvers.sh
NOTES Add code to make default mutexes adaptive if the ADAPTIVE_MUTEXES kernel 2002-05-21 20:47:11 +00:00
options Add code to make default mutexes adaptive if the ADAPTIVE_MUTEXES kernel 2002-05-21 20:47:11 +00:00
options.alpha More s/file system/filesystem/g 2002-05-16 21:28:32 +00:00
options.i386 More s/file system/filesystem/g 2002-05-16 21:28:32 +00:00
options.ia64 Allow a kernel to be compiled with both SKI and acpica and still 2002-04-14 04:33:41 +00:00
options.pc98 Remove unneeded entries. 2002-05-19 13:18:10 +00:00
options.powerpc
options.sparc64
systags.sh