diff options
author | mjg <mjg@FreeBSD.org> | 2017-03-16 07:20:32 +0000 |
---|---|---|
committer | mjg <mjg@FreeBSD.org> | 2017-03-16 07:20:32 +0000 |
commit | 3f6f07c3cdebcbac82de4c6004c77ccd00354f69 (patch) | |
tree | 7cf15da134a16b3269f98b3ab24cdbfa5db2257a /sys/sys | |
parent | 5534c758d7385b53e8ab32e2c4936420b23179aa (diff) | |
download | FreeBSD-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.h | 14 | ||||
-rw-r--r-- | sys/sys/sdt.h | 1 |
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) |