Skip to content

Commit ef2d4a0

Browse files
author
Darrick J. Wong
committed
xfs: split tracepoint classes for deferred items
We're about to start adding support for deferred log intent items for realtime extents, so split these four types into separate classes so that we can customize them as the transition happens. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de>
1 parent 7fbaab5 commit ef2d4a0

1 file changed

Lines changed: 166 additions & 85 deletions

File tree

fs/xfs/xfs_trace.h

Lines changed: 166 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -2655,7 +2655,25 @@ DEFINE_EVENT(xfs_defer_pending_class, name, \
26552655
TP_PROTO(struct xfs_mount *mp, struct xfs_defer_pending *dfp), \
26562656
TP_ARGS(mp, dfp))
26572657

2658-
DECLARE_EVENT_CLASS(xfs_phys_extent_deferred_class,
2658+
DEFINE_DEFER_EVENT(xfs_defer_cancel);
2659+
DEFINE_DEFER_EVENT(xfs_defer_trans_roll);
2660+
DEFINE_DEFER_EVENT(xfs_defer_trans_abort);
2661+
DEFINE_DEFER_EVENT(xfs_defer_finish);
2662+
DEFINE_DEFER_EVENT(xfs_defer_finish_done);
2663+
2664+
DEFINE_DEFER_ERROR_EVENT(xfs_defer_trans_roll_error);
2665+
DEFINE_DEFER_ERROR_EVENT(xfs_defer_finish_error);
2666+
2667+
DEFINE_DEFER_PENDING_EVENT(xfs_defer_create_intent);
2668+
DEFINE_DEFER_PENDING_EVENT(xfs_defer_cancel_list);
2669+
DEFINE_DEFER_PENDING_EVENT(xfs_defer_pending_finish);
2670+
DEFINE_DEFER_PENDING_EVENT(xfs_defer_pending_abort);
2671+
DEFINE_DEFER_PENDING_EVENT(xfs_defer_relog_intent);
2672+
DEFINE_DEFER_PENDING_EVENT(xfs_defer_isolate_paused);
2673+
DEFINE_DEFER_PENDING_EVENT(xfs_defer_item_pause);
2674+
DEFINE_DEFER_PENDING_EVENT(xfs_defer_item_unpause);
2675+
2676+
DECLARE_EVENT_CLASS(xfs_free_extent_deferred_class,
26592677
TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno,
26602678
int type, xfs_agblock_t agbno, xfs_extlen_t len),
26612679
TP_ARGS(mp, agno, type, agbno, len),
@@ -2680,92 +2698,17 @@ DECLARE_EVENT_CLASS(xfs_phys_extent_deferred_class,
26802698
__entry->agbno,
26812699
__entry->len)
26822700
);
2683-
#define DEFINE_PHYS_EXTENT_DEFERRED_EVENT(name) \
2684-
DEFINE_EVENT(xfs_phys_extent_deferred_class, name, \
2701+
#define DEFINE_FREE_EXTENT_DEFERRED_EVENT(name) \
2702+
DEFINE_EVENT(xfs_free_extent_deferred_class, name, \
26852703
TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, \
26862704
int type, \
26872705
xfs_agblock_t bno, \
26882706
xfs_extlen_t len), \
26892707
TP_ARGS(mp, agno, type, bno, len))
2690-
2691-
DECLARE_EVENT_CLASS(xfs_map_extent_deferred_class,
2692-
TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno,
2693-
int op,
2694-
xfs_agblock_t agbno,
2695-
xfs_ino_t ino,
2696-
int whichfork,
2697-
xfs_fileoff_t offset,
2698-
xfs_filblks_t len,
2699-
xfs_exntst_t state),
2700-
TP_ARGS(mp, agno, op, agbno, ino, whichfork, offset, len, state),
2701-
TP_STRUCT__entry(
2702-
__field(dev_t, dev)
2703-
__field(xfs_agnumber_t, agno)
2704-
__field(xfs_ino_t, ino)
2705-
__field(xfs_agblock_t, agbno)
2706-
__field(int, whichfork)
2707-
__field(xfs_fileoff_t, l_loff)
2708-
__field(xfs_filblks_t, l_len)
2709-
__field(xfs_exntst_t, l_state)
2710-
__field(int, op)
2711-
),
2712-
TP_fast_assign(
2713-
__entry->dev = mp->m_super->s_dev;
2714-
__entry->agno = agno;
2715-
__entry->ino = ino;
2716-
__entry->agbno = agbno;
2717-
__entry->whichfork = whichfork;
2718-
__entry->l_loff = offset;
2719-
__entry->l_len = len;
2720-
__entry->l_state = state;
2721-
__entry->op = op;
2722-
),
2723-
TP_printk("dev %d:%d op %d agno 0x%x agbno 0x%x owner 0x%llx %s fileoff 0x%llx fsbcount 0x%llx state %d",
2724-
MAJOR(__entry->dev), MINOR(__entry->dev),
2725-
__entry->op,
2726-
__entry->agno,
2727-
__entry->agbno,
2728-
__entry->ino,
2729-
__print_symbolic(__entry->whichfork, XFS_WHICHFORK_STRINGS),
2730-
__entry->l_loff,
2731-
__entry->l_len,
2732-
__entry->l_state)
2733-
);
2734-
#define DEFINE_MAP_EXTENT_DEFERRED_EVENT(name) \
2735-
DEFINE_EVENT(xfs_map_extent_deferred_class, name, \
2736-
TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, \
2737-
int op, \
2738-
xfs_agblock_t agbno, \
2739-
xfs_ino_t ino, \
2740-
int whichfork, \
2741-
xfs_fileoff_t offset, \
2742-
xfs_filblks_t len, \
2743-
xfs_exntst_t state), \
2744-
TP_ARGS(mp, agno, op, agbno, ino, whichfork, offset, len, state))
2745-
2746-
DEFINE_DEFER_EVENT(xfs_defer_cancel);
2747-
DEFINE_DEFER_EVENT(xfs_defer_trans_roll);
2748-
DEFINE_DEFER_EVENT(xfs_defer_trans_abort);
2749-
DEFINE_DEFER_EVENT(xfs_defer_finish);
2750-
DEFINE_DEFER_EVENT(xfs_defer_finish_done);
2751-
2752-
DEFINE_DEFER_ERROR_EVENT(xfs_defer_trans_roll_error);
2753-
DEFINE_DEFER_ERROR_EVENT(xfs_defer_finish_error);
2754-
2755-
DEFINE_DEFER_PENDING_EVENT(xfs_defer_create_intent);
2756-
DEFINE_DEFER_PENDING_EVENT(xfs_defer_cancel_list);
2757-
DEFINE_DEFER_PENDING_EVENT(xfs_defer_pending_finish);
2758-
DEFINE_DEFER_PENDING_EVENT(xfs_defer_pending_abort);
2759-
DEFINE_DEFER_PENDING_EVENT(xfs_defer_relog_intent);
2760-
DEFINE_DEFER_PENDING_EVENT(xfs_defer_isolate_paused);
2761-
DEFINE_DEFER_PENDING_EVENT(xfs_defer_item_pause);
2762-
DEFINE_DEFER_PENDING_EVENT(xfs_defer_item_unpause);
2763-
2764-
#define DEFINE_BMAP_FREE_DEFERRED_EVENT DEFINE_PHYS_EXTENT_DEFERRED_EVENT
2765-
DEFINE_BMAP_FREE_DEFERRED_EVENT(xfs_bmap_free_defer);
2766-
DEFINE_BMAP_FREE_DEFERRED_EVENT(xfs_bmap_free_deferred);
2767-
DEFINE_BMAP_FREE_DEFERRED_EVENT(xfs_agfl_free_defer);
2768-
DEFINE_BMAP_FREE_DEFERRED_EVENT(xfs_agfl_free_deferred);
2708+
DEFINE_FREE_EXTENT_DEFERRED_EVENT(xfs_bmap_free_defer);
2709+
DEFINE_FREE_EXTENT_DEFERRED_EVENT(xfs_bmap_free_deferred);
2710+
DEFINE_FREE_EXTENT_DEFERRED_EVENT(xfs_agfl_free_defer);
2711+
DEFINE_FREE_EXTENT_DEFERRED_EVENT(xfs_agfl_free_deferred);
27692712

