Date: Tue, 25 Jun 2013 20:29:32 GMT From: John Baldwin <jhb@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 230148 for review Message-ID: <201306252029.r5PKTW61087574@skunkworks.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@230148?ac=10 Change 230148 by jhb@jhb_jhbbsd on 2013/06/25 20:29:15 IFC @230145 Affected files ... .. //depot/projects/smpng/sys/kern/kern_lock.c#93 integrate .. //depot/projects/smpng/sys/kern/kern_mutex.c#167 integrate .. //depot/projects/smpng/sys/kern/kern_rwlock.c#39 integrate .. //depot/projects/smpng/sys/kern/kern_sx.c#72 integrate Differences ... ==== //depot/projects/smpng/sys/kern/kern_lock.c#93 (text+ko) ==== @@ -32,7 +32,7 @@ #include "opt_kdtrace.h" #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/kern/kern_lock.c 251326 2013-06-03 17:41:11Z jhb $"); +__FBSDID("$FreeBSD: head/sys/kern/kern_lock.c 252212 2013-06-25 20:23:08Z jhb $"); #include <sys/param.h> #include <sys/kdb.h> @@ -238,8 +238,6 @@ u_int realexslp; int queue, wakeup_swapper; - TD_LOCKS_DEC(curthread); - TD_SLOCKS_DEC(curthread); WITNESS_UNLOCK(&lk->lock_object, 0, file, line); LOCK_LOG_LOCK("SUNLOCK", &lk->lock_object, 0, 0, file, line); @@ -339,6 +337,8 @@ } lock_profile_release_lock(&lk->lock_object); + TD_LOCKS_DEC(curthread); + TD_SLOCKS_DEC(curthread); return (wakeup_swapper); } @@ -397,12 +397,12 @@ iflags |= LO_IS_VNODE; iflags |= flags & (LK_ADAPTIVE | LK_NOSHARE); + lock_init(&lk->lock_object, &lock_class_lockmgr, wmesg, NULL, iflags); lk->lk_lock = LK_UNLOCKED; lk->lk_recurse = 0; lk->lk_exslpfail = 0; lk->lk_timo = timo; lk->lk_pri = pri; - lock_init(&lk->lock_object, &lock_class_lockmgr, wmesg, NULL, iflags); STACK_ZERO(lk); } ==== //depot/projects/smpng/sys/kern/kern_mutex.c#167 (text+ko) ==== @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/kern/kern_mutex.c 244582 2012-12-22 09:37:34Z attilio $"); +__FBSDID("$FreeBSD: head/sys/kern/kern_mutex.c 252212 2013-06-25 20:23:08Z jhb $"); #include "opt_adaptive_mutexes.h" #include "opt_ddb.h" @@ -243,7 +243,6 @@ KASSERT(LOCK_CLASS(&m->lock_object) == &lock_class_mtx_sleep, ("mtx_unlock() of spin mutex %s @ %s:%d", m->lock_object.lo_name, file, line)); - curthread->td_locks--; WITNESS_UNLOCK(&m->lock_object, opts | LOP_EXCLUSIVE, file, line); LOCK_LOG_LOCK("UNLOCK", &m->lock_object, opts, m->mtx_recurse, file, line); @@ -252,6 +251,7 @@ if (m->mtx_recurse == 0) LOCKSTAT_PROFILE_RELEASE_LOCK(LS_MTX_UNLOCK_RELEASE, m); __mtx_unlock(m, curthread, opts, file, line); + curthread->td_locks--; } void @@ -894,10 +894,10 @@ flags |= LO_NOPROFILE; /* Initialize mutex. */ + lock_init(&m->lock_object, class, name, type, flags); + m->mtx_lock = MTX_UNOWNED; m->mtx_recurse = 0; - - lock_init(&m->lock_object, class, name, type, flags); } /* ==== //depot/projects/smpng/sys/kern/kern_rwlock.c#39 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/kern/kern_rwlock.c 251323 2013-06-03 17:38:57Z jhb $"); +__FBSDID("$FreeBSD: head/sys/kern/kern_rwlock.c 252212 2013-06-25 20:23:08Z jhb $"); #include "opt_ddb.h" #include "opt_hwpmc_hooks.h" @@ -207,9 +207,9 @@ if (opts & RW_QUIET) flags |= LO_QUIET; + lock_init(&rw->lock_object, &lock_class_rw, name, NULL, flags); rw->rw_lock = RW_UNLOCKED; rw->rw_recurse = 0; - lock_init(&rw->lock_object, &lock_class_rw, name, NULL, flags); } void @@ -319,13 +319,13 @@ KASSERT(rw->rw_lock != RW_DESTROYED, ("rw_wunlock() of destroyed rwlock @ %s:%d", file, line)); __rw_assert(c, RA_WLOCKED, file, line); - curthread->td_locks--; WITNESS_UNLOCK(&rw->lock_object, LOP_EXCLUSIVE, file, line); LOCK_LOG_LOCK("WUNLOCK", &rw->lock_object, 0, rw->rw_recurse, file, line); if (!rw_recursed(rw)) LOCKSTAT_PROFILE_RELEASE_LOCK(LS_RW_WUNLOCK_RELEASE, rw); __rw_wunlock(rw, curthread, file, line); + curthread->td_locks--; } /* * Determines whether a new reader can acquire a lock. Succeeds if the @@ -598,8 +598,6 @@ KASSERT(rw->rw_lock != RW_DESTROYED, ("rw_runlock() of destroyed rwlock @ %s:%d", file, line)); __rw_assert(c, RA_RLOCKED, file, line); - curthread->td_locks--; - curthread->td_rw_rlocks--; WITNESS_UNLOCK(&rw->lock_object, 0, file, line); LOCK_LOG_LOCK("RUNLOCK", &rw->lock_object, 0, 0, file, line); @@ -693,6 +691,8 @@ break; } LOCKSTAT_PROFILE_RELEASE_LOCK(LS_RW_RUNLOCK_RELEASE, rw); + curthread->td_locks--; + curthread->td_rw_rlocks--; } /* ==== //depot/projects/smpng/sys/kern/kern_sx.c#72 (text+ko) ==== @@ -42,7 +42,7 @@ #include "opt_no_adaptive_sx.h" #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/kern/kern_sx.c 244582 2012-12-22 09:37:34Z attilio $"); +__FBSDID("$FreeBSD: head/sys/kern/kern_sx.c 252212 2013-06-25 20:23:08Z jhb $"); #include <sys/param.h> #include <sys/systm.h> @@ -228,9 +228,9 @@ flags |= LO_QUIET; flags |= opts & SX_NOADAPTIVE; + lock_init(&sx->lock_object, &lock_class_sx, description, NULL, flags); sx->sx_lock = SX_LOCK_UNLOCKED; sx->sx_recurse = 0; - lock_init(&sx->lock_object, &lock_class_sx, description, NULL, flags); } void @@ -362,11 +362,11 @@ KASSERT(sx->sx_lock != SX_LOCK_DESTROYED, ("sx_sunlock() of destroyed sx @ %s:%d", file, line)); _sx_assert(sx, SA_SLOCKED, file, line); - curthread->td_locks--; WITNESS_UNLOCK(&sx->lock_object, 0, file, line); LOCK_LOG_LOCK("SUNLOCK", &sx->lock_object, 0, 0, file, line); __sx_sunlock(sx, file, line); LOCKSTAT_PROFILE_RELEASE_LOCK(LS_SX_SUNLOCK_RELEASE, sx); + curthread->td_locks--; } void @@ -378,13 +378,13 @@ KASSERT(sx->sx_lock != SX_LOCK_DESTROYED, ("sx_xunlock() of destroyed sx @ %s:%d", file, line)); _sx_assert(sx, SA_XLOCKED, file, line); - curthread->td_locks--; WITNESS_UNLOCK(&sx->lock_object, LOP_EXCLUSIVE, file, line); LOCK_LOG_LOCK("XUNLOCK", &sx->lock_object, 0, sx->sx_recurse, file, line); if (!sx_recursed(sx)) LOCKSTAT_PROFILE_RELEASE_LOCK(LS_SX_XUNLOCK_RELEASE, sx); __sx_xunlock(sx, curthread, file, line); + curthread->td_locks--; } /*
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201306252029.r5PKTW61087574>