David Xu wrote:
Jeff Roberson wrote:
On Mon, 31 Mar 2008, David Xu wrote:

davidxu     2008-03-31 02:55:50 UTC

 FreeBSD src repository

 Modified files:
   lib/libthr/thread    thr_cond.c thr_private.h thr_rwlock.c
 Log:
 Rewrite rwlock to user atomic operations to change rwlock state, this
 eliminates internal mutex lock contention when most rwlock operations
 are read.

 Orignal patch provided by: jeff

Thanks David!

Do you still plan to do kernel side support so we can totally eliminate the pthread mutex and condvars from rwlock? I have evidence that this would produce further improvements.

Jeff

I have pure kernel version working, sometimes locking kernel sleep
chain is more expensive than a pure userland mutex locking, since
kernel sleep chain lock is global. I am hestiate adding more code
to kernel since I have tested mysql super-smack and sysbench
read-only and seen no visible performance differences.
all patches are here:

http://people.freebsd.org/~davidxu/patch/libthr_umtx_rwlock.diff

This patch appears to be incomplete (it also doesn't apply cleanly).

/zoo/kris/src8/lib/libthr/thread/thr_rwlock.c: In function 'rwlock_rdlock_common': /zoo/kris/src8/lib/libthr/thread/thr_rwlock.c:133: warning: implicit declaration of function '_thr_rwlock_tryrdlock' /zoo/kris/src8/lib/libthr/thread/thr_rwlock.c:173: warning: implicit declaration of function '__thr_rwlock_rdlock' /zoo/kris/src8/lib/libthr/thread/thr_rwlock.c: In function '_pthread_rwlock_trywrlock': /zoo/kris/src8/lib/libthr/thread/thr_rwlock.c:246: warning: implicit declaration of function '_thr_rwlock_trywrlock' /zoo/kris/src8/lib/libthr/thread/thr_rwlock.c: In function '_pthread_rwlock_unlock': /zoo/kris/src8/lib/libthr/thread/thr_rwlock.c:275: warning: implicit declaration of function '_thr_rwlock_unlock' /zoo/kris/src8/lib/libthr/thread/thr_rwlock.c: In function 'rwlock_wrlock_common': /zoo/kris/src8/lib/libthr/thread/thr_rwlock.c:331: warning: implicit declaration of function '__thr_rwlock_wrlock'
*** Error code 1

Kris

_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to