27702713
DECLARE_EVENT_CLASS(xfs_defer_pending_item_class,
27712714
TP_PROTO(struct xfs_mount *mp, struct xfs_defer_pending *dfp,
@@ -2930,7 +2873,60 @@ DEFINE_EVENT(xfs_rmapbt_class, name, \
29302873
uint64_t owner, uint64_t offset, unsigned int flags), \
29312874
TP_ARGS(mp, agno, agbno, len, owner, offset, flags))
29322875

2933-
#define DEFINE_RMAP_DEFERRED_EVENT DEFINE_MAP_EXTENT_DEFERRED_EVENT
2876+
DECLARE_EVENT_CLASS(xfs_rmap_deferred_class,
2877+
TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno,
2878+
int op,
2879+
xfs_agblock_t agbno,
2880+
xfs_ino_t ino,
2881+
int whichfork,
2882+
xfs_fileoff_t offset,
2883+
xfs_filblks_t len,
2884+
xfs_exntst_t state),
2885+
TP_ARGS(mp, agno, op, agbno, ino, whichfork, offset, len, state),
2886+
TP_STRUCT__entry(
2887+
__field(dev_t, dev)
2888+
__field(xfs_agnumber_t, agno)
2889+
__field(xfs_ino_t, ino)
2890+
__field(xfs_agblock_t, agbno)
2891+
__field(int, whichfork)
2892+
__field(xfs_fileoff_t, l_loff)
2893+
__field(xfs_filblks_t, l_len)
2894+
__field(xfs_exntst_t, l_state)
2895+
__field(int, op)
2896+
),
2897+
TP_fast_assign(
2898+
__entry->dev = mp->m_super->s_dev;
2899+
__entry->agno = agno;
2900+
__entry->ino = ino;
2901+
__entry->agbno = agbno;
2902+
__entry->whichfork = whichfork;
2903+
__entry->l_loff = offset;
2904+
__entry->l_len = len;
2905+
__entry->l_state = state;
2906+
__entry->op = op;
2907+
),
2908+
TP_printk("dev %d:%d op %d agno 0x%x agbno 0x%x owner 0x%llx %s fileoff 0x%llx fsbcount 0x%llx state %d",
2909+
MAJOR(__entry->dev), MINOR(__entry->dev),
2910+
__entry->op,
2911+
__entry->agno,
2912+
__entry->agbno,
2913+
__entry->ino,
2914+
__print_symbolic(__entry->whichfork, XFS_WHICHFORK_STRINGS),
2915+
__entry->l_loff,
2916+
__entry->l_len,
2917+
__entry->l_state)
2918+
);
2919+
#define DEFINE_RMAP_DEFERRED_EVENT(name) \
2920+
DEFINE_EVENT(xfs_rmap_deferred_class, name, \
2921+
TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, \
2922+
int op, \
2923+
xfs_agblock_t agbno, \
2924+
xfs_ino_t ino, \
2925+
int whichfork, \
2926+
xfs_fileoff_t offset, \
2927+
xfs_filblks_t len, \
2928+
xfs_exntst_t state), \
2929+
TP_ARGS(mp, agno, op, agbno, ino, whichfork, offset, len, state))
29342930
DEFINE_RMAP_DEFERRED_EVENT(xfs_rmap_defer);
29352931
DEFINE_RMAP_DEFERRED_EVENT(xfs_rmap_deferred);
29362932

