From: Kent Overstreet Date: Wed, 26 May 2021 05:03:35 +0000 (-0400) Subject: bcachefs: Add a tracepoint for copygc waiting X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=19d2819d2d01bf46d0a12cafc532af0aab9b1cc1;p=linux.git bcachefs: Add a tracepoint for copygc waiting Signed-off-by: Kent Overstreet --- diff --git a/fs/bcachefs/movinggc.c b/fs/bcachefs/movinggc.c index e8f9d70af9302..b805371fe99f8 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 b0a696ae4fc10..1f62d82624bd5 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,