From 1ae1c2a3bde1246e052fed34be63bac5d6ba1c31 Mon Sep 17 00:00:00 2001 From: Attilio Rao Date: Fri, 29 May 2009 01:49:27 +0000 Subject: 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 --- sys/cddl/compat/opensolaris/sys/rwlock.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'sys/cddl/compat/opensolaris/sys/rwlock.h') diff --git a/sys/cddl/compat/opensolaris/sys/rwlock.h b/sys/cddl/compat/opensolaris/sys/rwlock.h index 0d4ac2e1e2a9..a3e55153bbcf 100644 --- a/sys/cddl/compat/opensolaris/sys/rwlock.h +++ b/sys/cddl/compat/opensolaris/sys/rwlock.h @@ -49,9 +49,9 @@ typedef enum { typedef struct sx krwlock_t; #ifndef DEBUG -#define RW_FLAGS (SX_DUPOK | SX_NOWITNESS | SX_ADAPTIVESPIN) +#define RW_FLAGS (SX_DUPOK | SX_NOWITNESS) #else -#define RW_FLAGS (SX_DUPOK | SX_ADAPTIVESPIN) +#define RW_FLAGS (SX_DUPOK) #endif #define RW_READ_HELD(x) (rw_read_held((x))) -- cgit v1.2.3