From: Kent Overstreet Date: Mon, 13 Jun 2022 23:45:07 +0000 (-0400) Subject: bcachefs: Add a persistent counter for bucket invalidation X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=440c15cc912d630320bfb684d799ab225be4178e;p=linux.git bcachefs: Add a persistent counter for bucket invalidation Signed-off-by: Kent Overstreet --- diff --git a/fs/bcachefs/alloc_background.c b/fs/bcachefs/alloc_background.c index 982cd185b1afa..543ec0c45883d 100644 --- a/fs/bcachefs/alloc_background.c +++ b/fs/bcachefs/alloc_background.c @@ -1173,11 +1173,16 @@ static void bch2_do_invalidates_work(struct work_struct *work) s64 nr_to_invalidate = should_invalidate_buckets(ca, bch2_dev_usage_read(ca)); - while (!ret && nr_to_invalidate-- >= 0) + while (nr_to_invalidate-- >= 0) { ret = __bch2_trans_do(&trans, NULL, NULL, BTREE_INSERT_USE_RESERVE| BTREE_INSERT_NOFAIL, invalidate_one_bucket(&trans, ca)); + if (ret) + break; + + this_cpu_inc(c->counters[BCH_COUNTER_bucket_invalidate]); + } } bch2_trans_exit(&trans); diff --git a/fs/bcachefs/bcachefs_format.h b/fs/bcachefs/bcachefs_format.h index 079ad93ab34e9..944cc6247a842 100644 --- a/fs/bcachefs/bcachefs_format.h +++ b/fs/bcachefs/bcachefs_format.h @@ -1326,10 +1326,11 @@ struct bch_sb_field_disk_groups { /* BCH_SB_FIELD_counters */ -#define BCH_PERSISTENT_COUNTERS() \ - x(io_read, 0) \ - x(io_write, 1) \ - x(io_move, 2) +#define BCH_PERSISTENT_COUNTERS() \ + x(io_read, 0) \ + x(io_write, 1) \ + x(io_move, 2) \ + x(bucket_invalidate, 3) enum bch_persistent_counters { #define x(t, n, ...) BCH_COUNTER_##t,