diff options
author | attilio <attilio@FreeBSD.org> | 2009-05-29 01:49:27 +0000 |
---|---|---|
committer | attilio <attilio@FreeBSD.org> | 2009-05-29 01:49:27 +0000 |
commit | e05714ba705cb30431ac886d3e60ebd247b1d87b (patch) | |
tree | 4743eb3cdc33a7b72ea4fc1d92c144595e06994e /sys/conf | |
parent | 7515df23bd1cac655ac2e77705c42f9127c815d2 (diff) | |
download | FreeBSD-src-e05714ba705cb30431ac886d3e60ebd247b1d87b.zip FreeBSD-src-e05714ba705cb30431ac886d3e60ebd247b1d87b.tar.gz |
Reverse the logic for ADAPTIVE_SX option and enable it by default.
Introduce for this operation the reverse NO_ADAPTIVE_SX option.
The flag SX_ADAPTIVESPIN to be passed to sx_init_flags(9) gets suppressed
and the new flag, offering the reversed logic, SX_NOADAPTIVE is added.
Additively implements adaptive spininning for sx held in shared mode.
The spinning limit can be handled through sysctls in order to be tuned
while the code doesn't reach the release, after which time they should
be dropped probabilly.
This change has made been necessary by recent benchmarks where it does
improve concurrency of workloads in presence of high contention
(ie. ZFS).
KPI breakage is documented by __FreeBSD_version bumping, manpage and
UPDATING updates.
Requested by: jeff, kmacy
Reviewed by: jeff
Tested by: pho
Diffstat (limited to 'sys/conf')
-rw-r--r-- | sys/conf/NOTES | 10 | ||||
-rw-r--r-- | sys/conf/options | 2 |
2 files changed, 6 insertions, 6 deletions
diff --git a/sys/conf/NOTES b/sys/conf/NOTES index f25c98ca..4770064 100644 --- a/sys/conf/NOTES +++ b/sys/conf/NOTES @@ -215,11 +215,11 @@ options NO_ADAPTIVE_MUTEXES # to disable it. options NO_ADAPTIVE_RWLOCKS -# ADAPTIVE_SX changes the behavior of sx locks to spin if the thread -# that currently owns the lock is executing on another CPU. Note that -# in addition to enabling this option, individual sx locks must be -# initialized with the SX_ADAPTIVESPIN flag. -options ADAPTIVE_SX +# ADAPTIVE_SX changes the behavior of sx locks to spin if the thread that +# currently owns the sx lock is executing on another CPU. +# This behaviour is enabled by default, so this option can be used to +# disable it. +options NO_ADAPTIVE_SX # MUTEX_NOINLINE forces mutex operations to call functions to perform each # operation rather than inlining the simple cases. This can be used to diff --git a/sys/conf/options b/sys/conf/options index 298c170..a668ea5 100644 --- a/sys/conf/options +++ b/sys/conf/options @@ -60,7 +60,6 @@ KDB_UNATTENDED opt_kdb.h SYSCTL_DEBUG opt_sysctl.h # Miscellaneous options. -ADAPTIVE_SX ALQ AUDIT opt_global.h CODA_COMPAT_5 opt_coda.h @@ -134,6 +133,7 @@ MPROF_BUFFERS opt_mprof.h MPROF_HASH_SIZE opt_mprof.h NO_ADAPTIVE_MUTEXES opt_adaptive_mutexes.h NO_ADAPTIVE_RWLOCKS +NO_ADAPTIVE_SX NO_SYSCTL_DESCR opt_global.h NSWBUF_MIN opt_swap.h MBUF_PACKET_ZONE_DISABLE opt_global.h |