bcachefs: Improve sysfs internal/btree_updates
authorKent Overstreet <kent.overstreet@linux.dev>
Mon, 18 Mar 2024 00:27:00 +0000 (20:27 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Mon, 18 Mar 2024 00:53:12 +0000 (20:53 -0400)
Print out the function that launched the btree update.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_update_interior.c
fs/bcachefs/btree_update_interior.h

index 5b2094458df7c73f575ab2ac11d2e32c88ed4e5f..ea768c2bf8e1b24d47d9b7afbb706d486595c8a8 100644 (file)
@@ -1117,6 +1117,7 @@ bch2_btree_update_start(struct btree_trans *trans, struct btree_path *path,
        closure_init(&as->cl, NULL);
        as->c           = c;
        as->start_time  = start_time;
+       as->ip_started  = _RET_IP_;
        as->mode        = BTREE_INTERIOR_NO_UPDATE;
        as->took_gc_lock = true;
        as->btree_id    = path->btree_id;
@@ -2441,12 +2442,12 @@ void bch2_btree_updates_to_text(struct printbuf *out, struct bch_fs *c)
 
        mutex_lock(&c->btree_interior_update_lock);
        list_for_each_entry(as, &c->btree_interior_update_list, list)
-               prt_printf(out, "%p m %u w %u r %u j %llu\n",
-                      as,
-                      as->mode,
-                      as->nodes_written,
-                      closure_nr_remaining(&as->cl),
-                      as->journal.seq);
+               prt_printf(out, "%ps: mode=%u nodes_written=%u cl.remaining=%u journal_seq=%llu\n",
+                          (void *) as->ip_started,
+                          as->mode,
+                          as->nodes_written,
+                          closure_nr_remaining(&as->cl),
+                          as->journal.seq);
        mutex_unlock(&c->btree_interior_update_lock);
 }
 
index 3439b03719c7b505bf43e5f76bf703f6778c9899..f651dd48aaa0496b7cf7c80eb183896b1d418044 100644 (file)
@@ -32,6 +32,7 @@ struct btree_update {
        struct closure                  cl;
        struct bch_fs                   *c;
        u64                             start_time;
+       unsigned long                   ip_started;
 
        struct list_head                list;
        struct list_head                unwritten_list;