summaryrefslogtreecommitdiff
path: root/fs/bcachefs/alloc_foreground.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2022-07-18 04:40:39 +0300
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-23 00:09:36 +0300
commit8ef983139940439b3c169ea90dbb8c21e5dcadd3 (patch)
tree7417028f6315e368328ccdc882a47a2015d0302d /fs/bcachefs/alloc_foreground.c
parentf501ad2b8108a7910adf494fcc5c59bbbfa886e8 (diff)
downloadlinux-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.c15
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,