@@ -2950,7 +2946,60 @@ DEFINE_RMAPBT_EVENT(xfs_rmap_find_right_neighbor_result);
29502946
DEFINE_RMAPBT_EVENT(xfs_rmap_find_left_neighbor_result);
29512947

29522948
/* deferred bmbt updates */
2953-
#define DEFINE_BMAP_DEFERRED_EVENT DEFINE_RMAP_DEFERRED_EVENT
2949+
DECLARE_EVENT_CLASS(xfs_bmap_deferred_class,
2950+
TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno,
2951+
int op,
2952+
xfs_agblock_t agbno,
2953+
xfs_ino_t ino,
2954+
int whichfork,
2955+
xfs_fileoff_t offset,
2956+
xfs_filblks_t len,
2957+
xfs_exntst_t state),
2958+
TP_ARGS(mp, agno, op, agbno, ino, whichfork, offset, len, state),
2959+
TP_STRUCT__entry(
2960+
__field(dev_t, dev)
2961+
__field(xfs_agnumber_t, agno)
2962+
__field(xfs_ino_t, ino)
2963+
__field(xfs_agblock_t, agbno)
2964+
__field(int, whichfork)
2965+
__field(xfs_fileoff_t, l_loff)
2966+
__field(xfs_filblks_t, l_len)
2967+
__field(xfs_exntst_t, l_state)
2968+
__field(int, op)
2969+
),
2970+
TP_fast_assign(
2971+
__entry->dev = mp->m_super->s_dev;
2972+
__entry->agno = agno;
2973+
__entry->ino = ino;
2974+
__entry->agbno = agbno;
2975+
__entry->whichfork = whichfork;
2976+
__entry->l_loff = offset;
2977+
__entry->l_len = len;
2978+
__entry->l_state = state;
2979+
__entry->op = op;
2980+
),
2981+
TP_printk("dev %d:%d op %d agno 0x%x agbno 0x%x owner 0x%llx %s fileoff 0x%llx fsbcount 0x%llx state %d",
2982+
MAJOR(__entry->dev), MINOR(__entry->dev),
2983+
__entry->op,
2984+
__entry->agno,
2985+
__entry->agbno,
2986+
__entry->ino,
2987+
__print_symbolic(__entry->whichfork, XFS_WHICHFORK_STRINGS),
2988+
__entry->l_loff,
2989+
__entry->l_len,
2990+
__entry->l_state)
2991+
);
2992+
#define DEFINE_BMAP_DEFERRED_EVENT(name) \
2993+
DEFINE_EVENT(xfs_bmap_deferred_class, name, \
2994+
TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, \
2995+
int op, \
2996+
xfs_agblock_t agbno, \
2997+
xfs_ino_t ino, \
2998+
int whichfork, \
2999+
xfs_fileoff_t offset, \
3000+
xfs_filblks_t len, \
3001+
xfs_exntst_t state), \
3002+
TP_ARGS(mp, agno, op, agbno, ino, whichfork, offset, len, state))
29543003
DEFINE_BMAP_DEFERRED_EVENT(xfs_bmap_defer);
29553004
DEFINE_BMAP_DEFERRED_EVENT(xfs_bmap_deferred);
29563005

