[Midnightbsd-cvs] src [9148] trunk/sys/cddl/dev/lockstat/lockstat.c: handle midnightbsd specific code

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Thu Oct 13 21:58:52 EDT 2016


Revision: 9148
          http://svnweb.midnightbsd.org/src/?rev=9148
Author:   laffer1
Date:     2016-10-13 21:58:52 -0400 (Thu, 13 Oct 2016)
Log Message:
-----------
handle midnightbsd specific code

Modified Paths:
--------------
    trunk/sys/cddl/dev/lockstat/lockstat.c

Modified: trunk/sys/cddl/dev/lockstat/lockstat.c
===================================================================
--- trunk/sys/cddl/dev/lockstat/lockstat.c	2016-10-14 01:56:46 UTC (rev 9147)
+++ trunk/sys/cddl/dev/lockstat/lockstat.c	2016-10-14 01:58:52 UTC (rev 9148)
@@ -19,9 +19,9 @@
  *
  * CDDL HEADER END
  *
- * Portions Copyright (c) 2008 Stacey Son <stacey at son.org> 
+ * Portions Copyright (c) 2008-2009 Stacey Son <sson at FreeBSD.org> 
  *
- * $FreeBSD: src/sys/cddl/dev/lockstat/lockstat.c,v 1.1.2.1.2.1 2008/11/25 02:59:29 kensmith Exp $
+ * $FreeBSD: release/9.2.0/sys/cddl/dev/lockstat/lockstat.c 192853 2009-05-26 20:28:22Z sson $
  *
  */
 
@@ -30,7 +30,7 @@
  * Use is subject to license terms.
  */
 
-#define KDTRACE_HOOKS
+#include "opt_kdtrace.h"
 
 #include <sys/cdefs.h>
 #include <sys/param.h>
@@ -66,45 +66,77 @@
 	char		*lsp_name;
 	int		lsp_probe;
 	dtrace_id_t	lsp_id;
+#ifdef __MidnightBSD__
+	int		lsp_frame;
+#endif
 } lockstat_probe_t;
 
