diff mbox series

[08/19] btrfs: simplify delayed ref tracepoints

Message ID ecd41b71527519744c006919ded25a3d70d6b51d.1713052088.git.josef@toxicpanda.com (mailing list archive)
State New
Headers show
Series btrfs: delayed refs cleanups | expand

Commit Message

Josef Bacik April 13, 2024, 11:53 p.m. UTC
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.

Signed-off-by: Josef Bacik <josef@toxicpanda.com>
---
 fs/btrfs/delayed-ref.c       | 14 ++--------
 fs/btrfs/extent-tree.c       |  4 +--
 include/trace/events/btrfs.h | 54 ++++++++++++++----------------------
 3 files changed, 25 insertions(+), 47 deletions(-)

Comments

Filipe Manana April 15, 2024, 12:45 p.m. UTC | #1
On Sun, Apr 14, 2024 at 12:54 AM Josef Bacik <josef@toxicpanda.com> wrote:
>
> 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.
>
> Signed-off-by: Josef Bacik <josef@toxicpanda.com>

Reviewed-by: Filipe Manana <fdmanana@suse.com>

Looks good, thanks.

> ---
>  fs/btrfs/delayed-ref.c       | 14 ++--------
>  fs/btrfs/extent-tree.c       |  4 +--
>  include/trace/events/btrfs.h | 54 ++++++++++++++----------------------
>  3 files changed, 25 insertions(+), 47 deletions(-)
>
> diff --git a/fs/btrfs/delayed-ref.c b/fs/btrfs/delayed-ref.c
> index 743cc52c30af..cc1510d7eee8 100644
> --- a/fs/btrfs/delayed-ref.c
> +++ b/fs/btrfs/delayed-ref.c
> @@ -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);
>
> diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
> index 275e3141dc1e..805e3e904368 100644
> --- a/fs/btrfs/extent-tree.c
> +++ b/fs/btrfs/extent-tree.c
> @@ -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;
> diff --git a/include/trace/events/btrfs.h b/include/trace/events/btrfs.h
> index 766cfd48386c..dae29f6d6b4c 100644
> --- a/include/trace/events/btrfs.h
> +++ b/include/trace/events/btrfs.h
> @@ -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,
> --
> 2.43.0
>
>
diff mbox series

Patch

diff --git a/fs/btrfs/delayed-ref.c b/fs/btrfs/delayed-ref.c
index 743cc52c30af..cc1510d7eee8 100644
--- a/fs/btrfs/delayed-ref.c
+++ b/fs/btrfs/delayed-ref.c
@@ -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);
 
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index 275e3141dc1e..805e3e904368 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -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;
diff --git a/include/trace/events/btrfs.h b/include/trace/events/btrfs.h
index 766cfd48386c..dae29f6d6b4c 100644
--- a/include/trace/events/btrfs.h
+++ b/include/trace/events/btrfs.h
@@ -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,