Author: mjg Date: Sun Jul 2 01:05:16 2017 New Revision: 320561 URL: https://svnweb.freebsd.org/changeset/base/320561
Log: rwlock: perform the typically false td_rw_rlocks check later Check if the lock is available first instead. MFC after: 1 week Modified: head/sys/kern/kern_rwlock.c Modified: head/sys/kern/kern_rwlock.c ============================================================================== --- head/sys/kern/kern_rwlock.c Sat Jul 1 23:39:49 2017 (r320560) +++ head/sys/kern/kern_rwlock.c Sun Jul 2 01:05:16 2017 (r320561) @@ -372,9 +372,8 @@ _rw_wunlock_cookie(volatile uintptr_t *c, const char * * prioritizes writers before readers. */ #define RW_CAN_READ(td, _rw) \ - (((td)->td_rw_rlocks && (_rw) & RW_LOCK_READ) || ((_rw) & \ - (RW_LOCK_READ | RW_LOCK_WRITE_WAITERS | RW_LOCK_WRITE_SPINNER)) == \ - RW_LOCK_READ) + (((_rw) & (RW_LOCK_READ | RW_LOCK_WRITE_WAITERS | RW_LOCK_WRITE_SPINNER)) ==\ + RW_LOCK_READ || ((td)->td_rw_rlocks && (_rw) & RW_LOCK_READ)) static bool __always_inline __rw_rlock_try(struct rwlock *rw, struct thread *td, uintptr_t *vp, _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"