Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Dec 2013 13:37:02 +0000 (UTC)
From:      Attilio Rao <attilio@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r259509 - head/sys/kern
Message-ID:  <201312171337.rBHDb2Yx080943@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: attilio
Date: Tue Dec 17 13:37:02 2013
New Revision: 259509
URL: http://svnweb.freebsd.org/changeset/base/259509

Log:
  - Assert for not leaking readers rw locks counter on userland return.
  - Use a correct spin_cnt for KDTRACE_HOOK case in rw read lock.
  
  Sponsored by:	EMC / Isilon storage division

Modified:
  head/sys/kern/kern_rwlock.c
  head/sys/kern/subr_trap.c

Modified: head/sys/kern/kern_rwlock.c
==============================================================================
--- head/sys/kern/kern_rwlock.c	Tue Dec 17 13:18:41 2013	(r259508)
+++ head/sys/kern/kern_rwlock.c	Tue Dec 17 13:37:02 2013	(r259509)
@@ -440,6 +440,9 @@ __rw_rlock(volatile uintptr_t *c, const 
 					break;
 				cpu_spinwait();
 			}
+#ifdef KDTRACE_HOOKS
+			spin_cnt += rowner_loops - i;
+#endif
 			if (i != rowner_loops)
 				continue;
 		}

Modified: head/sys/kern/subr_trap.c
==============================================================================
--- head/sys/kern/subr_trap.c	Tue Dec 17 13:18:41 2013	(r259508)
+++ head/sys/kern/subr_trap.c	Tue Dec 17 13:37:02 2013	(r259509)
@@ -152,6 +152,9 @@ userret(struct thread *td, struct trapfr
 	    ("userret: Returning in a critical section"));
 	KASSERT(td->td_locks == 0,
 	    ("userret: Returning with %d locks held", td->td_locks));
+	KASSERT(td->td_rw_rlocks == 0,
+	    ("userret: Returning with %d rwlocks held in read mode",
+	    td->td_rw_rlocks));
 	KASSERT((td->td_pflags & TDP_NOFAULTING) == 0,
 	    ("userret: Returning with pagefaults disabled"));
 	KASSERT(td->td_no_sleeping == 0,



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201312171337.rBHDb2Yx080943>