svn commit: r313877 - in head/sys: kern sys

Mateusz Guzik mjg at FreeBSD.org
Fri Feb 17 15:34:41 UTC 2017


Author: mjg
Date: Fri Feb 17 15:34:40 2017
New Revision: 313877
URL: https://svnweb.freebsd.org/changeset/base/313877

Log:
  mtx: restrict r313875 to kernels without LOCK_PROFILING

Modified:
  head/sys/kern/kern_mutex.c
  head/sys/sys/mutex.h

Modified: head/sys/kern/kern_mutex.c
==============================================================================
--- head/sys/kern/kern_mutex.c	Fri Feb 17 15:00:13 2017	(r313876)
+++ head/sys/kern/kern_mutex.c	Fri Feb 17 15:34:40 2017	(r313877)
@@ -423,9 +423,14 @@ _mtx_trylock_flags_(volatile uintptr_t *
  * We call this if the lock is either contested (i.e. we need to go to
  * sleep waiting for it), or if we need to recurse on it.
  */
+#if LOCK_DEBUG > 0
 void
 __mtx_lock_sleep(volatile uintptr_t *c, uintptr_t v, uintptr_t tid, int opts,
     const char *file, int line)
+#else
+void
+__mtx_lock_sleep(volatile uintptr_t *c, uintptr_t v, uintptr_t tid, int opts)
+#endif
 {
 	struct mtx *m;
 	struct turnstile *ts;
@@ -485,7 +490,11 @@ __mtx_lock_sleep(volatile uintptr_t *c, 
 		    "_mtx_lock_sleep: %s contested (lock=%p) at %s:%d",
 		    m->lock_object.lo_name, (void *)m->mtx_lock, file, line);
 #ifdef KDTRACE_HOOKS
+#ifdef LOCK_PROFILING
+	doing_lockstat = 1;
+#else
 	doing_lockstat = lockstat_enabled;
+#endif
 	if (__predict_false(doing_lockstat))
 		all_time -= lockstat_nsecs(&m->lock_object);
 #endif
@@ -859,8 +868,13 @@ thread_lock_set(struct thread *td, struc
  * We are only called here if the lock is recursed, contested (i.e. we
  * need to wake up a blocked thread) or lockstat probe is active.
  */
+#if LOCK_DEBUG > 0
 void
 __mtx_unlock_sleep(volatile uintptr_t *c, int opts, const char *file, int line)
+#else
+void
+__mtx_unlock_sleep(volatile uintptr_t *c, int opts)
+#endif
 {
 	struct mtx *m;
 	struct turnstile *ts;

Modified: head/sys/sys/mutex.h
==============================================================================
--- head/sys/sys/mutex.h	Fri Feb 17 15:00:13 2017	(r313876)
+++ head/sys/sys/mutex.h	Fri Feb 17 15:34:40 2017	(r313877)
@@ -98,10 +98,17 @@ void	mtx_sysinit(void *arg);
 int	_mtx_trylock_flags_(volatile uintptr_t *c, int opts, const char *file,
 	    int line);
 void	mutex_init(void);
+#if LOCK_DEBUG > 0
 void	__mtx_lock_sleep(volatile uintptr_t *c, uintptr_t v, uintptr_t tid,
 	    int opts, const char *file, int line);
 void	__mtx_unlock_sleep(volatile uintptr_t *c, int opts, const char *file,
 	    int line);
+#else
+void	__mtx_lock_sleep(volatile uintptr_t *c, uintptr_t v, uintptr_t tid,
+	    int opts);
+void	__mtx_unlock_sleep(volatile uintptr_t *c, int opts);
+#endif
+
 #ifdef SMP
 void	_mtx_lock_spin_cookie(volatile uintptr_t *c, uintptr_t v, uintptr_t tid,
 	    int opts, const char *file, int line);
@@ -140,10 +147,17 @@ void	thread_lock_flags_(struct thread *,
 	_mtx_destroy(&(m)->mtx_lock)
 #define	mtx_trylock_flags_(m, o, f, l)					\
 	_mtx_trylock_flags_(&(m)->mtx_lock, o, f, l)
+#if LOCK_DEBUG > 0
 #define	_mtx_lock_sleep(m, v, t, o, f, l)				\
 	__mtx_lock_sleep(&(m)->mtx_lock, v, t, o, f, l)
 #define	_mtx_unlock_sleep(m, o, f, l)					\
 	__mtx_unlock_sleep(&(m)->mtx_lock, o, f, l)
+#else
+#define	_mtx_lock_sleep(m, v, t, o, f, l)				\
+	__mtx_lock_sleep(&(m)->mtx_lock, v, t, o)
+#define	_mtx_unlock_sleep(m, o, f, l)					\
+	__mtx_unlock_sleep(&(m)->mtx_lock, o)
+#endif
 #ifdef SMP
 #define	_mtx_lock_spin(m, v, t, o, f, l)				\
 	_mtx_lock_spin_cookie(&(m)->mtx_lock, v, t, o, f, l)


More information about the svn-src-head mailing list