btrfs: simplify delayed ref tracepoints
authorJosef Bacik <josef@toxicpanda.com>
Sat, 13 Apr 2024 00:27:00 +0000 (20:27 -0400)
committerDavid Sterba <dsterba@suse.com>
Tue, 7 May 2024 19:31:04 +0000 (21:31 +0200)
Now that all of the delayed ref information is in the delayed ref node,
drastically simplify the delayed ref tracepoints by simply passing in
the btrfs_delayed_ref_node and populating the tracepoints with the
values from the structure itself.

Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/delayed-ref.c
fs/btrfs/extent-tree.c
include/trace/events/btrfs.h

index 743cc52..cc1510d 100644 (file)
@@ -1064,7 +1064,6 @@ int btrfs_add_delayed_tree_ref(struct btrfs_trans_handle *trans,
                               struct btrfs_delayed_extent_op *extent_op)
 {
        struct btrfs_fs_info *fs_info = trans->fs_info;
-       struct btrfs_delayed_tree_ref *ref;
        struct btrfs_delayed_ref_node *node;
        struct btrfs_delayed_ref_head *head_ref;
        struct btrfs_delayed_ref_root *delayed_refs;
@@ -1093,8 +1092,6 @@ int btrfs_add_delayed_tree_ref(struct btrfs_trans_handle *trans,
                }
        }
 
-       ref = btrfs_delayed_node_to_tree_ref(node);
-
        init_delayed_ref_common(fs_info, node, generic_ref);
 
        init_delayed_ref_head(head_ref, generic_ref, record, 0);
