aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2021-04-29 00:21:54 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-22 17:09:02 -0400
commit4f6dad46cb4b6db75758bc790a74d7f0f04e450b (patch)
tree0c5c3b11e5e50f1e14e407231a7608ab24eb77e1
parentbcachefs: Make sure to initialize j->last_flushed (diff)
downloadwireguard-linux-4f6dad46cb4b6db75758bc790a74d7f0f04e450b.tar.xz
wireguard-linux-4f6dad46cb4b6db75758bc790a74d7f0f04e450b.zip
bcachefs: Add a tracepoint for when we block on journal reclaim
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r--fs/bcachefs/btree_update_leaf.c2
-rw-r--r--fs/bcachefs/trace.h5
2 files changed, 7 insertions, 0 deletions
diff --git a/fs/bcachefs/btree_update_leaf.c b/fs/bcachefs/btree_update_leaf.c
index e537bd64e1fb..2e7b9210564d 100644
--- a/fs/bcachefs/btree_update_leaf.c
+++ b/fs/bcachefs/btree_update_leaf.c
@@ -725,6 +725,8 @@ int bch2_trans_commit_error(struct btree_trans *trans,
case BTREE_INSERT_NEED_JOURNAL_RECLAIM:
bch2_trans_unlock(trans);
+ trace_trans_blocked_journal_reclaim(trans->ip);
+
wait_event_freezable(c->journal.reclaim_wait,
(ret = journal_reclaim_wait_done(c)));
if (ret < 0)
diff --git a/fs/bcachefs/trace.h b/fs/bcachefs/trace.h
index 7e518f7618d4..b0a696ae4fc1 100644
--- a/fs/bcachefs/trace.h
+++ b/fs/bcachefs/trace.h
@@ -621,6 +621,11 @@ DEFINE_EVENT(transaction_restart, trans_restart_btree_node_reused,
TP_ARGS(ip)
);
+DEFINE_EVENT(transaction_restart, trans_blocked_journal_reclaim,
+ TP_PROTO(unsigned long ip),
+ TP_ARGS(ip)
+);
+
TRACE_EVENT(trans_restart_would_deadlock,
TP_PROTO(unsigned long trans_ip,
unsigned long caller_ip,