1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-18 10:35:55 +00:00
freebsd/sys/conf
John Baldwin 4e7f640dfb Optimize sx locks to use simple atomic operations for the common cases of
obtaining and releasing shared and exclusive locks.  The algorithms for
manipulating the lock cookie are very similar to that rwlocks.  This patch
also adds support for exclusive locks using the same algorithm as mutexes.

A new sx_init_flags() function has been added so that optional flags can be
specified to alter a given locks behavior.  The flags include SX_DUPOK,
SX_NOWITNESS, SX_NOPROFILE, and SX_QUITE which are all identical in nature
to the similar flags for mutexes.

Adaptive spinning on select locks may be enabled by enabling the
ADAPTIVE_SX kernel option.  Only locks initialized with the SX_ADAPTIVESPIN
flag via sx_init_flags() will adaptively spin.

The common cases for sx_slock(), sx_sunlock(), sx_xlock(), and sx_xunlock()
are now performed inline in non-debug kernels.  As a result, <sys/sx.h> now
requires <sys/lock.h> to be included prior to <sys/sx.h>.

The new kernel option SX_NOINLINE can be used to disable the aforementioned
inlining in non-debug kernels.

The size of struct sx has changed, so the kernel ABI is probably greatly
disturbed.

MFC after:	1 month
Submitted by:	attilio
Tested by:	kris, pjd
2007-03-31 23:23:42 +00:00
..
defines
files Complete removal of uipc_socket2.c by moving the last few functions to 2007-03-26 08:59:03 +00:00
files.amd64 opt_ah.h ends up copied into a kernelcompile directory in some 2006-12-18 05:45:23 +00:00
files.arm opt_ah.h ends up copied into a kernelcompile directory in some 2006-12-18 05:45:23 +00:00
files.i386 opt_ah.h ends up copied into a kernelcompile directory in some 2006-12-18 05:45:23 +00:00
files.ia64 Move "device splash" back to MI NOTES and "files", it's MI. 2006-10-23 13:23:14 +00:00
files.pc98 opt_ah.h ends up copied into a kernelcompile directory in some 2006-12-18 05:45:23 +00:00
files.powerpc Evolve the ctlreq interface added to geom_gpt into a generic 2007-02-07 18:55:31 +00:00
files.sparc64 Rototill the sparc64 nexus(4) (actually this brings in the code the 2007-03-07 21:13:51 +00:00
files.sun4v build new mdesc file 2006-12-18 07:26:35 +00:00
kern.mk Fix module loading for sparc on machines with greater than 1GB of RAM 2006-11-26 23:16:46 +00:00
kern.post.mk If KERNEL_EXTRA is defined, make kernel-all target depend on it. 2007-03-23 21:55:59 +00:00
kern.pre.mk Fixed high resolution profiling on arches that support it (amd64 and 2006-10-26 15:16:43 +00:00
kmod_syms.awk
kmod.mk Overhaul driver/subsystem api's: 2007-03-21 03:42:51 +00:00
ldscript.amd64
ldscript.arm Create a non-elf pure binary version of the kernel as well. 2005-11-24 02:25:49 +00:00
ldscript.i386
ldscript.ia64
ldscript.powerpc
ldscript.sparc64
Makefile.amd64 Version 600004 is better than 700000 given other changes that are in 2005-11-28 17:51:31 +00:00
Makefile.arm Only use -mno-apcs-frame if DDB is not in the kernel, as it prevent the 2006-07-24 22:09:47 +00:00
Makefile.i386 Set MACHINE to i386(pc98). This fixes cross-building. 2006-01-29 03:32:19 +00:00
Makefile.ia64 Version 600004 is better than 700000 given other changes that are in 2005-11-28 17:51:31 +00:00
Makefile.pc98 Set MACHINE to i386(pc98). This fixes cross-building. 2006-01-29 03:32:19 +00:00
Makefile.powerpc Version 600004 is better than 700000 given other changes that are in 2005-11-28 17:51:31 +00:00
Makefile.sparc64 Version 600004 is better than 700000 given other changes that are in 2005-11-28 17:51:31 +00:00
Makefile.sun4v placate Grim Reaper with sun4v support 2006-10-05 06:14:28 +00:00
makeLINT.mk
makeLINT.sed
newvers.sh Pad the strings sccs[], version[], and osrelease[] up to a minimum of 2005-08-19 01:49:15 +00:00
NOTES Optimize sx locks to use simple atomic operations for the common cases of 2007-03-31 23:23:42 +00:00
options Optimize sx locks to use simple atomic operations for the common cases of 2007-03-31 23:23:42 +00:00
options.amd64 Remove sio(4) and related options from MI files to amd64, i386 2006-07-29 18:38:54 +00:00
options.arm Add two new options, FLASHADDR, which defines the address the flash is 2007-02-19 01:03:08 +00:00
options.i386 Remove sio(4) and related options from MI files to amd64, i386 2006-07-29 18:38:54 +00:00
options.ia64 o Move ISA specific code from ppc.c to ppc_isa.c -- a bus front- 2006-04-24 23:31:51 +00:00
options.pc98 Remove sio(4) and related options from MI files to amd64, i386 2006-07-29 18:38:54 +00:00
options.powerpc
options.sparc64 - In sunkbd_probe_keyboard() don't bother to determine the keyboard layout 2006-11-02 00:01:15 +00:00
options.sun4v Remove remnants from the sparc64 origin of this file and which are 2007-01-19 12:22:50 +00:00
systags.sh Use a simpler way to reach the <machine> include dir, which should 2005-12-03 21:37:54 +00:00