[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