summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_devstat.c
diff options
context:
space:
mode:
authoravg <avg@FreeBSD.org>2014-01-17 10:34:01 +0000
committeravg <avg@FreeBSD.org>2014-01-17 10:34:01 +0000
commitf481239dd362d8dea2669b455d995cf73afef620 (patch)
treeb3b55961d4f9f88e9160347e8227990f55e093cb /sys/kern/subr_devstat.c
parentcc2516d697b941b1c3f7bae5bfb6f91a3cde66bd (diff)
downloadFreeBSD-src-f481239dd362d8dea2669b455d995cf73afef620.zip
FreeBSD-src-f481239dd362d8dea2669b455d995cf73afef620.tar.gz
MFC r257037: Redefine the io provider using the SDT(9) macros
MFC slacker: markj
Diffstat (limited to 'sys/kern/subr_devstat.c')
-rw-r--r--sys/kern/subr_devstat.c67
1 files changed, 16 insertions, 51 deletions
diff --git a/sys/kern/subr_devstat.c b/sys/kern/subr_devstat.c
index 6800ce3..f5cb27f 100644
--- a/sys/kern/subr_devstat.c
+++ b/sys/kern/subr_devstat.c
@@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$");
#include <sys/systm.h>
#include <sys/bio.h>
#include <sys/devicestat.h>
+#include <sys/sdt.h>
#include <sys/sysctl.h>
#include <sys/malloc.h>
#include <sys/lock.h>
@@ -46,57 +47,21 @@ __FBSDID("$FreeBSD$");
#include <machine/atomic.h>
-#ifdef KDTRACE_HOOKS
-#include <sys/dtrace_bsd.h>
-
-dtrace_io_start_probe_func_t dtrace_io_start_probe;
-dtrace_io_done_probe_func_t dtrace_io_done_probe;
-dtrace_io_wait_start_probe_func_t dtrace_io_wait_start_probe;
-dtrace_io_wait_done_probe_func_t dtrace_io_wait_done_probe;
-
-uint32_t dtio_start_id;
-uint32_t dtio_done_id;
-uint32_t dtio_wait_start_id;
-uint32_t dtio_wait_done_id;
-
-#define DTRACE_DEVSTAT_START() \
- if (dtrace_io_start_probe != NULL) \
- (*dtrace_io_start_probe)(dtio_start_id, NULL, ds);
-
-#define DTRACE_DEVSTAT_BIO_START() \
- if (dtrace_io_start_probe != NULL) \
- (*dtrace_io_start_probe)(dtio_start_id, bp, ds);
-
-#define DTRACE_DEVSTAT_DONE() \
- if (dtrace_io_done_probe != NULL) \
- (*dtrace_io_done_probe)(dtio_done_id, NULL, ds);
-
-#define DTRACE_DEVSTAT_BIO_DONE() \
- if (dtrace_io_done_probe != NULL) \
- (*dtrace_io_done_probe)(dtio_done_id, bp, ds);
-
-#define DTRACE_DEVSTAT_WAIT_START() \
- if (dtrace_io_wait_start_probe != NULL) \
- (*dtrace_io_wait_start_probe)(dtio_wait_start_id, NULL, ds);
-
-#define DTRACE_DEVSTAT_WAIT_DONE() \
- if (dtrace_io_wait_done_probe != NULL) \
- (*dtrace_io_wait_done_probe)(dtio_wait_done_id, NULL, ds);
-
-#else /* ! KDTRACE_HOOKS */
-
-#define DTRACE_DEVSTAT_START()
-
-#define DTRACE_DEVSTAT_BIO_START()
-
-#define DTRACE_DEVSTAT_DONE()
-
-#define DTRACE_DEVSTAT_BIO_DONE()
-
-#define DTRACE_DEVSTAT_WAIT_START()
-
-#define DTRACE_DEVSTAT_WAIT_DONE()
-#endif /* KDTRACE_HOOKS */
+SDT_PROVIDER_DEFINE(io);
+
+SDT_PROBE_DEFINE2(io, , , start, start, "struct bio *", "struct devstat *");
+SDT_PROBE_DEFINE2(io, , , done, done, "struct bio *", "struct devstat *");
+SDT_PROBE_DEFINE2(io, , , wait_start, wait-start, "struct bio *",
+ "struct devstat *");
+SDT_PROBE_DEFINE2(io, , , wait_done, wait-done, "struct bio *",
+ "struct devstat *");
+
+#define DTRACE_DEVSTAT_START() SDT_PROBE2(io, , , start, NULL, ds)
+#define DTRACE_DEVSTAT_BIO_START() SDT_PROBE2(io, , , start, bp, ds)
+#define DTRACE_DEVSTAT_DONE() SDT_PROBE2(io, , , done, NULL, ds)
+#define DTRACE_DEVSTAT_BIO_DONE() SDT_PROBE2(io, , , done, bp, ds)
+#define DTRACE_DEVSTAT_WAIT_START() SDT_PROBE2(io, , , wait_start, NULL, ds)
+#define DTRACE_DEVSTAT_WAIT_DONE() SDT_PROBE2(io, , , wait_done, NULL, ds)
static int devstat_num_devs;
static long devstat_generation = 1;
OpenPOWER on IntegriCloud