]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
bcachefs: trace_extent_trim_atomic
authorKent Overstreet <kent.overstreet@linux.dev>
Thu, 12 Jun 2025 22:26:48 +0000 (18:26 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Mon, 16 Jun 2025 02:11:55 +0000 (22:11 -0400)
Add a tracepoint for when we insert only part of an extent, due to too
many overwrites.

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

index b899ee75f5b9eb9843c6dbf7a89e3e1f6e356590..e76e58a568bffcead27a4a84d310190a353ea3a0 100644 (file)
@@ -139,6 +139,17 @@ int bch2_extent_trim_atomic(struct btree_trans *trans,
        if (ret)
                return ret;
 
-       bch2_cut_back(end, k);
+       /* tracepoint */
+
+       if (bpos_lt(end, k->k.p)) {
+               if (trace_extent_trim_atomic_enabled()) {
+                       CLASS(printbuf, buf)();
+                       bch2_bpos_to_text(&buf, end);
+                       prt_newline(&buf);
+                       bch2_bkey_val_to_text(&buf, trans->c, bkey_i_to_s_c(k));
+                       trace_extent_trim_atomic(trans->c, buf.buf);
+               }
+               bch2_cut_back(end, k);
+       }
        return 0;
 }
index dc09532796afc6c33dc300b84ea66fbad7fbc32f..41efebdd06efd34ecba8fb79ec687856295c4004 100644 (file)
@@ -1490,6 +1490,11 @@ DEFINE_EVENT(fs_str, io_move_evacuate_bucket,
        TP_ARGS(c, str)
 );
 
+DEFINE_EVENT(fs_str, extent_trim_atomic,
+       TP_PROTO(struct bch_fs *c, const char *str),
+       TP_ARGS(c, str)
+);
+
 #ifdef CONFIG_BCACHEFS_PATH_TRACEPOINTS
 
 TRACE_EVENT(update_by_path,