Message ID | ecd41b71527519744c006919ded25a3d70d6b51d.1713052088.git.josef@toxicpanda.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | btrfs: delayed refs cleanups | expand |
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 --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,
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(-)