summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarrick J. Wong <djwong@kernel.org>2021-09-01 11:15:58 -0700
committerDarrick J. Wong <djwong@kernel.org>2021-10-22 16:40:58 -0700
commit9168e9bfe459112ffcf3f7431a0573bf07e059c5 (patch)
tree0c901eac8dc9b5fa728bb7ada49e1144a8c630f9
parented37035d41290a2194b4a281c1a7ef54828e641a (diff)
xfs: clean up extent free log intent item tracepoint callsites
Pass the incore EFI structure to the tracepoints instead of open-coding the argument passing, and augment the tracepoints to tell us which operation we're selecting to match the other intent item tracepoints. Signed-off-by: Darrick J. Wong <djwong@kernel.org>
-rw-r--r--fs/xfs/libxfs/xfs_alloc.c9
-rw-r--r--fs/xfs/libxfs/xfs_alloc.h7
-rw-r--r--fs/xfs/xfs_extfree_item.c10
-rw-r--r--fs/xfs/xfs_trace.h40
4 files changed, 33 insertions, 33 deletions
diff --git a/fs/xfs/libxfs/xfs_alloc.c b/fs/xfs/libxfs/xfs_alloc.c
index 3300de4ce137..3663484dc576 100644
--- a/fs/xfs/libxfs/xfs_alloc.c
+++ b/fs/xfs/libxfs/xfs_alloc.c
@@ -2533,8 +2533,7 @@ xfs_defer_agfl_block(
new->xefi_oinfo = *oinfo;
new->xefi_skip_discard = false;
- trace_xfs_agfl_free_defer(mp, agno, 0, agbno, 1);
-
+ trace_xfs_extent_free_defer(mp, XFS_FREE_EXTENT_AGFL, new);
xfs_defer_add(tp, XFS_DEFER_OPS_TYPE_AGFL_FREE, &new->xefi_list);
}
@@ -2578,9 +2577,9 @@ xfs_free_extent_later(
else
new->xefi_oinfo = XFS_RMAP_OINFO_SKIP_UPDATE;
new->xefi_skip_discard = skip_discard;
- trace_xfs_bmap_free_defer(tp->t_mountp,
- XFS_FSB_TO_AGNO(tp->t_mountp, bno), 0,
- XFS_FSB_TO_AGBNO(tp->t_mountp, bno), len);
+
+ trace_xfs_extent_free_defer(tp->t_mountp, XFS_FREE_EXTENT_REGULAR,
+ new);
xfs_defer_add(tp, XFS_DEFER_OPS_TYPE_FREE, &new->xefi_list);
}
diff --git a/fs/xfs/libxfs/xfs_alloc.h b/fs/xfs/libxfs/xfs_alloc.h
index a31f28697668..40abbc9995fb 100644
--- a/fs/xfs/libxfs/xfs_alloc.h
+++ b/fs/xfs/libxfs/xfs_alloc.h
@@ -205,6 +205,13 @@ struct xfs_extent_free_item
extern struct kmem_cache *xfs_extent_free_item_zone;
+#define XFS_FREE_EXTENT_REGULAR (1)
+#define XFS_FREE_EXTENT_AGFL (2)
+
+#define XFS_FREE_EXTENT_STRINGS \
+ { XFS_FREE_EXTENT_REGULAR, "free" }, \
+ { XFS_FREE_EXTENT_AGFL, "agfl" }
+
int /* error */
xfs_alloc_lookup_le(
struct xfs_btree_cur *cur, /* btree cursor */
diff --git a/fs/xfs/xfs_extfree_item.c b/fs/xfs/xfs_extfree_item.c
index b6301b1a1dc2..b3e6e5a8ae8e 100644
--- a/fs/xfs/xfs_extfree_item.c
+++ b/fs/xfs/xfs_extfree_item.c
@@ -361,15 +361,9 @@ xfs_trans_free_extent(
struct xfs_mount *mp = tp->t_mountp;
struct xfs_extent *extp;
uint next_extent;
- xfs_agnumber_t agno;
- xfs_agblock_t agbno;
int error;
- agno = XFS_FSB_TO_AGNO(mp, free->xefi_startblock);
- agbno = XFS_FSB_TO_AGBNO(mp, free->xefi_startblock);
-
- trace_xfs_bmap_free_deferred(tp->t_mountp, agno, 0, agbno,
- free->xefi_blockcount);
+ trace_xfs_extent_free_deferred(mp, XFS_FREE_EXTENT_REGULAR, free);
error = __xfs_free_extent(tp, free->xefi_startblock,
free->xefi_blockcount, &free->xefi_oinfo,
@@ -538,7 +532,7 @@ xfs_agfl_free_finish_item(
agno = XFS_FSB_TO_AGNO(mp, free->xefi_startblock);
agbno = XFS_FSB_TO_AGBNO(mp, free->xefi_startblock);
- trace_xfs_agfl_free_deferred(mp, agno, 0, agbno, free->xefi_blockcount);
+ trace_xfs_extent_free_deferred(mp, XFS_FREE_EXTENT_AGFL, free);
error = xfs_alloc_read_agf(mp, tp, agno, 0, &agbp);
if (!error)
diff --git a/fs/xfs/xfs_trace.h b/fs/xfs/xfs_trace.h
index a695a523db58..a9f28f40ea3a 100644
--- a/fs/xfs/xfs_trace.h
+++ b/fs/xfs/xfs_trace.h
@@ -83,6 +83,7 @@ struct xfs_bmap_intent;
struct xfs_swapext_intent;
struct xfs_swapext_req;
struct xfs_swapext_res;
+struct xfs_extent_free_item;
#define XFS_ATTR_FILTER_FLAGS \
{ XFS_ATTR_ROOT, "ROOT" }, \
@@ -2605,41 +2606,40 @@ DEFINE_DEFER_PENDING_EVENT(xfs_defer_pending_abort);
DEFINE_DEFER_PENDING_EVENT(xfs_defer_relog_intent);
DECLARE_EVENT_CLASS(xfs_free_extent_deferred_class,
- TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno,
- int type, xfs_agblock_t agbno, xfs_extlen_t len),
- TP_ARGS(mp, agno, type, agbno, len),
+ TP_PROTO(struct xfs_mount *mp, int op,
+ struct xfs_extent_free_item *free),
+ TP_ARGS(mp, op, free),
TP_STRUCT__entry(
__field(dev_t, dev)
__field(xfs_agnumber_t, agno)
- __field(int, type)
+ __field(int, op)
__field(xfs_agblock_t, agbno)
__field(xfs_extlen_t, len)
+ __field(bool, skip_discard)
),
TP_fast_assign(
__entry->dev = mp->m_super->s_dev;
- __entry->agno = agno;
- __entry->type = type;
- __entry->agbno = agbno;
- __entry->len = len;
+ __entry->agno = XFS_FSB_TO_AGNO(mp, free->xefi_startblock);
+ __entry->op = op;
+ __entry->agbno = XFS_FSB_TO_AGBNO(mp, free->xefi_startblock);
+ __entry->len = free->xefi_blockcount;
+ __entry->skip_discard = free->xefi_skip_discard;
),
- TP_printk("dev %d:%d op %d agno 0x%x agbno 0x%x fsbcount 0x%x",
+ TP_printk("dev %d:%d op %s agno 0x%x agbno 0x%x fsbcount 0x%x nodiscard %d",
MAJOR(__entry->dev), MINOR(__entry->dev),
- __entry->type,
+ __print_symbolic(__entry->op, XFS_FREE_EXTENT_STRINGS),
__entry->agno,
__entry->agbno,
- __entry->len)
+ __entry->len,
+ __entry->skip_discard)
);
#define DEFINE_FREE_EXTENT_DEFERRED_EVENT(name) \
DEFINE_EVENT(xfs_free_extent_deferred_class, name, \
- TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, \
- int type, \
- xfs_agblock_t bno, \
- xfs_extlen_t len), \
- TP_ARGS(mp, agno, type, bno, len))
-DEFINE_FREE_EXTENT_DEFERRED_EVENT(xfs_bmap_free_defer);
-DEFINE_FREE_EXTENT_DEFERRED_EVENT(xfs_bmap_free_deferred);
-DEFINE_FREE_EXTENT_DEFERRED_EVENT(xfs_agfl_free_defer);
-DEFINE_FREE_EXTENT_DEFERRED_EVENT(xfs_agfl_free_deferred);
+ TP_PROTO(struct xfs_mount *mp, int op, \
+ struct xfs_extent_free_item *free), \
+ TP_ARGS(mp, op, free))
+DEFINE_FREE_EXTENT_DEFERRED_EVENT(xfs_extent_free_defer);
+DEFINE_FREE_EXTENT_DEFERRED_EVENT(xfs_extent_free_deferred);
/* rmap tracepoints */
DECLARE_EVENT_CLASS(xfs_rmap_class,