@@ -3327,7 +3376,39 @@ DEFINE_AG_ERROR_EVENT(xfs_refcount_find_right_extent_error);
33273376
DEFINE_AG_EXTENT_EVENT(xfs_refcount_find_shared);
33283377
DEFINE_AG_EXTENT_EVENT(xfs_refcount_find_shared_result);
33293378
DEFINE_AG_ERROR_EVENT(xfs_refcount_find_shared_error);
3330-
#define DEFINE_REFCOUNT_DEFERRED_EVENT DEFINE_PHYS_EXTENT_DEFERRED_EVENT
3379+
3380+
DECLARE_EVENT_CLASS(xfs_refcount_deferred_class,
3381+
TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno,
3382+
int type, xfs_agblock_t agbno, xfs_extlen_t len),
3383+
TP_ARGS(mp, agno, type, agbno, len),
3384+
TP_STRUCT__entry(
3385+
__field(dev_t, dev)
3386+
__field(xfs_agnumber_t, agno)
3387+
__field(int, type)
3388+
__field(xfs_agblock_t, agbno)
3389+
__field(xfs_extlen_t, len)
3390+
),
3391+
TP_fast_assign(
3392+
__entry->dev = mp->m_super->s_dev;
3393+
__entry->agno = agno;
3394+
__entry->type = type;
3395+
__entry->agbno = agbno;
3396+
__entry->len = len;
3397+
),
3398+
TP_printk("dev %d:%d op %d agno 0x%x agbno 0x%x fsbcount 0x%x",
3399+
MAJOR(__entry->dev), MINOR(__entry->dev),
3400+
__entry->type,
3401+
__entry->agno,
3402+
__entry->agbno,
3403+
__entry->len)
3404+
);
3405+
#define DEFINE_REFCOUNT_DEFERRED_EVENT(name) \
3406+
DEFINE_EVENT(xfs_refcount_deferred_class, name, \
3407+
TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, \
3408+
int type, \
3409+
xfs_agblock_t bno, \
3410+
xfs_extlen_t len), \
3411+
TP_ARGS(mp, agno, type, bno, len))
33313412
DEFINE_REFCOUNT_DEFERRED_EVENT(xfs_refcount_defer);
33323413
DEFINE_REFCOUNT_DEFERRED_EVENT(xfs_refcount_deferred);
33333414

0 commit comments

Comments
 (0)