freebsd-skq/sys/conf
attilio 256667d4fb Introduce support for adaptive spinning in lockmgr.
Actually, as it did receive few tuning, the support is disabled by
default, but it can opt-in with the option ADAPTIVE_LOCKMGRS.
Due to the nature of lockmgrs, adaptive spinning needs to be
selectively enabled for any interested lockmgr.
The support is bi-directional, or, in other ways, it will work in both
cases if the lock is held in read or write way.  In particular, the
read path is passible of further tunning using the sysctls
debug.lockmgr.retries and debug.lockmgr.loops .  Ideally, such sysctls
should be axed or compiled out before release.

Addictionally note that adaptive spinning doesn't cope well with
LK_SLEEPFAIL.  The reason is that many (and probabilly all) consumers
of LK_SLEEPFAIL are mainly interested in knowing if the interlock was
dropped or not in order to reacquire it and re-test initial conditions.
This directly interacts with adaptive spinning because lockmgr needs
to drop the interlock while spinning in order to avoid a deadlock
(further details in the comments inside the patch).

Final note: finding someone willing to help on tuning this with
relevant workloads would be either very important and appreciated.

Tested by:	jeff, pho
Requested by:	many
2009-06-17 01:55:42 +00:00
..
defines Clone Kip's Xen on stable/6 tree so that I can work on improving FreeBSD/amd64 2008-11-22 16:14:52 +00:00
files Add cas(4), a driver for Sun Cassini/Cassini+ and National Semiconductor 2009-06-15 18:22:41 +00:00
files.amd64 Implement simple machine check support for amd64 and i386. 2009-05-13 17:53:04 +00:00
files.arm Switch to ath hal source code. Note this removes the ath_hal 2008-12-01 16:53:01 +00:00
files.i386 Migrate the Xen hypervisor clock reading routines into something 2009-05-29 13:36:06 +00:00
files.ia64 Add trivial implementation for the freebsd32_sysarch on ia64. 2009-04-01 19:23:07 +00:00
files.mips Add memmove() to the kernel, making the kernel compile with Clang. 2009-02-28 16:21:25 +00:00
files.pc98 MFi386: revision 192050 2009-05-14 16:01:29 +00:00
files.powerpc Initial version of the sec(4) driver for the integrated security engine found 2009-06-06 09:37:55 +00:00
files.sparc64 Add memmove() to the kernel, making the kernel compile with Clang. 2009-02-28 16:21:25 +00:00
files.sun4v Add memmove() to the kernel, making the kernel compile with Clang. 2009-02-28 16:21:25 +00:00
kern.mk Bump down the inline limit on MIPS. 2009-03-03 18:53:47 +00:00
kern.post.mk Always compute the root of the kernel source tree and explicitly pass it 2009-05-04 20:25:56 +00:00
kern.pre.mk Delete the old USB stack. The new stack has settled in and has all the 2009-05-27 16:16:56 +00:00
kmod_syms.awk Clone Kip's Xen on stable/6 tree so that I can work on improving FreeBSD/amd64 2008-11-22 16:14:52 +00:00
kmod.mk Change over the usb kernel options to the new stack (retaining existing 2009-02-23 18:34:56 +00:00
ldscript.amd64 Clone Kip's Xen on stable/6 tree so that I can work on improving FreeBSD/amd64 2008-11-22 16:14:52 +00:00
ldscript.arm Clone Kip's Xen on stable/6 tree so that I can work on improving FreeBSD/amd64 2008-11-22 16:14:52 +00:00
ldscript.i386 Clone Kip's Xen on stable/6 tree so that I can work on improving FreeBSD/amd64 2008-11-22 16:14:52 +00:00
ldscript.ia64 Clone Kip's Xen on stable/6 tree so that I can work on improving FreeBSD/amd64 2008-11-22 16:14:52 +00:00
ldscript.mips Merge from p4: add Juniper license statement. 2008-09-19 03:36:37 +00:00
ldscript.mips.cfe Fix the CFE ldscript after the cutover to tradmips. 2008-10-13 06:07:58 +00:00
ldscript.powerpc Clone Kip's Xen on stable/6 tree so that I can work on improving FreeBSD/amd64 2008-11-22 16:14:52 +00:00
ldscript.sparc64 Clone Kip's Xen on stable/6 tree so that I can work on improving FreeBSD/amd64 2008-11-22 16:14:52 +00:00
Makefile.amd64 Clone Kip's Xen on stable/6 tree so that I can work on improving FreeBSD/amd64 2008-11-22 16:14:52 +00:00
Makefile.arm Rename Marvell ARM CPU specific file according to r186933. 2009-01-09 10:55:33 +00:00
Makefile.i386 Clone Kip's Xen on stable/6 tree so that I can work on improving FreeBSD/amd64 2008-11-22 16:14:52 +00:00
Makefile.ia64 Clone Kip's Xen on stable/6 tree so that I can work on improving FreeBSD/amd64 2008-11-22 16:14:52 +00:00
Makefile.mips Merge in the mips specific configuration files and such from the 2008-04-13 06:25:43 +00:00
Makefile.pc98 Clone Kip's Xen on stable/6 tree so that I can work on improving FreeBSD/amd64 2008-11-22 16:14:52 +00:00
Makefile.powerpc Clone Kip's Xen on stable/6 tree so that I can work on improving FreeBSD/amd64 2008-11-22 16:14:52 +00:00
Makefile.sparc64 Clone Kip's Xen on stable/6 tree so that I can work on improving FreeBSD/amd64 2008-11-22 16:14:52 +00:00
Makefile.sun4v
makeLINT.mk Clone Kip's Xen on stable/6 tree so that I can work on improving FreeBSD/amd64 2008-11-22 16:14:52 +00:00
makeLINT.sed Clone Kip's Xen on stable/6 tree so that I can work on improving FreeBSD/amd64 2008-11-22 16:14:52 +00:00
newvers.sh For kernel builds reduce the impact of svnversion, just scanning 2009-03-28 23:17:18 +00:00
NOTES Add cas(4), a driver for Sun Cassini/Cassini+ and National Semiconductor 2009-06-15 18:22:41 +00:00
options Introduce support for adaptive spinning in lockmgr. 2009-06-17 01:55:42 +00:00
options.amd64 Merge in support for Xen HVM on amd64 architecture. 2009-03-11 15:30:12 +00:00
options.arm add IXP4XX_FLASH_SIZE config knob that can be used to override the default 2009-03-10 21:49:22 +00:00
options.i386 Fix AGP debugging code: 2009-02-06 20:57:10 +00:00
options.ia64 Don't forget to create opt_agp.h on ia64, which also uses agp(4). 2009-02-07 09:57:14 +00:00
options.mips Consistently use <TAB> instead of spaces as option name and file 2009-02-06 10:30:46 +00:00
options.pc98 Fix AGP debugging code: 2009-02-06 20:57:10 +00:00
options.powerpc Clone Kip's Xen on stable/6 tree so that I can work on improving FreeBSD/amd64 2008-11-22 16:14:52 +00:00
options.sparc64 Clone Kip's Xen on stable/6 tree so that I can work on improving FreeBSD/amd64 2008-11-22 16:14:52 +00:00
options.sun4v
systags.sh Clone Kip's Xen on stable/6 tree so that I can work on improving FreeBSD/amd64 2008-11-22 16:14:52 +00:00