summaryrefslogtreecommitdiffstats
path: root/sys/sys/lockstat.h
diff options
context:
space:
mode:
authormjg <mjg@FreeBSD.org>2017-03-16 07:46:24 +0000
committermjg <mjg@FreeBSD.org>2017-03-16 07:46:24 +0000
commitc4583dcae0e9a8913daa25b170c4c1e5ab7f2e9e (patch)
tree9c9f83de04d9dedfc8a6809c7cf323732bb544bb /sys/sys/lockstat.h
parent3f6f07c3cdebcbac82de4c6004c77ccd00354f69 (diff)
downloadFreeBSD-src-c4583dcae0e9a8913daa25b170c4c1e5ab7f2e9e.zip
FreeBSD-src-c4583dcae0e9a8913daa25b170c4c1e5ab7f2e9e.tar.gz
MFC r313874:
Make inline lockstat checks just inspect lockstat_enabled There is no correctness issue and this lets the kernel just test one typically false variable.
Diffstat (limited to 'sys/sys/lockstat.h')
-rw-r--r--sys/sys/lockstat.h19
1 files changed, 11 insertions, 8 deletions
diff --git a/sys/sys/lockstat.h b/sys/sys/lockstat.h
index 6183bc7..77294fb 100644
--- a/sys/sys/lockstat.h
+++ b/sys/sys/lockstat.h
@@ -107,6 +107,13 @@ extern int lockstat_enabled;
LOCKSTAT_RECORD1(probe, lp, a); \
} while (0)
+#ifndef LOCK_PROFILING
+#define LOCKSTAT_PROFILE_ENABLED(probe) __predict_false(lockstat_enabled)
+#define LOCKSTAT_OOL_PROFILE_ENABLED(probe) LOCKSTAT_PROFILE_ENABLED(probe)
+#else
+#define LOCKSTAT_OOL_PROFILE_ENABLED(probe) 1
+#endif
+
struct lock_object;
uint64_t lockstat_nsecs(struct lock_object *);
@@ -130,16 +137,12 @@ uint64_t lockstat_nsecs(struct lock_object *);
#define LOCKSTAT_PROFILE_RELEASE_RWLOCK(probe, lp, a) \
LOCKSTAT_PROFILE_RELEASE_LOCK(probe, lp)
-#endif /* !KDTRACE_HOOKS */
-
#ifndef LOCK_PROFILING
-#define LOCKSTAT_PROFILE_ENABLED(probe) \
- SDT_PROBE_ENABLED(lockstat, , , probe)
-#define LOCKSTAT_OOL_PROFILE_ENABLED(probe) \
- SDT_PROBE_ENABLED(lockstat, , , probe)
-#else
-#define LOCKSTAT_OOL_PROFILE_ENABLED(probe) 1
+#define LOCKSTAT_PROFILE_ENABLED(probe) 0
#endif
+#define LOCKSTAT_OOL_PROFILE_ENABLED(probe) 1
+
+#endif /* !KDTRACE_HOOKS */
#endif /* _KERNEL */
#endif /* _SYS_LOCKSTAT_H */
OpenPOWER on IntegriCloud