@@ -1119,9 +1116,7 @@ int btrfs_add_delayed_tree_ref(struct btrfs_trans_handle *trans,
         */
        btrfs_update_delayed_refs_rsv(trans);
 
-       trace_add_delayed_tree_ref(fs_info, node, ref,
-                                  action == BTRFS_ADD_DELAYED_EXTENT ?
-                                  BTRFS_ADD_DELAYED_REF : action);
+       trace_add_delayed_tree_ref(fs_info, node);
        if (merged)
                kmem_cache_free(btrfs_delayed_ref_node_cachep, node);
 
@@ -1139,7 +1134,6 @@ int btrfs_add_delayed_data_ref(struct btrfs_trans_handle *trans,
                               u64 reserved)
 {
        struct btrfs_fs_info *fs_info = trans->fs_info;
-       struct btrfs_delayed_data_ref *ref;
        struct btrfs_delayed_ref_node *node;
        struct btrfs_delayed_ref_head *head_ref;
        struct btrfs_delayed_ref_root *delayed_refs;
@@ -1153,8 +1147,6 @@ int btrfs_add_delayed_data_ref(struct btrfs_trans_handle *trans,
        if (!node)
                return -ENOMEM;
 
-       ref = btrfs_delayed_node_to_data_ref(node);
-
        init_delayed_ref_common(fs_info, node, generic_ref);
 
        head_ref = kmem_cache_alloc(btrfs_delayed_ref_head_cachep, GFP_NOFS);
@@ -1195,9 +1187,7 @@ int btrfs_add_delayed_data_ref(struct btrfs_trans_handle *trans,
         */
        btrfs_update_delayed_refs_rsv(trans);
 
-       trace_add_delayed_data_ref(trans->fs_info, node, ref,
-                                  action == BTRFS_ADD_DELAYED_EXTENT ?
-                                  BTRFS_ADD_DELAYED_REF : action);
+       trace_add_delayed_data_ref(trans->fs_info, node);
        if (merged)
                kmem_cache_free(btrfs_delayed_ref_node_cachep, node);
 
index 9a5e553..e633ca2 100644 (file)
@@ -1574,7 +1574,7 @@ static int run_delayed_data_ref(struct btrfs_trans_handle *trans,
        u64 flags = 0;
 
        ref = btrfs_delayed_node_to_data_ref(node);
-       trace_run_delayed_data_ref(trans->fs_info, node, ref, node->action);
+       trace_run_delayed_data_ref(trans->fs_info, node);
 
        if (node->type == BTRFS_SHARED_DATA_REF_KEY)
                parent = ref->parent;
@@ -1737,7 +1737,7 @@ static int run_delayed_tree_ref(struct btrfs_trans_handle *trans,
        u64 ref_root = 0;
 
        ref = btrfs_delayed_node_to_tree_ref(node);
-       trace_run_delayed_tree_ref(trans->fs_info, node, ref, node->action);
+       trace_run_delayed_tree_ref(trans->fs_info, node);
 
        if (node->type == BTRFS_SHARED_BLOCK_REF_KEY)
                parent = ref->parent;
index 766cfd4..dae29f6 100644 (file)
@@ -868,11 +868,9 @@ TRACE_EVENT(btrfs_add_block_group,
 DECLARE_EVENT_CLASS(btrfs_delayed_tree_ref,
 
        TP_PROTO(const struct btrfs_fs_info *fs_info,
-                const struct btrfs_delayed_ref_node *ref,
-                const struct btrfs_delayed_tree_ref *full_ref,
-                int action),
+                const struct btrfs_delayed_ref_node *ref),
 
-       TP_ARGS(fs_info, ref, full_ref, action),
+       TP_ARGS(fs_info, ref),
 
        TP_STRUCT__entry_btrfs(
                __field(        u64,  bytenr            )
@@ -888,10 +886,10 @@ DECLARE_EVENT_CLASS(btrfs_delayed_tree_ref,
        TP_fast_assign_btrfs(fs_info,
                __entry->bytenr         = ref->bytenr;
                __entry->num_bytes      = ref->num_bytes;
-               __entry->action         = action;
-               __entry->parent         = full_ref->parent;
-               __entry->ref_root       = full_ref->root;
-               __entry->level          = full_ref->level;
+               __entry->action         = ref->action;
+               __entry->parent         = ref->tree_ref.parent;
+               __entry->ref_root       = ref->tree_ref.root;
+               __entry->level          = ref->tree_ref.level;
                __entry->type           = ref->type;
                __entry->seq            = ref->seq;
        ),
@@ -911,31 +909,25 @@ DECLARE_EVENT_CLASS(btrfs_delayed_tree_ref,
 DEFINE_EVENT(btrfs_delayed_tree_ref,  add_delayed_tree_ref,
 
        TP_PROTO(const struct btrfs_fs_info *fs_info,
-                const struct btrfs_delayed_ref_node *ref,
-                const struct btrfs_delayed_tree_ref *full_ref,
-                int action),
+                const struct btrfs_delayed_ref_node *ref),
 
-       TP_ARGS(fs_info, ref, full_ref, action)
+       TP_ARGS(fs_info, ref)
 );
 
 DEFINE_EVENT(btrfs_delayed_tree_ref,  run_delayed_tree_ref,
 
        TP_PROTO(const struct btrfs_fs_info *fs_info,
-                const struct btrfs_delayed_ref_node *ref,
-                const struct btrfs_delayed_tree_ref *full_ref,
-                int action),
+                const struct btrfs_delayed_ref_node *ref),
 
-       TP_ARGS(fs_info, ref, full_ref, action)
+       TP_ARGS(fs_info, ref)
 );
 
 DECLARE_EVENT_CLASS(btrfs_delayed_data_ref,
 
        TP_PROTO(const struct btrfs_fs_info *fs_info,
-                const struct btrfs_delayed_ref_node *ref,
-                const struct btrfs_delayed_data_ref *full_ref,
-                int action),
+                const struct btrfs_delayed_ref_node *ref),
 
-       TP_ARGS(fs_info, ref, full_ref, action),
+       TP_ARGS(fs_info, ref),
 
        TP_STRUCT__entry_btrfs(
                __field(        u64,  bytenr            )
@@ -952,11 +944,11 @@ DECLARE_EVENT_CLASS(btrfs_delayed_data_ref,
        TP_fast_assign_btrfs(fs_info,
                __entry->bytenr         = ref->bytenr;
                __entry->num_bytes      = ref->num_bytes;
-               __entry->action         = action;
-               __entry->parent         = full_ref->parent;
-               __entry->ref_root       = full_ref->root;
-               __entry->owner          = full_ref->objectid;
-               __entry->offset         = full_ref->offset;
+               __entry->action         = ref->action;
+               __entry->parent         = ref->data_ref.parent;
+               __entry->ref_root       = ref->data_ref.root;
+               __entry->owner          = ref->data_ref.objectid;
+               __entry->offset         = ref->data_ref.offset;
                __entry->type           = ref->type;
                __entry->seq            = ref->seq;
        ),
@@ -978,21 +970,17 @@ DECLARE_EVENT_CLASS(btrfs_delayed_data_ref,
 DEFINE_EVENT(btrfs_delayed_data_ref,  add_delayed_data_ref,
 
        TP_PROTO(const struct btrfs_fs_info *fs_info,
-                const struct btrfs_delayed_ref_node *ref,
-                const struct btrfs_delayed_data_ref *full_ref,
-                int action),
+                const struct btrfs_delayed_ref_node *ref),
 
-       TP_ARGS(fs_info, ref, full_ref, action)
+       TP_ARGS(fs_info, ref)
 );
 
 DEFINE_EVENT(btrfs_delayed_data_ref,  run_delayed_data_ref,
 
        TP_PROTO(const struct btrfs_fs_info *fs_info,
-                const struct btrfs_delayed_ref_node *ref,
-                const struct btrfs_delayed_data_ref *full_ref,
-                int action),
+                const struct btrfs_delayed_ref_node *ref),
 
-       TP_ARGS(fs_info, ref, full_ref, action)
+       TP_ARGS(fs_info, ref)
 );
 
 DECLARE_EVENT_CLASS(btrfs_delayed_ref_head,