-#ifdef __FreeBSD__
+#ifdef __MidnightBSD__
 lockstat_probe_t lockstat_probes[] =
 {
   /* Spin Locks */
-  { LS_MTX_SPIN_LOCK,	LSS_ACQUIRE,	LS_MTX_SPIN_LOCK_ACQUIRE,   DTRACE_IDNONE },
-  { LS_MTX_SPIN_LOCK, 	LSS_SPIN,	LS_MTX_SPIN_LOCK_SPIN,	    DTRACE_IDNONE },
-  { LS_MTX_SPIN_UNLOCK,	LSS_RELEASE,	LS_MTX_SPIN_UNLOCK_RELEASE, DTRACE_IDNONE },
+  { LS_MTX_SPIN_LOCK,	LSS_ACQUIRE,	LS_MTX_SPIN_LOCK_ACQUIRE,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
+  { LS_MTX_SPIN_LOCK, 	LSS_SPIN,	LS_MTX_SPIN_LOCK_SPIN,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
+  { LS_MTX_SPIN_UNLOCK,	LSS_RELEASE,	LS_MTX_SPIN_UNLOCK_RELEASE,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
   /* Adaptive Locks */
-  { LS_MTX_LOCK,	LSA_ACQUIRE,	LS_MTX_LOCK_ACQUIRE, 	    DTRACE_IDNONE },
-  { LS_MTX_LOCK,	LSA_BLOCK,	LS_MTX_LOCK_BLOCK, 	    DTRACE_IDNONE },
-  { LS_MTX_LOCK,	LSA_SPIN,	LS_MTX_LOCK_SPIN, 	    DTRACE_IDNONE },
-  { LS_MTX_UNLOCK,	LSA_RELEASE,	LS_MTX_UNLOCK_RELEASE, 	    DTRACE_IDNONE },
-  { LS_MTX_TRYLOCK,	LSA_ACQUIRE,	LS_MTX_TRYLOCK_ACQUIRE,	    DTRACE_IDNONE },
+  { LS_MTX_LOCK,	LSA_ACQUIRE,	LS_MTX_LOCK_ACQUIRE,
+	  DTRACE_IDNONE, (LOCKSTAT_AFRAMES + 1) },
+  { LS_MTX_LOCK,	LSA_BLOCK,	LS_MTX_LOCK_BLOCK,
+	  DTRACE_IDNONE, (LOCKSTAT_AFRAMES + 1) },
+  { LS_MTX_LOCK,	LSA_SPIN,	LS_MTX_LOCK_SPIN,
+	  DTRACE_IDNONE, (LOCKSTAT_AFRAMES + 1) },
+  { LS_MTX_UNLOCK,	LSA_RELEASE,	LS_MTX_UNLOCK_RELEASE,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
+  { LS_MTX_TRYLOCK,	LSA_ACQUIRE,	LS_MTX_TRYLOCK_ACQUIRE,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
   /* Reader/Writer Locks */
-  { LS_RW_RLOCK,	LSR_ACQUIRE,	LS_RW_RLOCK_ACQUIRE,	    DTRACE_IDNONE },
-  { LS_RW_RLOCK,	LSR_BLOCK,	LS_RW_RLOCK_BLOCK,	    DTRACE_IDNONE },
-  { LS_RW_RLOCK,	LSR_SPIN,	LS_RW_RLOCK_SPIN,	    DTRACE_IDNONE },
-  { LS_RW_RUNLOCK,	LSR_RELEASE,	LS_RW_RUNLOCK_RELEASE,	    DTRACE_IDNONE },
-  { LS_RW_WLOCK,	LSR_ACQUIRE,	LS_RW_WLOCK_ACQUIRE,	    DTRACE_IDNONE },
-  { LS_RW_WLOCK,	LSR_BLOCK,	LS_RW_WLOCK_BLOCK,	    DTRACE_IDNONE },
-  { LS_RW_WLOCK,	LSR_SPIN,	LS_RW_WLOCK_SPIN,	    DTRACE_IDNONE },
-  { LS_RW_WUNLOCK,	LSR_RELEASE,	LS_RW_WUNLOCK_RELEASE,	    DTRACE_IDNONE },
-  { LS_RW_TRYUPGRADE,	LSR_UPGRADE,   	LS_RW_TRYUPGRADE_UPGRADE,   DTRACE_IDNONE },
-  { LS_RW_DOWNGRADE,	LSR_DOWNGRADE, 	LS_RW_DOWNGRADE_DOWNGRADE,  DTRACE_IDNONE },
+  { LS_RW_RLOCK,	LSR_ACQUIRE,	LS_RW_RLOCK_ACQUIRE,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
+  { LS_RW_RLOCK,	LSR_BLOCK,	LS_RW_RLOCK_BLOCK,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
+  { LS_RW_RLOCK,	LSR_SPIN,	LS_RW_RLOCK_SPIN,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
+  { LS_RW_RUNLOCK,	LSR_RELEASE,	LS_RW_RUNLOCK_RELEASE,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
+  { LS_RW_WLOCK,	LSR_ACQUIRE,	LS_RW_WLOCK_ACQUIRE,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
+  { LS_RW_WLOCK,	LSR_BLOCK,	LS_RW_WLOCK_BLOCK,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
+  { LS_RW_WLOCK,	LSR_SPIN,	LS_RW_WLOCK_SPIN,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
+  { LS_RW_WUNLOCK,	LSR_RELEASE,	LS_RW_WUNLOCK_RELEASE,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
+  { LS_RW_TRYUPGRADE,	LSR_UPGRADE,   	LS_RW_TRYUPGRADE_UPGRADE,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
+  { LS_RW_DOWNGRADE,	LSR_DOWNGRADE, 	LS_RW_DOWNGRADE_DOWNGRADE,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
   /* Shared/Exclusive Locks */
-  { LS_SX_SLOCK,	LSX_ACQUIRE,	LS_SX_SLOCK_ACQUIRE,	    DTRACE_IDNONE },
-  { LS_SX_SLOCK,	LSX_BLOCK,	LS_SX_SLOCK_BLOCK,	    DTRACE_IDNONE },
-  { LS_SX_SLOCK,	LSX_SPIN,	LS_SX_SLOCK_SPIN,	    DTRACE_IDNONE },
-  { LS_SX_SUNLOCK,	LSX_RELEASE,	LS_SX_SUNLOCK_RELEASE,	    DTRACE_IDNONE },
-  { LS_SX_XLOCK,	LSX_ACQUIRE,	LS_SX_XLOCK_ACQUIRE,	    DTRACE_IDNONE },
-  { LS_SX_XLOCK,	LSX_BLOCK,	LS_SX_XLOCK_BLOCK,	    DTRACE_IDNONE },
-  { LS_SX_XLOCK,	LSX_SPIN,	LS_SX_XLOCK_SPIN,	    DTRACE_IDNONE },
-  { LS_SX_XUNLOCK,	LSX_RELEASE,	LS_SX_XUNLOCK_RELEASE,	    DTRACE_IDNONE },
-  { LS_SX_TRYUPGRADE,	LSX_UPGRADE,	LS_SX_TRYUPGRADE_UPGRADE,   DTRACE_IDNONE },
-  { LS_SX_DOWNGRADE,	LSX_DOWNGRADE,	LS_SX_DOWNGRADE_DOWNGRADE,  DTRACE_IDNONE },
+  { LS_SX_SLOCK,	LSX_ACQUIRE,	LS_SX_SLOCK_ACQUIRE,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
+  { LS_SX_SLOCK,	LSX_BLOCK,	LS_SX_SLOCK_BLOCK,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
+  { LS_SX_SLOCK,	LSX_SPIN,	LS_SX_SLOCK_SPIN,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
+  { LS_SX_SUNLOCK,	LSX_RELEASE,	LS_SX_SUNLOCK_RELEASE,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
+  { LS_SX_XLOCK,	LSX_ACQUIRE,	LS_SX_XLOCK_ACQUIRE,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
+  { LS_SX_XLOCK,	LSX_BLOCK,	LS_SX_XLOCK_BLOCK,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
+  { LS_SX_XLOCK,	LSX_SPIN,	LS_SX_XLOCK_SPIN,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
+  { LS_SX_XUNLOCK,	LSX_RELEASE,	LS_SX_XUNLOCK_RELEASE,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
+  { LS_SX_TRYUPGRADE,	LSX_UPGRADE,	LS_SX_TRYUPGRADE_UPGRADE,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
+  { LS_SX_DOWNGRADE,	LSX_DOWNGRADE,	LS_SX_DOWNGRADE_DOWNGRADE,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
   /* Thread Locks */
-  { LS_THREAD_LOCK,	LST_SPIN,	LS_THREAD_LOCK_SPIN,	    DTRACE_IDNONE },
+  { LS_THREAD_LOCK,	LST_SPIN,	LS_THREAD_LOCK_SPIN,
+	  DTRACE_IDNONE, LOCKSTAT_AFRAMES },
   { NULL }
 };
 #else
@@ -196,9 +228,15 @@
 			continue;
 
 		ASSERT(!probe->lsp_id);
+#ifdef __MidnightBSD__
 		probe->lsp_id = dtrace_probe_create(lockstat_id,
 		    "kernel", probe->lsp_func, probe->lsp_name,
+		    probe->lsp_frame, probe);
+#else
+		probe->lsp_id = dtrace_probe_create(lockstat_id,
+		    "kernel", probe->lsp_func, probe->lsp_name,
 		    LOCKSTAT_AFRAMES, probe);
+#endif
 	}
 }
 



More information about the Midnightbsd-cvs mailing list