Signed-off-by: Kent Overstreet <[email protected]>
---
 fs/bcachefs/movinggc.c | 11 +++++++----
 fs/bcachefs/trace.h    | 26 ++++++++++++--------------
 2 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/fs/bcachefs/movinggc.c b/fs/bcachefs/movinggc.c
index 85c361e78ba5..21805509ab9e 100644
--- a/fs/bcachefs/movinggc.c
+++ b/fs/bcachefs/movinggc.c
@@ -215,7 +215,8 @@ static int bch2_copygc(struct moving_context *ctxt,
        };
        move_buckets buckets = { 0 };
        struct move_bucket_in_flight *f;
-       u64 moved = atomic64_read(&ctxt->stats->sectors_moved);
+       u64 sectors_seen        = atomic64_read(&ctxt->stats->sectors_seen);
+       u64 sectors_moved       = atomic64_read(&ctxt->stats->sectors_moved);
        int ret = 0;
 
        ret = bch2_copygc_get_buckets(ctxt, buckets_in_flight, &buckets);
@@ -245,7 +246,6 @@ static int bch2_copygc(struct moving_context *ctxt,
                *did_work = true;
        }
 err:
-       darray_exit(&buckets);
 
        /* no entries in LRU btree found, or got to end: */
        if (bch2_err_matches(ret, ENOENT))
@@ -254,8 +254,11 @@ static int bch2_copygc(struct moving_context *ctxt,
        if (ret < 0 && !bch2_err_matches(ret, EROFS))
                bch_err_msg(c, ret, "from bch2_move_data()");
 
-       moved = atomic64_read(&ctxt->stats->sectors_moved) - moved;
-       trace_and_count(c, copygc, c, moved, 0, 0, 0);
+       sectors_seen    = atomic64_read(&ctxt->stats->sectors_seen) - 
sectors_seen;
+       sectors_moved   = atomic64_read(&ctxt->stats->sectors_moved) - 
sectors_moved;
+       trace_and_count(c, copygc, c, buckets.nr, sectors_seen, sectors_moved);
+
+       darray_exit(&buckets);
        return ret;
 }
 
diff --git a/fs/bcachefs/trace.h b/fs/bcachefs/trace.h
index 9d40b7d4ea29..56a5a7fbc0fd 100644
--- a/fs/bcachefs/trace.h
+++ b/fs/bcachefs/trace.h
@@ -902,32 +902,30 @@ TRACE_EVENT(evacuate_bucket,
 
 TRACE_EVENT(copygc,
        TP_PROTO(struct bch_fs *c,
-                u64 sectors_moved, u64 sectors_not_moved,
-                u64 buckets_moved, u64 buckets_not_moved),
-       TP_ARGS(c,
-               sectors_moved, sectors_not_moved,
-               buckets_moved, buckets_not_moved),
+                u64 buckets,
+                u64 sectors_seen,
+                u64 sectors_moved),
+       TP_ARGS(c, buckets, sectors_seen, sectors_moved),
 
        TP_STRUCT__entry(
                __field(dev_t,          dev                     )
+               __field(u64,            buckets                 )
+               __field(u64,            sectors_seen            )
                __field(u64,            sectors_moved           )
-               __field(u64,            sectors_not_moved       )
-               __field(u64,            buckets_moved           )
-               __field(u64,            buckets_not_moved       )
        ),
 
        TP_fast_assign(
                __entry->dev                    = c->dev;
+               __entry->buckets                = buckets;
+               __entry->sectors_seen           = sectors_seen;
                __entry->sectors_moved          = sectors_moved;
-               __entry->sectors_not_moved      = sectors_not_moved;
-               __entry->buckets_moved          = buckets_moved;
-               __entry->buckets_not_moved = buckets_moved;
        ),
 
-       TP_printk("%d,%d sectors moved %llu remain %llu buckets moved %llu 
remain %llu",
+       TP_printk("%d,%d buckets %llu sectors seen %llu moved %llu",
                  MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->sectors_moved, __entry->sectors_not_moved,
-                 __entry->buckets_moved, __entry->buckets_not_moved)
+                 __entry->buckets,
+                 __entry->sectors_seen,
+                 __entry->sectors_moved)
 );
 
 TRACE_EVENT(copygc_wait,
-- 
2.45.2


Reply via email to