summaryrefslogtreecommitdiffstats
path: root/sys/sys
diff options
context:
space:
mode:
authormjg <mjg@FreeBSD.org>2017-03-16 07:20:32 +0000
committermjg <mjg@FreeBSD.org>2017-03-16 07:20:32 +0000
commit3f6f07c3cdebcbac82de4c6004c77ccd00354f69 (patch)
tree7cf15da134a16b3269f98b3ab24cdbfa5db2257a /sys/sys
parent5534c758d7385b53e8ab32e2c4936420b23179aa (diff)
downloadFreeBSD-src-3f6f07c3cdebcbac82de4c6004c77ccd00354f69.zip
FreeBSD-src-3f6f07c3cdebcbac82de4c6004c77ccd00354f69.tar.gz
MFC r313453:
Implement LOCKSTAT_OOL_PROFILE_ENABLED For use in uninlined locking primitives to decide whether lockstat or profiling needs to be taken care of.
Diffstat (limited to 'sys/sys')
-rw-r--r--sys/sys/lockstat.h14
-rw-r--r--sys/sys/sdt.h1
2 files changed, 9 insertions, 6 deletions
diff --git a/sys/sys/lockstat.h b/sys/sys/lockstat.h
index 958e950..6183bc7 100644
--- a/sys/sys/lockstat.h
+++ b/sys/sys/lockstat.h
@@ -107,10 +107,6 @@ extern int lockstat_enabled;
LOCKSTAT_RECORD1(probe, lp, a); \
} while (0)
-#ifndef LOCK_PROFILING
-#define LOCKSTAT_PROFILE_ENABLED(probe) SDT_PROBE_ENABLED(lockstat, , , probe)
-#endif
-
struct lock_object;
uint64_t lockstat_nsecs(struct lock_object *);
@@ -134,10 +130,16 @@ 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) 0
+#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
#endif
-#endif /* !KDTRACE_HOOKS */
#endif /* _KERNEL */
#endif /* _SYS_LOCKSTAT_H */
diff --git a/sys/sys/sdt.h b/sys/sys/sdt.h
index 4259883..c680ea8 100644
--- a/sys/sys/sdt.h
+++ b/sys/sys/sdt.h
@@ -86,6 +86,7 @@
#define SDT_PROVIDER_DECLARE(prov)
#define SDT_PROBE_DEFINE(prov, mod, func, name)
#define SDT_PROBE_DECLARE(prov, mod, func, name)
+#define SDT_PROBE_ENABLED(prov, mod, func, name) 0
#define SDT_PROBE(prov, mod, func, name, arg0, arg1, arg2, arg3, arg4)
#define SDT_PROBE_ARGTYPE(prov, mod, func, name, num, type, xtype)
OpenPOWER on IntegriCloud