aboutsummaryrefslogtreecommitdiff
path: root/UPDATING
diff options
context:
space:
mode:
authorAttilio Rao <attilio@FreeBSD.org>2009-06-17 01:55:42 +0000
committerAttilio Rao <attilio@FreeBSD.org>2009-06-17 01:55:42 +0000
commit651175c9db6786d20f95b07dc8716ab6ff552f92 (patch)
tree398a4ccff0bd28e8c2b749758c6f3385162567ad /UPDATING
parentdc6acdcf7203ca1dedb008e8570f2a882f1cc480 (diff)
downloadsrc-651175c9db6786d20f95b07dc8716ab6ff552f92.tar.gz
src-651175c9db6786d20f95b07dc8716ab6ff552f92.zip
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
Notes
Notes: svn path=/head/; revision=194317
Diffstat (limited to 'UPDATING')
-rw-r--r--UPDATING7
1 files changed, 7 insertions, 0 deletions
diff --git a/UPDATING b/UPDATING
index 91549c21f2e0..6eff98bd9e18 100644
--- a/UPDATING
+++ b/UPDATING
@@ -22,6 +22,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.x IS SLOW:
to maximize performance. (To disable malloc debugging, run
ln -s aj /etc/malloc.conf.)
+20090616:
+ The compiling option ADAPTIVE_LOCKMGRS has been introduced.
+ This option compiles in the support for adaptive spinning for lockmgrs
+ which want to enable it. The lockinit() function now accepts the
+ flag LK_ADAPTIVE in order to make the lock object subject to
+ adaptive spinning when both held in write and read mode.
+
20090613:
The layout of the structure returned by IEEE80211_IOC_STA_INFO
has changed. User applications that use this ioctl need to be