svn commit: r332900 - in head/sys: cddl/dev/sdt kern sys
Mateusz Guzik
mjg at FreeBSD.org
Tue Apr 24 01:04:11 UTC 2018
Author: mjg
Date: Tue Apr 24 01:04:10 2018
New Revision: 332900
URL: https://svnweb.freebsd.org/changeset/base/332900
Log:
lockstat: track lockstat just like sdt probes
In particular flip the frequently tested var to bool.
Modified:
head/sys/cddl/dev/sdt/sdt.c
head/sys/kern/kern_lockstat.c
head/sys/sys/lockstat.h
Modified: head/sys/cddl/dev/sdt/sdt.c
==============================================================================
--- head/sys/cddl/dev/sdt/sdt.c Tue Apr 24 00:47:17 2018 (r332899)
+++ head/sys/cddl/dev/sdt/sdt.c Tue Apr 24 01:04:10 2018 (r332900)
@@ -77,6 +77,7 @@ static void sdt_kld_unload_try(void *, struct linker_f
static MALLOC_DEFINE(M_SDT, "SDT", "DTrace SDT providers");
static int sdt_probes_enabled_count;
+static int lockstat_enabled_count;
static dtrace_pattr_t sdt_attr = {
{ DTRACE_STABILITY_EVOLVING, DTRACE_STABILITY_EVOLVING, DTRACE_CLASS_COMMON },
@@ -208,8 +209,11 @@ sdt_enable(void *arg __unused, dtrace_id_t id, void *p
probe->id = id;
probe->sdtp_lf->nenabled++;
- if (strcmp(probe->prov->name, "lockstat") == 0)
- lockstat_enabled++;
+ if (strcmp(probe->prov->name, "lockstat") == 0) {
+ lockstat_enabled_count++;
+ if (lockstat_enabled_count == 1)
+ lockstat_enabled = true;
+ }
sdt_probes_enabled_count++;
if (sdt_probes_enabled_count == 1)
sdt_probes_enabled = true;
@@ -225,8 +229,11 @@ sdt_disable(void *arg __unused, dtrace_id_t id, void *
sdt_probes_enabled_count--;
if (sdt_probes_enabled_count == 0)
sdt_probes_enabled = false;
- if (strcmp(probe->prov->name, "lockstat") == 0)
- lockstat_enabled--;
+ if (strcmp(probe->prov->name, "lockstat") == 0) {
+ lockstat_enabled_count--;
+ if (lockstat_enabled_count == 0)
+ lockstat_enabled = false;
+ }
probe->id = 0;
probe->sdtp_lf->nenabled--;
}
Modified: head/sys/kern/kern_lockstat.c
==============================================================================
--- head/sys/kern/kern_lockstat.c Tue Apr 24 00:47:17 2018 (r332899)
+++ head/sys/kern/kern_lockstat.c Tue Apr 24 01:04:10 2018 (r332900)
@@ -64,7 +64,7 @@ SDT_PROBE_DEFINE1(lockstat, , , sx__downgrade, "struct
SDT_PROBE_DEFINE2(lockstat, , , thread__spin, "struct mtx *", "uint64_t");
-volatile int __read_frequently lockstat_enabled;
+volatile bool __read_frequently lockstat_enabled;
uint64_t
lockstat_nsecs(struct lock_object *lo)
Modified: head/sys/sys/lockstat.h
==============================================================================
--- head/sys/sys/lockstat.h Tue Apr 24 00:47:17 2018 (r332899)
+++ head/sys/sys/lockstat.h Tue Apr 24 01:04:10 2018 (r332900)
@@ -70,7 +70,7 @@ SDT_PROBE_DECLARE(lockstat, , , thread__spin);
#define LOCKSTAT_WRITER 0
#define LOCKSTAT_READER 1
-extern volatile int lockstat_enabled;
+extern volatile bool lockstat_enabled;
#ifdef KDTRACE_HOOKS
More information about the svn-src-all
mailing list