diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2021-05-26 08:03:35 +0300 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-23 00:09:04 +0300 |
commit | 19d2819d2d01bf46d0a12cafc532af0aab9b1cc1 (patch) | |
tree | 718e36dc832f4b9545d0a2ca30f0fd721ab20995 /fs | |
parent | c4d4b2f01abd95af7c6dccf236e2760aef5a9b69 (diff) | |
download | linux-19d2819d2d01bf46d0a12cafc532af0aab9b1cc1.tar.xz |
bcachefs: Add a tracepoint for copygc waiting
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/bcachefs/movinggc.c | 1 | ||||
-rw-r--r-- | fs/bcachefs/trace.h | 21 |
2 files changed, 22 insertions, 0 deletions
diff --git a/fs/bcachefs/movinggc.c b/fs/bcachefs/movinggc.c index e8f9d70af930..b805371fe99f 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/fs/bcachefs/trace.h b/fs/bcachefs/trace.h index b0a696ae4fc1..1f62d82624bd 100644 --- a/fs/bcachefs/trace.h +++ b/fs/bcachefs/trace.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, |