summaryrefslogtreecommitdiffstats
path: root/include/os
diff options
context:
space:
mode:
authorMatthew Macy <[email protected]>2020-02-18 11:21:37 -0800
committerGitHub <[email protected]>2020-02-18 11:21:37 -0800
commit8b3547a481a74b39c5d0eed256896fb25e8310e9 (patch)
treeeefb8c2d64b7246ca5f7559fece72838e7b76f88 /include/os
parentf2448464623f240002a0dff0f4617dec4c2cdefe (diff)
Factor out some dbuf subroutines and add state change tracing
Create dedicated dbuf_read_hole and dbuf_read_bonus. Additionally, add a dtrace probe to allow state change tracing. Reviewed-by: Matt Ahrens <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Will Andrews <[email protected]> Reviewed by: Brad Lewis <[email protected]> Authored-by: Will Andrews <[email protected]> Signed-off-by: Matt Macy <[email protected]> Closes #9923
Diffstat (limited to 'include/os')
-rw-r--r--include/os/linux/zfs/sys/trace_dbuf.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/os/linux/zfs/sys/trace_dbuf.h b/include/os/linux/zfs/sys/trace_dbuf.h
index fb12e2854..bd7d791a4 100644
--- a/include/os/linux/zfs/sys/trace_dbuf.h
+++ b/include/os/linux/zfs/sys/trace_dbuf.h
@@ -107,6 +107,14 @@ DECLARE_EVENT_CLASS(zfs_dbuf_class,
TP_fast_assign(DBUF_TP_FAST_ASSIGN),
TP_printk("%s", __get_str(msg))
);
+
+DECLARE_EVENT_CLASS(zfs_dbuf_state_class,
+ TP_PROTO(dmu_buf_impl_t *db, const char *why),
+ TP_ARGS(db, why),
+ TP_STRUCT__entry(DBUF_TP_STRUCT_ENTRY),
+ TP_fast_assign(DBUF_TP_FAST_ASSIGN),
+ TP_printk("%s", __get_str(msg))
+);
/* END CSTYLED */
/* BEGIN CSTYLED */
@@ -118,6 +126,14 @@ DEFINE_EVENT(zfs_dbuf_class, name, \
DEFINE_DBUF_EVENT(zfs_blocked__read);
/* BEGIN CSTYLED */
+#define DEFINE_DBUF_STATE_EVENT(name) \
+DEFINE_EVENT(zfs_dbuf_state_class, name, \
+ TP_PROTO(dmu_buf_impl_t *db, const char *why), \
+ TP_ARGS(db, why))
+/* END CSTYLED */
+DEFINE_DBUF_STATE_EVENT(zfs_dbuf__state_change);
+
+/* BEGIN CSTYLED */
DECLARE_EVENT_CLASS(zfs_dbuf_evict_one_class,
TP_PROTO(dmu_buf_impl_t *db, multilist_sublist_t *mls),
TP_ARGS(db, mls),
@@ -147,6 +163,7 @@ DEFINE_DBUF_EVICT_ONE_EVENT(zfs_dbuf__evict__one);
DEFINE_DTRACE_PROBE2(blocked__read);
DEFINE_DTRACE_PROBE2(dbuf__evict__one);
+DEFINE_DTRACE_PROBE2(dbuf__state_change);
#endif /* HAVE_DECLARE_EVENT_CLASS */
#endif /* _KERNEL */