diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2021-05-26 01:03:35 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2021-05-26 01:03:53 -0400 |
commit | 1e5e0932bb13ae70b8e414e3eab8cbd296aa2692 (patch) | |
tree | 92c59b9b4c6b260816e28248339a86bd619861cf | |
parent | adc9a87e10945b0fc602d3423822c9d5f41000e9 (diff) |
bcachefs: Add a tracepoint for copygc waiting
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r-- | fs/bcachefs/movinggc.c | 1 | ||||
-rw-r--r-- | include/trace/events/bcachefs.h | 21 |
2 files changed, 22 insertions, 0 deletions
diff --git a/fs/bcachefs/movinggc.c b/fs/bcachefs/movinggc.c index 0963c4969421..2acca0ddb6fd 100644 --- a/fs/bcachefs/movinggc.c +++ b/fs/bcachefs/movinggc.c @@ -326,6 +326,7 @@ static int bch2_copygc_thread(void *arg) wait = bch2_copygc_wait_amount(c); if (wait > clock->max_slop) { + trace_copygc_wait(c, wait, last + wait); c->copygc_wait = last + wait; bch2_kthread_io_clock_wait(clock, last + wait, MAX_SCHEDULE_TIMEOUT); diff --git a/include/trace/events/bcachefs.h b/include/trace/events/bcachefs.h index c79338c8ebf7..1246ba94319d 100644 --- a/include/trace/events/bcachefs.h +++ b/include/trace/events/bcachefs.h @@ -528,6 +528,27 @@ TRACE_EVENT(copygc, __entry->buckets_moved, __entry->buckets_not_moved) ); +TRACE_EVENT(copygc_wait, + TP_PROTO(struct bch_fs *c, + u64 wait_amount, u64 until), + TP_ARGS(c, wait_amount, until), + + TP_STRUCT__entry( + __array(char, uuid, 16 ) + __field(u64, wait_amount ) + __field(u64, until ) + ), + + TP_fast_assign( + memcpy(__entry->uuid, c->sb.user_uuid.b, 16); + __entry->wait_amount = wait_amount; + __entry->until = until; + ), + + TP_printk("%pU waiting for %llu sectors until %llu", + __entry->uuid, __entry->wait_amount, __entry->until) +); + TRACE_EVENT(trans_get_iter, TP_PROTO(unsigned long caller, unsigned long ip, enum btree_id btree_id, |