From c85d7796090741fe6a75f953afae964344066448 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Wed, 1 Mar 2023 23:10:39 -0500 Subject: [PATCH] bcachefs: bch2_copygc_wait_to_text() Signed-off-by: Kent Overstreet --- fs/bcachefs/movinggc.c | 12 ++++++++++++ fs/bcachefs/movinggc.h | 2 ++ fs/bcachefs/sysfs.c | 7 ++++--- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/fs/bcachefs/movinggc.c b/fs/bcachefs/movinggc.c index 74e57f6ea148..63b358c95282 100644 --- a/fs/bcachefs/movinggc.c +++ b/fs/bcachefs/movinggc.c @@ -172,6 +172,18 @@ unsigned long bch2_copygc_wait_amount(struct bch_fs *c) return wait; } +void bch2_copygc_wait_to_text(struct printbuf *out, struct bch_fs *c) +{ + prt_printf(out, "Currently waiting for: "); + prt_human_readable_u64(out, max(0LL, c->copygc_wait - + atomic64_read(&c->io_clock[WRITE].now)) << 9); + prt_newline(out); + + prt_printf(out, "Currently calculated wait: "); + prt_human_readable_u64(out, bch2_copygc_wait_amount(c)); + prt_newline(out); +} + static int bch2_copygc_thread(void *arg) { struct bch_fs *c = arg; diff --git a/fs/bcachefs/movinggc.h b/fs/bcachefs/movinggc.h index e85c8136a46e..ea181fef5bc9 100644 --- a/fs/bcachefs/movinggc.h +++ b/fs/bcachefs/movinggc.h @@ -3,6 +3,8 @@ #define _BCACHEFS_MOVINGGC_H unsigned long bch2_copygc_wait_amount(struct bch_fs *); +void bch2_copygc_wait_to_text(struct printbuf *, struct bch_fs *); + void bch2_copygc_stop(struct bch_fs *); int bch2_copygc_start(struct bch_fs *); void bch2_fs_copygc_init(struct bch_fs *); diff --git a/fs/bcachefs/sysfs.c b/fs/bcachefs/sysfs.c index 8108e1d81345..4abba2c9ccfa 100644 --- a/fs/bcachefs/sysfs.c +++ b/fs/bcachefs/sysfs.c @@ -27,6 +27,7 @@ #include "journal.h" #include "keylist.h" #include "move.h" +#include "movinggc.h" #include "nocow_locking.h" #include "opts.h" #include "rebalance.h" @@ -427,9 +428,9 @@ SHOW(bch2_fs) sysfs_printf(rebalance_enabled, "%i", c->rebalance.enabled); sysfs_pd_controller_show(rebalance, &c->rebalance.pd); /* XXX */ - sysfs_hprint(copy_gc_wait, - max(0LL, c->copygc_wait - - atomic64_read(&c->io_clock[WRITE].now)) << 9); + + if (attr == &sysfs_copy_gc_wait) + bch2_copygc_wait_to_text(out, c); if (attr == &sysfs_rebalance_work) bch2_rebalance_work_to_text(out, c);