diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2022-07-18 04:40:39 +0300 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-23 00:09:36 +0300 |
commit | 8ef983139940439b3c169ea90dbb8c21e5dcadd3 (patch) | |
tree | 7417028f6315e368328ccdc882a47a2015d0302d /fs/bcachefs/alloc_foreground.c | |
parent | f501ad2b8108a7910adf494fcc5c59bbbfa886e8 (diff) | |
download | linux-8ef983139940439b3c169ea90dbb8c21e5dcadd3.tar.xz |
bcachefs: Improve bucket_alloc_fail tracepoint
We should be printing the number of free buckets, not just the number of
available buckets.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/alloc_foreground.c')
-rw-r--r-- | fs/bcachefs/alloc_foreground.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/fs/bcachefs/alloc_foreground.c b/fs/bcachefs/alloc_foreground.c index 174b3a745ab8..2d44ce2e11de 100644 --- a/fs/bcachefs/alloc_foreground.c +++ b/fs/bcachefs/alloc_foreground.c @@ -26,6 +26,7 @@ #include "error.h" #include "io.h" #include "journal.h" +#include "movinggc.h" #include "trace.h" #include <linux/math64.h> @@ -526,7 +527,7 @@ static struct open_bucket *bch2_bucket_alloc_trans(struct btree_trans *trans, bool waiting = false; again: usage = bch2_dev_usage_read(ca); - avail = dev_buckets_free(ca, usage,reserve); + avail = dev_buckets_free(ca, usage, reserve); if (usage.d[BCH_DATA_need_discard].buckets > avail) bch2_do_discards(c); @@ -581,14 +582,22 @@ err: ob = ERR_PTR(-FREELIST_EMPTY); if (!IS_ERR(ob)) { - trace_bucket_alloc(ca, bch2_alloc_reserves[reserve], avail, + trace_bucket_alloc(ca, bch2_alloc_reserves[reserve], + usage.d[BCH_DATA_free].buckets, + avail, + bch2_copygc_wait_amount(c), + c->copygc_wait - atomic64_read(&c->io_clock[WRITE].now), buckets_seen, skipped_open, skipped_need_journal_commit, skipped_nouse, cl == NULL, PTR_ERR_OR_ZERO(ob)); } else { - trace_bucket_alloc_fail(ca, bch2_alloc_reserves[reserve], avail, + trace_bucket_alloc_fail(ca, bch2_alloc_reserves[reserve], + usage.d[BCH_DATA_free].buckets, + avail, + bch2_copygc_wait_amount(c), + c->copygc_wait - atomic64_read(&c->io_clock[WRITE].now), buckets_seen, skipped_open, skipped_need_journal_commit, |