diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2022-04-03 15:13:20 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2022-10-03 22:52:17 -0400 |
commit | 349be0abba2c7e46f0e6a35fe777a3626e502d0b (patch) | |
tree | 430e9ae17d9f0a74c9eada577d30dcabb9a31fe2 | |
parent | bbe84fc1da93903978901ac646640d71e79967d4 (diff) |
bcachefs: Add a tracepoint for superblock writes
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r-- | fs/bcachefs/super-io.c | 4 | ||||
-rw-r--r-- | include/trace/events/bcachefs.h | 20 |
2 files changed, 24 insertions, 0 deletions
diff --git a/fs/bcachefs/super-io.c b/fs/bcachefs/super-io.c index 1fa2d01ff24d..a0eee55b1819 100644 --- a/fs/bcachefs/super-io.c +++ b/fs/bcachefs/super-io.c @@ -21,6 +21,8 @@ #include <linux/backing-dev.h> #include <linux/sort.h> +#include <trace/events/bcachefs.h> + const char * const bch2_sb_fields[] = { #define x(name, nr) #name, BCH_SB_FIELDS() @@ -790,6 +792,8 @@ int bch2_write_super(struct bch_fs *c) unsigned degraded_flags = BCH_FORCE_IF_DEGRADED; int ret = 0; + trace_write_super(c, _RET_IP_); + if (c->opts.very_degraded) degraded_flags |= BCH_FORCE_IF_LOST; diff --git a/include/trace/events/bcachefs.h b/include/trace/events/bcachefs.h index f63a7c87265d..f60ba1e4aca8 100644 --- a/include/trace/events/bcachefs.h +++ b/include/trace/events/bcachefs.h @@ -82,6 +82,26 @@ DECLARE_EVENT_CLASS(bio, (unsigned long long)__entry->sector, __entry->nr_sector) ); +/* super-io.c: */ +TRACE_EVENT(write_super, + TP_PROTO(struct bch_fs *c, unsigned long ip), + TP_ARGS(c, ip), + + TP_STRUCT__entry( + __field(dev_t, dev ) + __field(unsigned long, ip ) + ), + + TP_fast_assign( + __entry->dev = c->dev; + __entry->ip = ip; + ), + + TP_printk("%d,%d for %pS", + MAJOR(__entry->dev), MINOR(__entry->dev), + (void *) __entry->ip) +); + /* io.c: */ DEFINE_EVENT(bio, read_split, |