^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #undef TRACE_SYSTEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #define TRACE_SYSTEM btrfs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #if !defined(_TRACE_BTRFS_H) || defined(TRACE_HEADER_MULTI_READ)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #define _TRACE_BTRFS_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #include <linux/writeback.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #include <linux/tracepoint.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #include <trace/events/mmflags.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) struct btrfs_root;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) struct btrfs_fs_info;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) struct btrfs_inode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) struct extent_map;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) struct btrfs_file_extent_item;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) struct btrfs_ordered_extent;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) struct btrfs_delayed_ref_node;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) struct btrfs_delayed_tree_ref;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) struct btrfs_delayed_data_ref;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) struct btrfs_delayed_ref_head;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) struct btrfs_block_group;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) struct btrfs_free_cluster;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) struct map_lookup;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) struct extent_buffer;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) struct btrfs_work;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) struct __btrfs_workqueue;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) struct btrfs_qgroup_extent_record;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) struct btrfs_qgroup;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) struct extent_io_tree;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) struct prelim_ref;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) struct btrfs_space_info;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) #define show_ref_type(type) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) __print_symbolic(type, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) { BTRFS_TREE_BLOCK_REF_KEY, "TREE_BLOCK_REF" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) { BTRFS_EXTENT_DATA_REF_KEY, "EXTENT_DATA_REF" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) { BTRFS_EXTENT_REF_V0_KEY, "EXTENT_REF_V0" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) { BTRFS_SHARED_BLOCK_REF_KEY, "SHARED_BLOCK_REF" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) { BTRFS_SHARED_DATA_REF_KEY, "SHARED_DATA_REF" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) #define __show_root_type(obj) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) __print_symbolic_u64(obj, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) { BTRFS_ROOT_TREE_OBJECTID, "ROOT_TREE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) { BTRFS_EXTENT_TREE_OBJECTID, "EXTENT_TREE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) { BTRFS_CHUNK_TREE_OBJECTID, "CHUNK_TREE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) { BTRFS_DEV_TREE_OBJECTID, "DEV_TREE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) { BTRFS_FS_TREE_OBJECTID, "FS_TREE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) { BTRFS_ROOT_TREE_DIR_OBJECTID, "ROOT_TREE_DIR" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) { BTRFS_CSUM_TREE_OBJECTID, "CSUM_TREE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) { BTRFS_TREE_LOG_OBJECTID, "TREE_LOG" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) { BTRFS_QUOTA_TREE_OBJECTID, "QUOTA_TREE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) { BTRFS_TREE_RELOC_OBJECTID, "TREE_RELOC" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) { BTRFS_UUID_TREE_OBJECTID, "UUID_TREE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) { BTRFS_FREE_SPACE_TREE_OBJECTID, "FREE_SPACE_TREE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) { BTRFS_DATA_RELOC_TREE_OBJECTID, "DATA_RELOC_TREE" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) #define show_root_type(obj) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) obj, ((obj >= BTRFS_DATA_RELOC_TREE_OBJECTID) || \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) (obj >= BTRFS_ROOT_TREE_OBJECTID && \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) obj <= BTRFS_QUOTA_TREE_OBJECTID)) ? __show_root_type(obj) : "-"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) #define FLUSH_ACTIONS \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) EM( BTRFS_RESERVE_NO_FLUSH, "BTRFS_RESERVE_NO_FLUSH") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) EM( BTRFS_RESERVE_FLUSH_LIMIT, "BTRFS_RESERVE_FLUSH_LIMIT") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) EM( BTRFS_RESERVE_FLUSH_ALL, "BTRFS_RESERVE_FLUSH_ALL") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) EMe(BTRFS_RESERVE_FLUSH_ALL_STEAL, "BTRFS_RESERVE_FLUSH_ALL_STEAL")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) #define FI_TYPES \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) EM( BTRFS_FILE_EXTENT_INLINE, "INLINE") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) EM( BTRFS_FILE_EXTENT_REG, "REG") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) EMe(BTRFS_FILE_EXTENT_PREALLOC, "PREALLOC")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) #define QGROUP_RSV_TYPES \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) EM( BTRFS_QGROUP_RSV_DATA, "DATA") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) EM( BTRFS_QGROUP_RSV_META_PERTRANS, "META_PERTRANS") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) EMe(BTRFS_QGROUP_RSV_META_PREALLOC, "META_PREALLOC")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) #define IO_TREE_OWNER \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) EM( IO_TREE_FS_PINNED_EXTENTS, "PINNED_EXTENTS") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) EM( IO_TREE_FS_EXCLUDED_EXTENTS, "EXCLUDED_EXTENTS") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) EM( IO_TREE_BTREE_INODE_IO, "BTREE_INODE_IO") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) EM( IO_TREE_INODE_IO, "INODE_IO") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) EM( IO_TREE_INODE_IO_FAILURE, "INODE_IO_FAILURE") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) EM( IO_TREE_RELOC_BLOCKS, "RELOC_BLOCKS") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) EM( IO_TREE_TRANS_DIRTY_PAGES, "TRANS_DIRTY_PAGES") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) EM( IO_TREE_ROOT_DIRTY_LOG_PAGES, "ROOT_DIRTY_LOG_PAGES") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) EM( IO_TREE_INODE_FILE_EXTENT, "INODE_FILE_EXTENT") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) EM( IO_TREE_LOG_CSUM_RANGE, "LOG_CSUM_RANGE") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) EMe(IO_TREE_SELFTEST, "SELFTEST")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) #define FLUSH_STATES \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) EM( FLUSH_DELAYED_ITEMS_NR, "FLUSH_DELAYED_ITEMS_NR") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) EM( FLUSH_DELAYED_ITEMS, "FLUSH_DELAYED_ITEMS") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) EM( FLUSH_DELALLOC, "FLUSH_DELALLOC") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) EM( FLUSH_DELALLOC_WAIT, "FLUSH_DELALLOC_WAIT") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) EM( FLUSH_DELAYED_REFS_NR, "FLUSH_DELAYED_REFS_NR") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) EM( FLUSH_DELAYED_REFS, "FLUSH_ELAYED_REFS") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) EM( ALLOC_CHUNK, "ALLOC_CHUNK") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) EM( ALLOC_CHUNK_FORCE, "ALLOC_CHUNK_FORCE") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) EM( RUN_DELAYED_IPUTS, "RUN_DELAYED_IPUTS") \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) EMe(COMMIT_TRANS, "COMMIT_TRANS")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) * First define the enums in the above macros to be exported to userspace via
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) * TRACE_DEFINE_ENUM().
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) #undef EM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) #undef EMe
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) #define EM(a, b) TRACE_DEFINE_ENUM(a);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) #define EMe(a, b) TRACE_DEFINE_ENUM(a);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) FLUSH_ACTIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) FI_TYPES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) QGROUP_RSV_TYPES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) IO_TREE_OWNER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) FLUSH_STATES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) * Now redefine the EM and EMe macros to map the enums to the strings that will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) * be printed in the output
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) #undef EM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) #undef EMe
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) #define EM(a, b) {a, b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) #define EMe(a, b) {a, b}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) #define BTRFS_GROUP_FLAGS \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) { BTRFS_BLOCK_GROUP_DATA, "DATA"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) { BTRFS_BLOCK_GROUP_SYSTEM, "SYSTEM"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) { BTRFS_BLOCK_GROUP_METADATA, "METADATA"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) { BTRFS_BLOCK_GROUP_RAID0, "RAID0"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) { BTRFS_BLOCK_GROUP_RAID1, "RAID1"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) { BTRFS_BLOCK_GROUP_DUP, "DUP"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) { BTRFS_BLOCK_GROUP_RAID10, "RAID10"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) { BTRFS_BLOCK_GROUP_RAID5, "RAID5"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) { BTRFS_BLOCK_GROUP_RAID6, "RAID6"}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) #define EXTENT_FLAGS \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) { EXTENT_DIRTY, "DIRTY"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) { EXTENT_UPTODATE, "UPTODATE"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) { EXTENT_LOCKED, "LOCKED"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) { EXTENT_NEW, "NEW"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) { EXTENT_DELALLOC, "DELALLOC"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) { EXTENT_DEFRAG, "DEFRAG"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) { EXTENT_BOUNDARY, "BOUNDARY"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) { EXTENT_NODATASUM, "NODATASUM"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) { EXTENT_CLEAR_META_RESV, "CLEAR_META_RESV"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) { EXTENT_NEED_WAIT, "NEED_WAIT"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) { EXTENT_DAMAGED, "DAMAGED"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) { EXTENT_NORESERVE, "NORESERVE"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) { EXTENT_QGROUP_RESERVED, "QGROUP_RESERVED"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) { EXTENT_CLEAR_DATA_RESV, "CLEAR_DATA_RESV"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) { EXTENT_DELALLOC_NEW, "DELALLOC_NEW"}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) #define BTRFS_FSID_SIZE 16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) #define TP_STRUCT__entry_fsid __array(u8, fsid, BTRFS_FSID_SIZE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) #define TP_fast_assign_fsid(fs_info) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) ({ \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) if (fs_info) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) memcpy(__entry->fsid, fs_info->fs_devices->fsid, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) BTRFS_FSID_SIZE); \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) else \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) memset(__entry->fsid, 0, BTRFS_FSID_SIZE); \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) #define TP_STRUCT__entry_btrfs(args...) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) TP_STRUCT__entry( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) TP_STRUCT__entry_fsid \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) args)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) #define TP_fast_assign_btrfs(fs_info, args...) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) TP_fast_assign( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) TP_fast_assign_fsid(fs_info); \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) args)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) #define TP_printk_btrfs(fmt, args...) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) TP_printk("%pU: " fmt, __entry->fsid, args)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) TRACE_EVENT(btrfs_transaction_commit,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) TP_PROTO(const struct btrfs_root *root),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) TP_ARGS(root),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) __field( u64, generation )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) __field( u64, root_objectid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) TP_fast_assign_btrfs(root->fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) __entry->generation = root->fs_info->generation;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) __entry->root_objectid = root->root_key.objectid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) TP_printk_btrfs("root=%llu(%s) gen=%llu",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) show_root_type(__entry->root_objectid),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) __entry->generation)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) DECLARE_EVENT_CLASS(btrfs__inode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) TP_PROTO(const struct inode *inode),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) TP_ARGS(inode),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) __field( u64, ino )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) __field( u64, blocks )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) __field( u64, disk_i_size )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) __field( u64, generation )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) __field( u64, last_trans )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) __field( u64, logged_trans )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) __field( u64, root_objectid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) TP_fast_assign_btrfs(btrfs_sb(inode->i_sb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) __entry->ino = btrfs_ino(BTRFS_I(inode));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) __entry->blocks = inode->i_blocks;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) __entry->disk_i_size = BTRFS_I(inode)->disk_i_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) __entry->generation = BTRFS_I(inode)->generation;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) __entry->last_trans = BTRFS_I(inode)->last_trans;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) __entry->logged_trans = BTRFS_I(inode)->logged_trans;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) __entry->root_objectid =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) BTRFS_I(inode)->root->root_key.objectid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) TP_printk_btrfs("root=%llu(%s) gen=%llu ino=%llu blocks=%llu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) "disk_i_size=%llu last_trans=%llu logged_trans=%llu",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) show_root_type(__entry->root_objectid),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) __entry->generation,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) __entry->ino,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) __entry->blocks,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) __entry->disk_i_size,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) __entry->last_trans,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) __entry->logged_trans)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) DEFINE_EVENT(btrfs__inode, btrfs_inode_new,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) TP_PROTO(const struct inode *inode),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) TP_ARGS(inode)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) DEFINE_EVENT(btrfs__inode, btrfs_inode_request,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) TP_PROTO(const struct inode *inode),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) TP_ARGS(inode)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) DEFINE_EVENT(btrfs__inode, btrfs_inode_evict,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) TP_PROTO(const struct inode *inode),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) TP_ARGS(inode)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) #define __show_map_type(type) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) __print_symbolic_u64(type, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) { EXTENT_MAP_LAST_BYTE, "LAST_BYTE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) { EXTENT_MAP_HOLE, "HOLE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) { EXTENT_MAP_INLINE, "INLINE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) { EXTENT_MAP_DELALLOC, "DELALLOC" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) #define show_map_type(type) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) type, (type >= EXTENT_MAP_LAST_BYTE) ? "-" : __show_map_type(type)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) #define show_map_flags(flag) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) __print_flags(flag, "|", \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) { (1 << EXTENT_FLAG_PINNED), "PINNED" },\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) { (1 << EXTENT_FLAG_COMPRESSED), "COMPRESSED" },\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) { (1 << EXTENT_FLAG_PREALLOC), "PREALLOC" },\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) { (1 << EXTENT_FLAG_LOGGING), "LOGGING" },\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) { (1 << EXTENT_FLAG_FILLING), "FILLING" },\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) { (1 << EXTENT_FLAG_FS_MAPPING), "FS_MAPPING" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) TRACE_EVENT_CONDITION(btrfs_get_extent,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) TP_PROTO(const struct btrfs_root *root, const struct btrfs_inode *inode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) const struct extent_map *map),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) TP_ARGS(root, inode, map),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) TP_CONDITION(map),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) __field( u64, root_objectid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) __field( u64, ino )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) __field( u64, start )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) __field( u64, len )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) __field( u64, orig_start )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) __field( u64, block_start )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) __field( u64, block_len )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) __field( unsigned long, flags )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) __field( int, refs )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) __field( unsigned int, compress_type )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) TP_fast_assign_btrfs(root->fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) __entry->root_objectid = root->root_key.objectid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) __entry->ino = btrfs_ino(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) __entry->start = map->start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) __entry->len = map->len;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) __entry->orig_start = map->orig_start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) __entry->block_start = map->block_start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) __entry->block_len = map->block_len;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) __entry->flags = map->flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) __entry->refs = refcount_read(&map->refs);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) __entry->compress_type = map->compress_type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) TP_printk_btrfs("root=%llu(%s) ino=%llu start=%llu len=%llu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) "orig_start=%llu block_start=%llu(%s) "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) "block_len=%llu flags=%s refs=%u "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) "compress_type=%u",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) show_root_type(__entry->root_objectid),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) __entry->ino,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) __entry->start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) __entry->len,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) __entry->orig_start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) show_map_type(__entry->block_start),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) __entry->block_len,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) show_map_flags(__entry->flags),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) __entry->refs, __entry->compress_type)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) TRACE_EVENT(btrfs_handle_em_exist,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) const struct extent_map *existing, const struct extent_map *map,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) u64 start, u64 len),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) TP_ARGS(fs_info, existing, map, start, len),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) __field( u64, e_start )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) __field( u64, e_len )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) __field( u64, map_start )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) __field( u64, map_len )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) __field( u64, start )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) __field( u64, len )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) TP_fast_assign_btrfs(fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) __entry->e_start = existing->start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) __entry->e_len = existing->len;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) __entry->map_start = map->start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) __entry->map_len = map->len;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) __entry->start = start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) __entry->len = len;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) TP_printk_btrfs("start=%llu len=%llu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) "existing(start=%llu len=%llu) "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) "em(start=%llu len=%llu)",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) __entry->start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) __entry->len,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) __entry->e_start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) __entry->e_len,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) __entry->map_start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) __entry->map_len)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) /* file extent item */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) DECLARE_EVENT_CLASS(btrfs__file_extent_item_regular,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) TP_PROTO(const struct btrfs_inode *bi, const struct extent_buffer *l,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) const struct btrfs_file_extent_item *fi, u64 start),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) TP_ARGS(bi, l, fi, start),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) __field( u64, root_obj )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) __field( u64, ino )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) __field( loff_t, isize )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) __field( u64, disk_isize )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) __field( u64, num_bytes )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) __field( u64, ram_bytes )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) __field( u64, disk_bytenr )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) __field( u64, disk_num_bytes )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) __field( u64, extent_offset )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) __field( u8, extent_type )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) __field( u8, compression )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) __field( u64, extent_start )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) __field( u64, extent_end )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) TP_fast_assign_btrfs(bi->root->fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) __entry->root_obj = bi->root->root_key.objectid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) __entry->ino = btrfs_ino(bi);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) __entry->isize = bi->vfs_inode.i_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) __entry->disk_isize = bi->disk_i_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) __entry->num_bytes = btrfs_file_extent_num_bytes(l, fi);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) __entry->ram_bytes = btrfs_file_extent_ram_bytes(l, fi);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) __entry->disk_bytenr = btrfs_file_extent_disk_bytenr(l, fi);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) __entry->disk_num_bytes = btrfs_file_extent_disk_num_bytes(l, fi);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) __entry->extent_offset = btrfs_file_extent_offset(l, fi);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) __entry->extent_type = btrfs_file_extent_type(l, fi);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) __entry->compression = btrfs_file_extent_compression(l, fi);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) __entry->extent_start = start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) __entry->extent_end = (start + __entry->num_bytes);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) TP_printk_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) "root=%llu(%s) inode=%llu size=%llu disk_isize=%llu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) "file extent range=[%llu %llu] "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) "(num_bytes=%llu ram_bytes=%llu disk_bytenr=%llu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) "disk_num_bytes=%llu extent_offset=%llu type=%s "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) "compression=%u",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) show_root_type(__entry->root_obj), __entry->ino,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) __entry->isize,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) __entry->disk_isize, __entry->extent_start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) __entry->extent_end, __entry->num_bytes, __entry->ram_bytes,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) __entry->disk_bytenr, __entry->disk_num_bytes,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) __entry->extent_offset, __print_symbolic(__entry->extent_type, FI_TYPES),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) __entry->compression)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) DECLARE_EVENT_CLASS(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) btrfs__file_extent_item_inline,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) TP_PROTO(const struct btrfs_inode *bi, const struct extent_buffer *l,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) const struct btrfs_file_extent_item *fi, int slot, u64 start),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) TP_ARGS(bi, l, fi, slot, start),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) __field( u64, root_obj )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) __field( u64, ino )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) __field( loff_t, isize )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) __field( u64, disk_isize )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) __field( u8, extent_type )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) __field( u8, compression )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) __field( u64, extent_start )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) __field( u64, extent_end )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) TP_fast_assign_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) bi->root->fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) __entry->root_obj = bi->root->root_key.objectid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) __entry->ino = btrfs_ino(bi);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) __entry->isize = bi->vfs_inode.i_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) __entry->disk_isize = bi->disk_i_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) __entry->extent_type = btrfs_file_extent_type(l, fi);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) __entry->compression = btrfs_file_extent_compression(l, fi);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) __entry->extent_start = start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) __entry->extent_end = (start + btrfs_file_extent_ram_bytes(l, fi));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) TP_printk_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) "root=%llu(%s) inode=%llu size=%llu disk_isize=%llu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) "file extent range=[%llu %llu] "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) "extent_type=%s compression=%u",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) show_root_type(__entry->root_obj), __entry->ino, __entry->isize,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) __entry->disk_isize, __entry->extent_start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) __entry->extent_end, __print_symbolic(__entry->extent_type, FI_TYPES),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) __entry->compression)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) DEFINE_EVENT(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) btrfs__file_extent_item_regular, btrfs_get_extent_show_fi_regular,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) TP_PROTO(const struct btrfs_inode *bi, const struct extent_buffer *l,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) const struct btrfs_file_extent_item *fi, u64 start),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) TP_ARGS(bi, l, fi, start)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) DEFINE_EVENT(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) btrfs__file_extent_item_regular, btrfs_truncate_show_fi_regular,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) TP_PROTO(const struct btrfs_inode *bi, const struct extent_buffer *l,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) const struct btrfs_file_extent_item *fi, u64 start),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) TP_ARGS(bi, l, fi, start)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) DEFINE_EVENT(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) btrfs__file_extent_item_inline, btrfs_get_extent_show_fi_inline,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) TP_PROTO(const struct btrfs_inode *bi, const struct extent_buffer *l,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) const struct btrfs_file_extent_item *fi, int slot, u64 start),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) TP_ARGS(bi, l, fi, slot, start)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) DEFINE_EVENT(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492) btrfs__file_extent_item_inline, btrfs_truncate_show_fi_inline,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) TP_PROTO(const struct btrfs_inode *bi, const struct extent_buffer *l,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) const struct btrfs_file_extent_item *fi, int slot, u64 start),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) TP_ARGS(bi, l, fi, slot, start)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) #define show_ordered_flags(flags) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) __print_flags(flags, "|", \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502) { (1 << BTRFS_ORDERED_IO_DONE), "IO_DONE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) { (1 << BTRFS_ORDERED_COMPLETE), "COMPLETE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) { (1 << BTRFS_ORDERED_NOCOW), "NOCOW" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) { (1 << BTRFS_ORDERED_COMPRESSED), "COMPRESSED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) { (1 << BTRFS_ORDERED_PREALLOC), "PREALLOC" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507) { (1 << BTRFS_ORDERED_DIRECT), "DIRECT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) { (1 << BTRFS_ORDERED_IOERR), "IOERR" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) { (1 << BTRFS_ORDERED_TRUNCATED), "TRUNCATED" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) DECLARE_EVENT_CLASS(btrfs__ordered_extent,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) TP_PROTO(const struct btrfs_inode *inode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) const struct btrfs_ordered_extent *ordered),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) TP_ARGS(inode, ordered),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) __field( u64, ino )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521) __field( u64, file_offset )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) __field( u64, start )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) __field( u64, len )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) __field( u64, disk_len )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) __field( u64, bytes_left )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) __field( unsigned long, flags )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) __field( int, compress_type )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) __field( int, refs )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529) __field( u64, root_objectid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) __field( u64, truncated_len )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) TP_fast_assign_btrfs(inode->root->fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534) __entry->ino = btrfs_ino(inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) __entry->file_offset = ordered->file_offset;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536) __entry->start = ordered->disk_bytenr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537) __entry->len = ordered->num_bytes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) __entry->disk_len = ordered->disk_num_bytes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539) __entry->bytes_left = ordered->bytes_left;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540) __entry->flags = ordered->flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) __entry->compress_type = ordered->compress_type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) __entry->refs = refcount_read(&ordered->refs);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543) __entry->root_objectid = inode->root->root_key.objectid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) __entry->truncated_len = ordered->truncated_len;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) TP_printk_btrfs("root=%llu(%s) ino=%llu file_offset=%llu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) "start=%llu len=%llu disk_len=%llu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) "truncated_len=%llu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) "bytes_left=%llu flags=%s compress_type=%d "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) "refs=%d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) show_root_type(__entry->root_objectid),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) __entry->ino,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) __entry->file_offset,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) __entry->start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) __entry->len,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) __entry->disk_len,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) __entry->truncated_len,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) __entry->bytes_left,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) show_ordered_flags(__entry->flags),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) __entry->compress_type, __entry->refs)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_add,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) TP_PROTO(const struct btrfs_inode *inode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) const struct btrfs_ordered_extent *ordered),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569) TP_ARGS(inode, ordered)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572) DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_remove,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) TP_PROTO(const struct btrfs_inode *inode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575) const struct btrfs_ordered_extent *ordered),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577) TP_ARGS(inode, ordered)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580) DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) TP_PROTO(const struct btrfs_inode *inode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) const struct btrfs_ordered_extent *ordered),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585) TP_ARGS(inode, ordered)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588) DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_put,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590) TP_PROTO(const struct btrfs_inode *inode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) const struct btrfs_ordered_extent *ordered),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593) TP_ARGS(inode, ordered)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596) DECLARE_EVENT_CLASS(btrfs__writepage,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598) TP_PROTO(const struct page *page, const struct inode *inode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599) const struct writeback_control *wbc),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601) TP_ARGS(page, inode, wbc),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604) __field( u64, ino )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605) __field( pgoff_t, index )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606) __field( long, nr_to_write )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607) __field( long, pages_skipped )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608) __field( loff_t, range_start )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 609) __field( loff_t, range_end )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 610) __field( char, for_kupdate )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 611) __field( char, for_reclaim )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 612) __field( char, range_cyclic )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 613) __field( unsigned long, writeback_index )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 614) __field( u64, root_objectid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 615) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 616)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 617) TP_fast_assign_btrfs(btrfs_sb(inode->i_sb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 618) __entry->ino = btrfs_ino(BTRFS_I(inode));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 619) __entry->index = page->index;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 620) __entry->nr_to_write = wbc->nr_to_write;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 621) __entry->pages_skipped = wbc->pages_skipped;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 622) __entry->range_start = wbc->range_start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 623) __entry->range_end = wbc->range_end;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 624) __entry->for_kupdate = wbc->for_kupdate;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 625) __entry->for_reclaim = wbc->for_reclaim;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 626) __entry->range_cyclic = wbc->range_cyclic;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 627) __entry->writeback_index = inode->i_mapping->writeback_index;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 628) __entry->root_objectid =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 629) BTRFS_I(inode)->root->root_key.objectid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 630) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 631)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 632) TP_printk_btrfs("root=%llu(%s) ino=%llu page_index=%lu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 633) "nr_to_write=%ld pages_skipped=%ld range_start=%llu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 634) "range_end=%llu for_kupdate=%d "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 635) "for_reclaim=%d range_cyclic=%d writeback_index=%lu",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 636) show_root_type(__entry->root_objectid),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 637) __entry->ino, __entry->index,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 638) __entry->nr_to_write, __entry->pages_skipped,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 639) __entry->range_start, __entry->range_end,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 640) __entry->for_kupdate,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 641) __entry->for_reclaim, __entry->range_cyclic,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 642) __entry->writeback_index)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 643) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 644)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 645) DEFINE_EVENT(btrfs__writepage, __extent_writepage,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 646)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 647) TP_PROTO(const struct page *page, const struct inode *inode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 648) const struct writeback_control *wbc),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 649)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 650) TP_ARGS(page, inode, wbc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 651) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 652)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 653) TRACE_EVENT(btrfs_writepage_end_io_hook,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 654)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 655) TP_PROTO(const struct page *page, u64 start, u64 end, int uptodate),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 656)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 657) TP_ARGS(page, start, end, uptodate),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 658)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 659) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 660) __field( u64, ino )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 661) __field( unsigned long, index )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 662) __field( u64, start )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 663) __field( u64, end )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 664) __field( int, uptodate )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 665) __field( u64, root_objectid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 666) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 667)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 668) TP_fast_assign_btrfs(btrfs_sb(page->mapping->host->i_sb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 669) __entry->ino = btrfs_ino(BTRFS_I(page->mapping->host));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 670) __entry->index = page->index;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 671) __entry->start = start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 672) __entry->end = end;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 673) __entry->uptodate = uptodate;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 674) __entry->root_objectid =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 675) BTRFS_I(page->mapping->host)->root->root_key.objectid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 676) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 677)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 678) TP_printk_btrfs("root=%llu(%s) ino=%llu page_index=%lu start=%llu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 679) "end=%llu uptodate=%d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 680) show_root_type(__entry->root_objectid),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 681) __entry->ino, __entry->index,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 682) __entry->start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 683) __entry->end, __entry->uptodate)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 684) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 685)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 686) TRACE_EVENT(btrfs_sync_file,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 687)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 688) TP_PROTO(const struct file *file, int datasync),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 689)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 690) TP_ARGS(file, datasync),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 691)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 692) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 693) __field( u64, ino )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 694) __field( u64, parent )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 695) __field( int, datasync )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 696) __field( u64, root_objectid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 697) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 698)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 699) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 700) const struct dentry *dentry = file->f_path.dentry;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 701) const struct inode *inode = d_inode(dentry);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 702)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 703) TP_fast_assign_fsid(btrfs_sb(file->f_path.dentry->d_sb));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 704) __entry->ino = btrfs_ino(BTRFS_I(inode));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 705) __entry->parent = btrfs_ino(BTRFS_I(d_inode(dentry->d_parent)));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 706) __entry->datasync = datasync;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 707) __entry->root_objectid =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 708) BTRFS_I(inode)->root->root_key.objectid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 709) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 710)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 711) TP_printk_btrfs("root=%llu(%s) ino=%llu parent=%llu datasync=%d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 712) show_root_type(__entry->root_objectid),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 713) __entry->ino,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 714) __entry->parent,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 715) __entry->datasync)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 716) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 717)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 718) TRACE_EVENT(btrfs_sync_fs,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 719)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 720) TP_PROTO(const struct btrfs_fs_info *fs_info, int wait),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 721)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 722) TP_ARGS(fs_info, wait),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 723)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 724) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 725) __field( int, wait )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 726) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 727)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 728) TP_fast_assign_btrfs(fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 729) __entry->wait = wait;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 730) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 731)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 732) TP_printk_btrfs("wait=%d", __entry->wait)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 733) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 734)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 735) TRACE_EVENT(btrfs_add_block_group,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 736)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 737) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 738) const struct btrfs_block_group *block_group, int create),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 739)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 740) TP_ARGS(fs_info, block_group, create),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 741)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 742) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 743) __field( u64, offset )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 744) __field( u64, size )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 745) __field( u64, flags )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 746) __field( u64, bytes_used )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 747) __field( u64, bytes_super )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 748) __field( int, create )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 749) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 750)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 751) TP_fast_assign_btrfs(fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 752) __entry->offset = block_group->start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 753) __entry->size = block_group->length;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 754) __entry->flags = block_group->flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 755) __entry->bytes_used = block_group->used;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 756) __entry->bytes_super = block_group->bytes_super;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 757) __entry->create = create;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 758) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 759)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 760) TP_printk_btrfs("block_group offset=%llu size=%llu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 761) "flags=%llu(%s) bytes_used=%llu bytes_super=%llu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 762) "create=%d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 763) __entry->offset,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 764) __entry->size,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 765) __entry->flags,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 766) __print_flags((unsigned long)__entry->flags, "|",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 767) BTRFS_GROUP_FLAGS),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 768) __entry->bytes_used,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 769) __entry->bytes_super, __entry->create)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 770) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 771)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 772) #define show_ref_action(action) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 773) __print_symbolic(action, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 774) { BTRFS_ADD_DELAYED_REF, "ADD_DELAYED_REF" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 775) { BTRFS_DROP_DELAYED_REF, "DROP_DELAYED_REF" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 776) { BTRFS_ADD_DELAYED_EXTENT, "ADD_DELAYED_EXTENT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 777) { BTRFS_UPDATE_DELAYED_HEAD, "UPDATE_DELAYED_HEAD" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 778)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 779)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 780) DECLARE_EVENT_CLASS(btrfs_delayed_tree_ref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 781)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 782) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 783) const struct btrfs_delayed_ref_node *ref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 784) const struct btrfs_delayed_tree_ref *full_ref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 785) int action),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 786)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 787) TP_ARGS(fs_info, ref, full_ref, action),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 788)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 789) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 790) __field( u64, bytenr )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 791) __field( u64, num_bytes )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 792) __field( int, action )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 793) __field( u64, parent )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 794) __field( u64, ref_root )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 795) __field( int, level )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 796) __field( int, type )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 797) __field( u64, seq )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 798) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 799)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 800) TP_fast_assign_btrfs(fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 801) __entry->bytenr = ref->bytenr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 802) __entry->num_bytes = ref->num_bytes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 803) __entry->action = action;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 804) __entry->parent = full_ref->parent;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 805) __entry->ref_root = full_ref->root;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 806) __entry->level = full_ref->level;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 807) __entry->type = ref->type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 808) __entry->seq = ref->seq;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 809) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 810)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 811) TP_printk_btrfs("bytenr=%llu num_bytes=%llu action=%s "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 812) "parent=%llu(%s) ref_root=%llu(%s) level=%d "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 813) "type=%s seq=%llu",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 814) __entry->bytenr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 815) __entry->num_bytes,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 816) show_ref_action(__entry->action),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 817) show_root_type(__entry->parent),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 818) show_root_type(__entry->ref_root),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 819) __entry->level, show_ref_type(__entry->type),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 820) __entry->seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 821) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 822)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 823) DEFINE_EVENT(btrfs_delayed_tree_ref, add_delayed_tree_ref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 824)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 825) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 826) const struct btrfs_delayed_ref_node *ref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 827) const struct btrfs_delayed_tree_ref *full_ref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 828) int action),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 829)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 830) TP_ARGS(fs_info, ref, full_ref, action)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 831) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 832)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 833) DEFINE_EVENT(btrfs_delayed_tree_ref, run_delayed_tree_ref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 834)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 835) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 836) const struct btrfs_delayed_ref_node *ref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 837) const struct btrfs_delayed_tree_ref *full_ref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 838) int action),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 839)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 840) TP_ARGS(fs_info, ref, full_ref, action)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 841) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 842)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 843) DECLARE_EVENT_CLASS(btrfs_delayed_data_ref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 844)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 845) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 846) const struct btrfs_delayed_ref_node *ref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 847) const struct btrfs_delayed_data_ref *full_ref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 848) int action),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 849)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 850) TP_ARGS(fs_info, ref, full_ref, action),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 851)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 852) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 853) __field( u64, bytenr )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 854) __field( u64, num_bytes )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 855) __field( int, action )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 856) __field( u64, parent )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 857) __field( u64, ref_root )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 858) __field( u64, owner )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 859) __field( u64, offset )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 860) __field( int, type )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 861) __field( u64, seq )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 862) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 863)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 864) TP_fast_assign_btrfs(fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 865) __entry->bytenr = ref->bytenr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 866) __entry->num_bytes = ref->num_bytes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 867) __entry->action = action;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 868) __entry->parent = full_ref->parent;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 869) __entry->ref_root = full_ref->root;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 870) __entry->owner = full_ref->objectid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 871) __entry->offset = full_ref->offset;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 872) __entry->type = ref->type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 873) __entry->seq = ref->seq;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 874) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 875)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 876) TP_printk_btrfs("bytenr=%llu num_bytes=%llu action=%s "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 877) "parent=%llu(%s) ref_root=%llu(%s) owner=%llu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 878) "offset=%llu type=%s seq=%llu",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 879) __entry->bytenr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 880) __entry->num_bytes,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 881) show_ref_action(__entry->action),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 882) show_root_type(__entry->parent),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 883) show_root_type(__entry->ref_root),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 884) __entry->owner,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 885) __entry->offset,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 886) show_ref_type(__entry->type),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 887) __entry->seq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 888) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 889)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 890) DEFINE_EVENT(btrfs_delayed_data_ref, add_delayed_data_ref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 891)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 892) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 893) const struct btrfs_delayed_ref_node *ref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 894) const struct btrfs_delayed_data_ref *full_ref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 895) int action),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 896)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 897) TP_ARGS(fs_info, ref, full_ref, action)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 898) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 899)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 900) DEFINE_EVENT(btrfs_delayed_data_ref, run_delayed_data_ref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 901)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 902) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 903) const struct btrfs_delayed_ref_node *ref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 904) const struct btrfs_delayed_data_ref *full_ref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 905) int action),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 906)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 907) TP_ARGS(fs_info, ref, full_ref, action)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 908) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 909)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 910) DECLARE_EVENT_CLASS(btrfs_delayed_ref_head,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 911)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 912) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 913) const struct btrfs_delayed_ref_head *head_ref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 914) int action),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 915)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 916) TP_ARGS(fs_info, head_ref, action),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 917)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 918) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 919) __field( u64, bytenr )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 920) __field( u64, num_bytes )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 921) __field( int, action )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 922) __field( int, is_data )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 923) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 924)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 925) TP_fast_assign_btrfs(fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 926) __entry->bytenr = head_ref->bytenr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 927) __entry->num_bytes = head_ref->num_bytes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 928) __entry->action = action;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 929) __entry->is_data = head_ref->is_data;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 930) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 931)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 932) TP_printk_btrfs("bytenr=%llu num_bytes=%llu action=%s is_data=%d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 933) __entry->bytenr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 934) __entry->num_bytes,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 935) show_ref_action(__entry->action),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 936) __entry->is_data)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 937) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 938)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 939) DEFINE_EVENT(btrfs_delayed_ref_head, add_delayed_ref_head,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 940)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 941) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 942) const struct btrfs_delayed_ref_head *head_ref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 943) int action),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 944)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 945) TP_ARGS(fs_info, head_ref, action)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 946) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 947)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 948) DEFINE_EVENT(btrfs_delayed_ref_head, run_delayed_ref_head,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 949)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 950) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 951) const struct btrfs_delayed_ref_head *head_ref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 952) int action),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 953)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 954) TP_ARGS(fs_info, head_ref, action)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 955) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 956)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 957) #define show_chunk_type(type) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 958) __print_flags(type, "|", \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 959) { BTRFS_BLOCK_GROUP_DATA, "DATA" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 960) { BTRFS_BLOCK_GROUP_SYSTEM, "SYSTEM"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 961) { BTRFS_BLOCK_GROUP_METADATA, "METADATA"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 962) { BTRFS_BLOCK_GROUP_RAID0, "RAID0" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 963) { BTRFS_BLOCK_GROUP_RAID1, "RAID1" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 964) { BTRFS_BLOCK_GROUP_DUP, "DUP" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 965) { BTRFS_BLOCK_GROUP_RAID10, "RAID10"}, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 966) { BTRFS_BLOCK_GROUP_RAID5, "RAID5" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 967) { BTRFS_BLOCK_GROUP_RAID6, "RAID6" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 968)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 969) DECLARE_EVENT_CLASS(btrfs__chunk,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 970)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 971) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 972) const struct map_lookup *map, u64 offset, u64 size),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 973)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 974) TP_ARGS(fs_info, map, offset, size),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 975)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 976) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 977) __field( int, num_stripes )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 978) __field( u64, type )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 979) __field( int, sub_stripes )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 980) __field( u64, offset )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 981) __field( u64, size )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 982) __field( u64, root_objectid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 983) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 984)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 985) TP_fast_assign_btrfs(fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 986) __entry->num_stripes = map->num_stripes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 987) __entry->type = map->type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 988) __entry->sub_stripes = map->sub_stripes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 989) __entry->offset = offset;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 990) __entry->size = size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 991) __entry->root_objectid = fs_info->chunk_root->root_key.objectid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 992) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 993)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 994) TP_printk_btrfs("root=%llu(%s) offset=%llu size=%llu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 995) "num_stripes=%d sub_stripes=%d type=%s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 996) show_root_type(__entry->root_objectid),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 997) __entry->offset,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 998) __entry->size,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 999) __entry->num_stripes, __entry->sub_stripes,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1000) show_chunk_type(__entry->type))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1001) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1002)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1003) DEFINE_EVENT(btrfs__chunk, btrfs_chunk_alloc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1004)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1005) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1006) const struct map_lookup *map, u64 offset, u64 size),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1007)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1008) TP_ARGS(fs_info, map, offset, size)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1009) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1010)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1011) DEFINE_EVENT(btrfs__chunk, btrfs_chunk_free,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1012)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1013) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1014) const struct map_lookup *map, u64 offset, u64 size),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1015)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1016) TP_ARGS(fs_info, map, offset, size)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1017) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1018)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1019) TRACE_EVENT(btrfs_cow_block,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1020)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1021) TP_PROTO(const struct btrfs_root *root, const struct extent_buffer *buf,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1022) const struct extent_buffer *cow),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1023)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1024) TP_ARGS(root, buf, cow),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1025)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1026) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1027) __field( u64, root_objectid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1028) __field( u64, buf_start )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1029) __field( int, refs )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1030) __field( u64, cow_start )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1031) __field( int, buf_level )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1032) __field( int, cow_level )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1033) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1034)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1035) TP_fast_assign_btrfs(root->fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1036) __entry->root_objectid = root->root_key.objectid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1037) __entry->buf_start = buf->start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1038) __entry->refs = atomic_read(&buf->refs);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1039) __entry->cow_start = cow->start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1040) __entry->buf_level = btrfs_header_level(buf);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1041) __entry->cow_level = btrfs_header_level(cow);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1042) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1043)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1044) TP_printk_btrfs("root=%llu(%s) refs=%d orig_buf=%llu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1045) "(orig_level=%d) cow_buf=%llu (cow_level=%d)",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1046) show_root_type(__entry->root_objectid),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1047) __entry->refs,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1048) __entry->buf_start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1049) __entry->buf_level,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1050) __entry->cow_start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1051) __entry->cow_level)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1052) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1053)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1054) TRACE_EVENT(btrfs_space_reservation,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1055)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1056) TP_PROTO(const struct btrfs_fs_info *fs_info, const char *type, u64 val,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1057) u64 bytes, int reserve),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1058)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1059) TP_ARGS(fs_info, type, val, bytes, reserve),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1060)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1061) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1062) __string( type, type )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1063) __field( u64, val )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1064) __field( u64, bytes )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1065) __field( int, reserve )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1066) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1067)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1068) TP_fast_assign_btrfs(fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1069) __assign_str(type, type);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1070) __entry->val = val;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1071) __entry->bytes = bytes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1072) __entry->reserve = reserve;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1073) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1074)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1075) TP_printk_btrfs("%s: %llu %s %llu", __get_str(type), __entry->val,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1076) __entry->reserve ? "reserve" : "release",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1077) __entry->bytes)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1078) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1079)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1080) TRACE_EVENT(btrfs_trigger_flush,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1081)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1082) TP_PROTO(const struct btrfs_fs_info *fs_info, u64 flags, u64 bytes,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1083) int flush, const char *reason),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1084)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1085) TP_ARGS(fs_info, flags, bytes, flush, reason),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1086)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1087) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1088) __field( u64, flags )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1089) __field( u64, bytes )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1090) __field( int, flush )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1091) __string( reason, reason )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1092) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1093)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1094) TP_fast_assign_btrfs(fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1095) __entry->flags = flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1096) __entry->bytes = bytes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1097) __entry->flush = flush;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1098) __assign_str(reason, reason)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1099) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1101) TP_printk_btrfs("%s: flush=%d(%s) flags=%llu(%s) bytes=%llu",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1102) __get_str(reason), __entry->flush,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1103) __print_symbolic(__entry->flush, FLUSH_ACTIONS),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1104) __entry->flags,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1105) __print_flags((unsigned long)__entry->flags, "|",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1106) BTRFS_GROUP_FLAGS),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1107) __entry->bytes)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1108) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1109)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1110)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1111) TRACE_EVENT(btrfs_flush_space,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1112)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1113) TP_PROTO(const struct btrfs_fs_info *fs_info, u64 flags, u64 num_bytes,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1114) int state, int ret),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1115)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1116) TP_ARGS(fs_info, flags, num_bytes, state, ret),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1117)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1118) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1119) __field( u64, flags )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1120) __field( u64, num_bytes )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1121) __field( int, state )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1122) __field( int, ret )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1123) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1124)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1125) TP_fast_assign_btrfs(fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1126) __entry->flags = flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1127) __entry->num_bytes = num_bytes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1128) __entry->state = state;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1129) __entry->ret = ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1130) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1131)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1132) TP_printk_btrfs("state=%d(%s) flags=%llu(%s) num_bytes=%llu ret=%d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1133) __entry->state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1134) __print_symbolic(__entry->state, FLUSH_STATES),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1135) __entry->flags,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1136) __print_flags((unsigned long)__entry->flags, "|",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1137) BTRFS_GROUP_FLAGS),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1138) __entry->num_bytes, __entry->ret)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1139) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1140)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1141) DECLARE_EVENT_CLASS(btrfs__reserved_extent,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1142)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1143) TP_PROTO(const struct btrfs_fs_info *fs_info, u64 start, u64 len),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1144)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1145) TP_ARGS(fs_info, start, len),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1146)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1147) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1148) __field( u64, start )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1149) __field( u64, len )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1150) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1151)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1152) TP_fast_assign_btrfs(fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1153) __entry->start = start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1154) __entry->len = len;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1155) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1156)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1157) TP_printk_btrfs("root=%llu(%s) start=%llu len=%llu",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1158) show_root_type(BTRFS_EXTENT_TREE_OBJECTID),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1159) __entry->start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1160) __entry->len)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1161) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1162)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1163) DEFINE_EVENT(btrfs__reserved_extent, btrfs_reserved_extent_alloc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1164)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1165) TP_PROTO(const struct btrfs_fs_info *fs_info, u64 start, u64 len),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1166)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1167) TP_ARGS(fs_info, start, len)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1168) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1169)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1170) DEFINE_EVENT(btrfs__reserved_extent, btrfs_reserved_extent_free,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1171)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1172) TP_PROTO(const struct btrfs_fs_info *fs_info, u64 start, u64 len),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1173)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1174) TP_ARGS(fs_info, start, len)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1175) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1176)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1177) TRACE_EVENT(find_free_extent,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1178)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1179) TP_PROTO(const struct btrfs_root *root, u64 num_bytes,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1180) u64 empty_size, u64 data),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1181)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1182) TP_ARGS(root, num_bytes, empty_size, data),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1183)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1184) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1185) __field( u64, root_objectid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1186) __field( u64, num_bytes )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1187) __field( u64, empty_size )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1188) __field( u64, data )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1189) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1190)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1191) TP_fast_assign_btrfs(root->fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1192) __entry->root_objectid = root->root_key.objectid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1193) __entry->num_bytes = num_bytes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1194) __entry->empty_size = empty_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1195) __entry->data = data;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1196) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1197)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1198) TP_printk_btrfs("root=%llu(%s) len=%llu empty_size=%llu flags=%llu(%s)",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1199) show_root_type(__entry->root_objectid),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1200) __entry->num_bytes, __entry->empty_size, __entry->data,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1201) __print_flags((unsigned long)__entry->data, "|",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1202) BTRFS_GROUP_FLAGS))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1203) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1204)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1205) DECLARE_EVENT_CLASS(btrfs__reserve_extent,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1206)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1207) TP_PROTO(const struct btrfs_block_group *block_group, u64 start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1208) u64 len),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1209)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1210) TP_ARGS(block_group, start, len),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1211)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1212) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1213) __field( u64, bg_objectid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1214) __field( u64, flags )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1215) __field( u64, start )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1216) __field( u64, len )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1217) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1218)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1219) TP_fast_assign_btrfs(block_group->fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1220) __entry->bg_objectid = block_group->start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1221) __entry->flags = block_group->flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1222) __entry->start = start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1223) __entry->len = len;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1224) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1225)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1226) TP_printk_btrfs("root=%llu(%s) block_group=%llu flags=%llu(%s) "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1227) "start=%llu len=%llu",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1228) show_root_type(BTRFS_EXTENT_TREE_OBJECTID),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1229) __entry->bg_objectid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1230) __entry->flags, __print_flags((unsigned long)__entry->flags,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1231) "|", BTRFS_GROUP_FLAGS),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1232) __entry->start, __entry->len)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1233) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1234)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1235) DEFINE_EVENT(btrfs__reserve_extent, btrfs_reserve_extent,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1236)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1237) TP_PROTO(const struct btrfs_block_group *block_group, u64 start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1238) u64 len),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1239)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1240) TP_ARGS(block_group, start, len)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1241) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1242)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1243) DEFINE_EVENT(btrfs__reserve_extent, btrfs_reserve_extent_cluster,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1244)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1245) TP_PROTO(const struct btrfs_block_group *block_group, u64 start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1246) u64 len),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1247)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1248) TP_ARGS(block_group, start, len)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1249) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1250)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1251) TRACE_EVENT(btrfs_find_cluster,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1252)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1253) TP_PROTO(const struct btrfs_block_group *block_group, u64 start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1254) u64 bytes, u64 empty_size, u64 min_bytes),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1255)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1256) TP_ARGS(block_group, start, bytes, empty_size, min_bytes),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1257)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1258) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1259) __field( u64, bg_objectid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1260) __field( u64, flags )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1261) __field( u64, start )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1262) __field( u64, bytes )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1263) __field( u64, empty_size )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1264) __field( u64, min_bytes )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1265) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1266)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1267) TP_fast_assign_btrfs(block_group->fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1268) __entry->bg_objectid = block_group->start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1269) __entry->flags = block_group->flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1270) __entry->start = start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1271) __entry->bytes = bytes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1272) __entry->empty_size = empty_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1273) __entry->min_bytes = min_bytes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1274) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1275)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1276) TP_printk_btrfs("block_group=%llu flags=%llu(%s) start=%llu len=%llu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1277) "empty_size=%llu min_bytes=%llu", __entry->bg_objectid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1278) __entry->flags,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1279) __print_flags((unsigned long)__entry->flags, "|",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1280) BTRFS_GROUP_FLAGS), __entry->start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1281) __entry->bytes, __entry->empty_size, __entry->min_bytes)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1282) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1283)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1284) TRACE_EVENT(btrfs_failed_cluster_setup,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1285)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1286) TP_PROTO(const struct btrfs_block_group *block_group),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1287)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1288) TP_ARGS(block_group),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1289)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1290) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1291) __field( u64, bg_objectid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1292) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1293)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1294) TP_fast_assign_btrfs(block_group->fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1295) __entry->bg_objectid = block_group->start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1296) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1297)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1298) TP_printk_btrfs("block_group=%llu", __entry->bg_objectid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1299) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1300)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1301) TRACE_EVENT(btrfs_setup_cluster,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1302)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1303) TP_PROTO(const struct btrfs_block_group *block_group,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1304) const struct btrfs_free_cluster *cluster,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1305) u64 size, int bitmap),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1306)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1307) TP_ARGS(block_group, cluster, size, bitmap),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1308)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1309) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1310) __field( u64, bg_objectid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1311) __field( u64, flags )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1312) __field( u64, start )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1313) __field( u64, max_size )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1314) __field( u64, size )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1315) __field( int, bitmap )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1316) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1317)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1318) TP_fast_assign_btrfs(block_group->fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1319) __entry->bg_objectid = block_group->start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1320) __entry->flags = block_group->flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1321) __entry->start = cluster->window_start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1322) __entry->max_size = cluster->max_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1323) __entry->size = size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1324) __entry->bitmap = bitmap;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1325) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1326)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1327) TP_printk_btrfs("block_group=%llu flags=%llu(%s) window_start=%llu "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1328) "size=%llu max_size=%llu bitmap=%d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1329) __entry->bg_objectid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1330) __entry->flags,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1331) __print_flags((unsigned long)__entry->flags, "|",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1332) BTRFS_GROUP_FLAGS), __entry->start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1333) __entry->size, __entry->max_size, __entry->bitmap)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1334) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1335)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1336) struct extent_state;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1337) TRACE_EVENT(alloc_extent_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1338)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1339) TP_PROTO(const struct extent_state *state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1340) gfp_t mask, unsigned long IP),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1341)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1342) TP_ARGS(state, mask, IP),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1343)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1344) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1345) __field(const struct extent_state *, state)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1346) __field(gfp_t, mask)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1347) __field(const void*, ip)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1348) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1349)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1350) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1351) __entry->state = state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1352) __entry->mask = mask,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1353) __entry->ip = (const void *)IP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1354) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1355)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1356) TP_printk("state=%p mask=%s caller=%pS", __entry->state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1357) show_gfp_flags(__entry->mask), __entry->ip)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1358) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1359)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1360) TRACE_EVENT(free_extent_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1361)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1362) TP_PROTO(const struct extent_state *state, unsigned long IP),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1363)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1364) TP_ARGS(state, IP),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1365)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1366) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1367) __field(const struct extent_state *, state)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1368) __field(const void*, ip)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1369) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1370)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1371) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1372) __entry->state = state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1373) __entry->ip = (const void *)IP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1374) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1375)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1376) TP_printk("state=%p caller=%pS", __entry->state, __entry->ip)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1377) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1378)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1379) DECLARE_EVENT_CLASS(btrfs__work,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1380)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1381) TP_PROTO(const struct btrfs_work *work),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1382)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1383) TP_ARGS(work),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1384)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1385) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1386) __field( const void *, work )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1387) __field( const void *, wq )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1388) __field( const void *, func )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1389) __field( const void *, ordered_func )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1390) __field( const void *, ordered_free )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1391) __field( const void *, normal_work )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1392) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1393)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1394) TP_fast_assign_btrfs(btrfs_work_owner(work),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1395) __entry->work = work;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1396) __entry->wq = work->wq;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1397) __entry->func = work->func;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1398) __entry->ordered_func = work->ordered_func;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1399) __entry->ordered_free = work->ordered_free;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1400) __entry->normal_work = &work->normal_work;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1401) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1402)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1403) TP_printk_btrfs("work=%p (normal_work=%p) wq=%p func=%ps ordered_func=%p "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1404) "ordered_free=%p",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1405) __entry->work, __entry->normal_work, __entry->wq,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1406) __entry->func, __entry->ordered_func, __entry->ordered_free)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1407) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1408)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1409) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1410) * For situations when the work is freed, we pass fs_info and a tag that matches
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1411) * the address of the work structure so it can be paired with the scheduling
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1412) * event. DO NOT add anything here that dereferences wtag.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1413) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1414) DECLARE_EVENT_CLASS(btrfs__work__done,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1415)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1416) TP_PROTO(const struct btrfs_fs_info *fs_info, const void *wtag),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1417)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1418) TP_ARGS(fs_info, wtag),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1419)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1420) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1421) __field( const void *, wtag )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1422) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1423)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1424) TP_fast_assign_btrfs(fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1425) __entry->wtag = wtag;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1426) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1427)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1428) TP_printk_btrfs("work->%p", __entry->wtag)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1429) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1430)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1431) DEFINE_EVENT(btrfs__work, btrfs_work_queued,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1432)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1433) TP_PROTO(const struct btrfs_work *work),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1434)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1435) TP_ARGS(work)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1436) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1437)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1438) DEFINE_EVENT(btrfs__work, btrfs_work_sched,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1439)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1440) TP_PROTO(const struct btrfs_work *work),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1441)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1442) TP_ARGS(work)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1443) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1444)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1445) DEFINE_EVENT(btrfs__work__done, btrfs_all_work_done,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1446)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1447) TP_PROTO(const struct btrfs_fs_info *fs_info, const void *wtag),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1448)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1449) TP_ARGS(fs_info, wtag)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1450) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1451)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1452) DEFINE_EVENT(btrfs__work, btrfs_ordered_sched,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1453)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1454) TP_PROTO(const struct btrfs_work *work),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1455)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1456) TP_ARGS(work)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1457) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1458)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1459) DECLARE_EVENT_CLASS(btrfs__workqueue,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1460)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1461) TP_PROTO(const struct __btrfs_workqueue *wq,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1462) const char *name, int high),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1463)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1464) TP_ARGS(wq, name, high),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1465)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1466) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1467) __field( const void *, wq )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1468) __string( name, name )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1469) __field( int , high )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1470) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1471)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1472) TP_fast_assign_btrfs(btrfs_workqueue_owner(wq),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1473) __entry->wq = wq;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1474) __assign_str(name, name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1475) __entry->high = high;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1476) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1477)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1478) TP_printk_btrfs("name=%s%s wq=%p", __get_str(name),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1479) __print_flags(__entry->high, "",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1480) {(WQ_HIGHPRI), "-high"}),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1481) __entry->wq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1482) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1483)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1484) DEFINE_EVENT(btrfs__workqueue, btrfs_workqueue_alloc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1485)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1486) TP_PROTO(const struct __btrfs_workqueue *wq,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1487) const char *name, int high),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1488)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1489) TP_ARGS(wq, name, high)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1490) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1491)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1492) DECLARE_EVENT_CLASS(btrfs__workqueue_done,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1493)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1494) TP_PROTO(const struct __btrfs_workqueue *wq),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1495)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1496) TP_ARGS(wq),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1497)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1498) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1499) __field( const void *, wq )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1500) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1501)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1502) TP_fast_assign_btrfs(btrfs_workqueue_owner(wq),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1503) __entry->wq = wq;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1504) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1505)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1506) TP_printk_btrfs("wq=%p", __entry->wq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1507) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1508)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1509) DEFINE_EVENT(btrfs__workqueue_done, btrfs_workqueue_destroy,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1510)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1511) TP_PROTO(const struct __btrfs_workqueue *wq),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1512)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1513) TP_ARGS(wq)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1514) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1515)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1516) #define BTRFS_QGROUP_OPERATIONS \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1517) { QGROUP_RESERVE, "reserve" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1518) { QGROUP_RELEASE, "release" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1519) { QGROUP_FREE, "free" }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1520)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1521) DECLARE_EVENT_CLASS(btrfs__qgroup_rsv_data,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1522)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1523) TP_PROTO(const struct inode *inode, u64 start, u64 len,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1524) u64 reserved, int op),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1525)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1526) TP_ARGS(inode, start, len, reserved, op),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1527)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1528) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1529) __field( u64, rootid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1530) __field( u64, ino )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1531) __field( u64, start )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1532) __field( u64, len )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1533) __field( u64, reserved )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1534) __field( int, op )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1535) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1536)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1537) TP_fast_assign_btrfs(btrfs_sb(inode->i_sb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1538) __entry->rootid =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1539) BTRFS_I(inode)->root->root_key.objectid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1540) __entry->ino = btrfs_ino(BTRFS_I(inode));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1541) __entry->start = start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1542) __entry->len = len;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1543) __entry->reserved = reserved;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1544) __entry->op = op;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1545) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1546)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1547) TP_printk_btrfs("root=%llu ino=%llu start=%llu len=%llu reserved=%llu op=%s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1548) __entry->rootid, __entry->ino, __entry->start, __entry->len,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1549) __entry->reserved,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1550) __print_flags((unsigned long)__entry->op, "",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1551) BTRFS_QGROUP_OPERATIONS)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1552) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1553) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1554)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1555) DEFINE_EVENT(btrfs__qgroup_rsv_data, btrfs_qgroup_reserve_data,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1556)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1557) TP_PROTO(const struct inode *inode, u64 start, u64 len,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1558) u64 reserved, int op),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1559)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1560) TP_ARGS(inode, start, len, reserved, op)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1561) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1562)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1563) DEFINE_EVENT(btrfs__qgroup_rsv_data, btrfs_qgroup_release_data,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1564)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1565) TP_PROTO(const struct inode *inode, u64 start, u64 len,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1566) u64 reserved, int op),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1567)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1568) TP_ARGS(inode, start, len, reserved, op)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1569) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1570)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1571) DECLARE_EVENT_CLASS(btrfs_qgroup_extent,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1572) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1573) const struct btrfs_qgroup_extent_record *rec),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1574)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1575) TP_ARGS(fs_info, rec),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1576)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1577) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1578) __field( u64, bytenr )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1579) __field( u64, num_bytes )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1580) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1581)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1582) TP_fast_assign_btrfs(fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1583) __entry->bytenr = rec->bytenr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1584) __entry->num_bytes = rec->num_bytes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1585) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1586)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1587) TP_printk_btrfs("bytenr=%llu num_bytes=%llu",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1588) __entry->bytenr, __entry->num_bytes)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1589) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1590)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1591) DEFINE_EVENT(btrfs_qgroup_extent, btrfs_qgroup_account_extents,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1592)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1593) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1594) const struct btrfs_qgroup_extent_record *rec),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1595)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1596) TP_ARGS(fs_info, rec)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1597) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1598)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1599) DEFINE_EVENT(btrfs_qgroup_extent, btrfs_qgroup_trace_extent,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1600)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1601) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1602) const struct btrfs_qgroup_extent_record *rec),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1603)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1604) TP_ARGS(fs_info, rec)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1605) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1606)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1607) TRACE_EVENT(qgroup_num_dirty_extents,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1608)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1609) TP_PROTO(const struct btrfs_fs_info *fs_info, u64 transid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1610) u64 num_dirty_extents),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1611)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1612) TP_ARGS(fs_info, transid, num_dirty_extents),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1613)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1614) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1615) __field( u64, transid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1616) __field( u64, num_dirty_extents )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1617) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1618)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1619) TP_fast_assign_btrfs(fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1620) __entry->transid = transid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1621) __entry->num_dirty_extents = num_dirty_extents;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1622) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1623)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1624) TP_printk_btrfs("transid=%llu num_dirty_extents=%llu",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1625) __entry->transid, __entry->num_dirty_extents)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1626) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1627)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1628) TRACE_EVENT(btrfs_qgroup_account_extent,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1629)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1630) TP_PROTO(const struct btrfs_fs_info *fs_info, u64 transid, u64 bytenr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1631) u64 num_bytes, u64 nr_old_roots, u64 nr_new_roots),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1632)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1633) TP_ARGS(fs_info, transid, bytenr, num_bytes, nr_old_roots,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1634) nr_new_roots),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1635)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1636) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1637) __field( u64, transid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1638) __field( u64, bytenr )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1639) __field( u64, num_bytes )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1640) __field( u64, nr_old_roots )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1641) __field( u64, nr_new_roots )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1642) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1643)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1644) TP_fast_assign_btrfs(fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1645) __entry->transid = transid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1646) __entry->bytenr = bytenr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1647) __entry->num_bytes = num_bytes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1648) __entry->nr_old_roots = nr_old_roots;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1649) __entry->nr_new_roots = nr_new_roots;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1650) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1651)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1652) TP_printk_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1653) "transid=%llu bytenr=%llu num_bytes=%llu nr_old_roots=%llu nr_new_roots=%llu",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1654) __entry->transid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1655) __entry->bytenr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1656) __entry->num_bytes,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1657) __entry->nr_old_roots,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1658) __entry->nr_new_roots)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1659) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1660)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1661) TRACE_EVENT(qgroup_update_counters,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1662)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1663) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1664) const struct btrfs_qgroup *qgroup,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1665) u64 cur_old_count, u64 cur_new_count),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1666)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1667) TP_ARGS(fs_info, qgroup, cur_old_count, cur_new_count),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1668)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1669) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1670) __field( u64, qgid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1671) __field( u64, old_rfer )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1672) __field( u64, old_excl )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1673) __field( u64, cur_old_count )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1674) __field( u64, cur_new_count )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1675) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1676)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1677) TP_fast_assign_btrfs(fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1678) __entry->qgid = qgroup->qgroupid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1679) __entry->old_rfer = qgroup->rfer;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1680) __entry->old_excl = qgroup->excl;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1681) __entry->cur_old_count = cur_old_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1682) __entry->cur_new_count = cur_new_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1683) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1684)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1685) TP_printk_btrfs("qgid=%llu old_rfer=%llu old_excl=%llu cur_old_count=%llu cur_new_count=%llu",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1686) __entry->qgid, __entry->old_rfer, __entry->old_excl,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1687) __entry->cur_old_count, __entry->cur_new_count)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1688) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1689)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1690) TRACE_EVENT(qgroup_update_reserve,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1691)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1692) TP_PROTO(struct btrfs_fs_info *fs_info, struct btrfs_qgroup *qgroup,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1693) s64 diff, int type),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1694)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1695) TP_ARGS(fs_info, qgroup, diff, type),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1696)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1697) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1698) __field( u64, qgid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1699) __field( u64, cur_reserved )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1700) __field( s64, diff )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1701) __field( int, type )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1702) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1703)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1704) TP_fast_assign_btrfs(fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1705) __entry->qgid = qgroup->qgroupid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1706) __entry->cur_reserved = qgroup->rsv.values[type];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1707) __entry->diff = diff;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1708) __entry->type = type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1709) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1710)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1711) TP_printk_btrfs("qgid=%llu type=%s cur_reserved=%llu diff=%lld",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1712) __entry->qgid, __print_symbolic(__entry->type, QGROUP_RSV_TYPES),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1713) __entry->cur_reserved, __entry->diff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1714) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1715)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1716) TRACE_EVENT(qgroup_meta_reserve,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1717)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1718) TP_PROTO(struct btrfs_root *root, s64 diff, int type),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1719)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1720) TP_ARGS(root, diff, type),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1721)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1722) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1723) __field( u64, refroot )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1724) __field( s64, diff )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1725) __field( int, type )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1726) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1727)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1728) TP_fast_assign_btrfs(root->fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1729) __entry->refroot = root->root_key.objectid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1730) __entry->diff = diff;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1731) __entry->type = type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1732) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1733)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1734) TP_printk_btrfs("refroot=%llu(%s) type=%s diff=%lld",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1735) show_root_type(__entry->refroot),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1736) __print_symbolic(__entry->type, QGROUP_RSV_TYPES), __entry->diff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1737) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1738)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1739) TRACE_EVENT(qgroup_meta_convert,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1740)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1741) TP_PROTO(struct btrfs_root *root, s64 diff),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1742)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1743) TP_ARGS(root, diff),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1744)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1745) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1746) __field( u64, refroot )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1747) __field( s64, diff )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1748) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1749)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1750) TP_fast_assign_btrfs(root->fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1751) __entry->refroot = root->root_key.objectid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1752) __entry->diff = diff;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1753) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1754)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1755) TP_printk_btrfs("refroot=%llu(%s) type=%s->%s diff=%lld",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1756) show_root_type(__entry->refroot),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1757) __print_symbolic(BTRFS_QGROUP_RSV_META_PREALLOC, QGROUP_RSV_TYPES),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1758) __print_symbolic(BTRFS_QGROUP_RSV_META_PERTRANS, QGROUP_RSV_TYPES),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1759) __entry->diff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1760) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1761)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1762) TRACE_EVENT(qgroup_meta_free_all_pertrans,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1763)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1764) TP_PROTO(struct btrfs_root *root),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1765)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1766) TP_ARGS(root),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1767)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1768) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1769) __field( u64, refroot )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1770) __field( s64, diff )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1771) __field( int, type )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1772) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1773)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1774) TP_fast_assign_btrfs(root->fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1775) __entry->refroot = root->root_key.objectid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1776) spin_lock(&root->qgroup_meta_rsv_lock);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1777) __entry->diff = -(s64)root->qgroup_meta_rsv_pertrans;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1778) spin_unlock(&root->qgroup_meta_rsv_lock);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1779) __entry->type = BTRFS_QGROUP_RSV_META_PERTRANS;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1780) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1781)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1782) TP_printk_btrfs("refroot=%llu(%s) type=%s diff=%lld",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1783) show_root_type(__entry->refroot),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1784) __print_symbolic(__entry->type, QGROUP_RSV_TYPES), __entry->diff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1785) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1786)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1787) DECLARE_EVENT_CLASS(btrfs__prelim_ref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1788) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1789) const struct prelim_ref *oldref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1790) const struct prelim_ref *newref, u64 tree_size),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1791) TP_ARGS(fs_info, newref, oldref, tree_size),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1792)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1793) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1794) __field( u64, root_id )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1795) __field( u64, objectid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1796) __field( u8, type )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1797) __field( u64, offset )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1798) __field( int, level )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1799) __field( int, old_count )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1800) __field( u64, parent )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1801) __field( u64, bytenr )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1802) __field( int, mod_count )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1803) __field( u64, tree_size )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1804) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1805)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1806) TP_fast_assign_btrfs(fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1807) __entry->root_id = oldref->root_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1808) __entry->objectid = oldref->key_for_search.objectid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1809) __entry->type = oldref->key_for_search.type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1810) __entry->offset = oldref->key_for_search.offset;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1811) __entry->level = oldref->level;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1812) __entry->old_count = oldref->count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1813) __entry->parent = oldref->parent;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1814) __entry->bytenr = oldref->wanted_disk_byte;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1815) __entry->mod_count = newref ? newref->count : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1816) __entry->tree_size = tree_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1817) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1818)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1819) TP_printk_btrfs("root_id=%llu key=[%llu,%u,%llu] level=%d count=[%d+%d=%d] parent=%llu wanted_disk_byte=%llu nodes=%llu",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1820) __entry->root_id,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1821) __entry->objectid, __entry->type,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1822) __entry->offset, __entry->level,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1823) __entry->old_count, __entry->mod_count,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1824) __entry->old_count + __entry->mod_count,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1825) __entry->parent,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1826) __entry->bytenr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1827) __entry->tree_size)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1828) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1829)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1830) DEFINE_EVENT(btrfs__prelim_ref, btrfs_prelim_ref_merge,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1831) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1832) const struct prelim_ref *oldref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1833) const struct prelim_ref *newref, u64 tree_size),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1834) TP_ARGS(fs_info, oldref, newref, tree_size)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1835) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1836)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1837) DEFINE_EVENT(btrfs__prelim_ref, btrfs_prelim_ref_insert,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1838) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1839) const struct prelim_ref *oldref,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1840) const struct prelim_ref *newref, u64 tree_size),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1841) TP_ARGS(fs_info, oldref, newref, tree_size)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1842) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1843)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1844) TRACE_EVENT(btrfs_inode_mod_outstanding_extents,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1845) TP_PROTO(const struct btrfs_root *root, u64 ino, int mod),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1846)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1847) TP_ARGS(root, ino, mod),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1848)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1849) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1850) __field( u64, root_objectid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1851) __field( u64, ino )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1852) __field( int, mod )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1853) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1854)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1855) TP_fast_assign_btrfs(root->fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1856) __entry->root_objectid = root->root_key.objectid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1857) __entry->ino = ino;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1858) __entry->mod = mod;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1859) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1860)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1861) TP_printk_btrfs("root=%llu(%s) ino=%llu mod=%d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1862) show_root_type(__entry->root_objectid),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1863) __entry->ino, __entry->mod)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1864) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1865)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1866) DECLARE_EVENT_CLASS(btrfs__block_group,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1867) TP_PROTO(const struct btrfs_block_group *bg_cache),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1868)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1869) TP_ARGS(bg_cache),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1870)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1871) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1872) __field( u64, bytenr )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1873) __field( u64, len )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1874) __field( u64, used )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1875) __field( u64, flags )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1876) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1877)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1878) TP_fast_assign_btrfs(bg_cache->fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1879) __entry->bytenr = bg_cache->start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1880) __entry->len = bg_cache->length,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1881) __entry->used = bg_cache->used;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1882) __entry->flags = bg_cache->flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1883) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1884)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1885) TP_printk_btrfs("bg bytenr=%llu len=%llu used=%llu flags=%llu(%s)",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1886) __entry->bytenr, __entry->len, __entry->used, __entry->flags,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1887) __print_flags(__entry->flags, "|", BTRFS_GROUP_FLAGS))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1888) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1889)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1890) DEFINE_EVENT(btrfs__block_group, btrfs_remove_block_group,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1891) TP_PROTO(const struct btrfs_block_group *bg_cache),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1892)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1893) TP_ARGS(bg_cache)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1894) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1895)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1896) DEFINE_EVENT(btrfs__block_group, btrfs_add_unused_block_group,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1897) TP_PROTO(const struct btrfs_block_group *bg_cache),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1898)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1899) TP_ARGS(bg_cache)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1900) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1901)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1902) DEFINE_EVENT(btrfs__block_group, btrfs_skip_unused_block_group,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1903) TP_PROTO(const struct btrfs_block_group *bg_cache),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1904)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1905) TP_ARGS(bg_cache)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1906) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1907)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1908) TRACE_EVENT(btrfs_set_extent_bit,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1909) TP_PROTO(const struct extent_io_tree *tree,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1910) u64 start, u64 len, unsigned set_bits),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1911)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1912) TP_ARGS(tree, start, len, set_bits),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1913)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1914) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1915) __field( unsigned, owner )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1916) __field( u64, ino )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1917) __field( u64, rootid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1918) __field( u64, start )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1919) __field( u64, len )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1920) __field( unsigned, set_bits)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1921) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1922)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1923) TP_fast_assign_btrfs(tree->fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1924) __entry->owner = tree->owner;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1925) if (tree->private_data) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1926) const struct inode *inode = tree->private_data;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1927)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1928) __entry->ino = btrfs_ino(BTRFS_I(inode));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1929) __entry->rootid =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1930) BTRFS_I(inode)->root->root_key.objectid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1931) } else {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1932) __entry->ino = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1933) __entry->rootid = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1934) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1935) __entry->start = start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1936) __entry->len = len;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1937) __entry->set_bits = set_bits;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1938) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1939)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1940) TP_printk_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1941) "io_tree=%s ino=%llu root=%llu start=%llu len=%llu set_bits=%s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1942) __print_symbolic(__entry->owner, IO_TREE_OWNER), __entry->ino,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1943) __entry->rootid, __entry->start, __entry->len,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1944) __print_flags(__entry->set_bits, "|", EXTENT_FLAGS))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1945) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1946)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1947) TRACE_EVENT(btrfs_clear_extent_bit,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1948) TP_PROTO(const struct extent_io_tree *tree,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1949) u64 start, u64 len, unsigned clear_bits),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1950)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1951) TP_ARGS(tree, start, len, clear_bits),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1952)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1953) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1954) __field( unsigned, owner )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1955) __field( u64, ino )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1956) __field( u64, rootid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1957) __field( u64, start )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1958) __field( u64, len )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1959) __field( unsigned, clear_bits)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1960) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1961)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1962) TP_fast_assign_btrfs(tree->fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1963) __entry->owner = tree->owner;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1964) if (tree->private_data) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1965) const struct inode *inode = tree->private_data;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1966)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1967) __entry->ino = btrfs_ino(BTRFS_I(inode));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1968) __entry->rootid =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1969) BTRFS_I(inode)->root->root_key.objectid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1970) } else {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1971) __entry->ino = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1972) __entry->rootid = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1973) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1974) __entry->start = start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1975) __entry->len = len;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1976) __entry->clear_bits = clear_bits;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1977) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1978)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1979) TP_printk_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1980) "io_tree=%s ino=%llu root=%llu start=%llu len=%llu clear_bits=%s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1981) __print_symbolic(__entry->owner, IO_TREE_OWNER), __entry->ino,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1982) __entry->rootid, __entry->start, __entry->len,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1983) __print_flags(__entry->clear_bits, "|", EXTENT_FLAGS))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1984) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1985)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1986) TRACE_EVENT(btrfs_convert_extent_bit,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1987) TP_PROTO(const struct extent_io_tree *tree,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1988) u64 start, u64 len, unsigned set_bits, unsigned clear_bits),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1989)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1990) TP_ARGS(tree, start, len, set_bits, clear_bits),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1991)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1992) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1993) __field( unsigned, owner )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1994) __field( u64, ino )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1995) __field( u64, rootid )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1996) __field( u64, start )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1997) __field( u64, len )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1998) __field( unsigned, set_bits)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1999) __field( unsigned, clear_bits)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2000) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2001)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2002) TP_fast_assign_btrfs(tree->fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2003) __entry->owner = tree->owner;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2004) if (tree->private_data) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2005) const struct inode *inode = tree->private_data;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2006)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2007) __entry->ino = btrfs_ino(BTRFS_I(inode));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2008) __entry->rootid =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2009) BTRFS_I(inode)->root->root_key.objectid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2010) } else {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2011) __entry->ino = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2012) __entry->rootid = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2013) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2014) __entry->start = start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2015) __entry->len = len;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2016) __entry->set_bits = set_bits;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2017) __entry->clear_bits = clear_bits;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2018) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2019)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2020) TP_printk_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2021) "io_tree=%s ino=%llu root=%llu start=%llu len=%llu set_bits=%s clear_bits=%s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2022) __print_symbolic(__entry->owner, IO_TREE_OWNER), __entry->ino,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2023) __entry->rootid, __entry->start, __entry->len,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2024) __print_flags(__entry->set_bits , "|", EXTENT_FLAGS),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2025) __print_flags(__entry->clear_bits, "|", EXTENT_FLAGS))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2026) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2027)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2028) DECLARE_EVENT_CLASS(btrfs_sleep_tree_lock,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2029) TP_PROTO(const struct extent_buffer *eb, u64 start_ns),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2030)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2031) TP_ARGS(eb, start_ns),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2032)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2033) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2034) __field( u64, block )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2035) __field( u64, generation )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2036) __field( u64, start_ns )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2037) __field( u64, end_ns )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2038) __field( u64, diff_ns )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2039) __field( u64, owner )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2040) __field( int, is_log_tree )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2041) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2042)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2043) TP_fast_assign_btrfs(eb->fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2044) __entry->block = eb->start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2045) __entry->generation = btrfs_header_generation(eb);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2046) __entry->start_ns = start_ns;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2047) __entry->end_ns = ktime_get_ns();
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2048) __entry->diff_ns = __entry->end_ns - start_ns;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2049) __entry->owner = btrfs_header_owner(eb);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2050) __entry->is_log_tree = (eb->log_index >= 0);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2051) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2052)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2053) TP_printk_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2054) "block=%llu generation=%llu start_ns=%llu end_ns=%llu diff_ns=%llu owner=%llu is_log_tree=%d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2055) __entry->block, __entry->generation,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2056) __entry->start_ns, __entry->end_ns, __entry->diff_ns,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2057) __entry->owner, __entry->is_log_tree)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2058) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2059)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2060) DEFINE_EVENT(btrfs_sleep_tree_lock, btrfs_tree_read_lock,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2061) TP_PROTO(const struct extent_buffer *eb, u64 start_ns),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2062)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2063) TP_ARGS(eb, start_ns)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2064) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2065)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2066) DEFINE_EVENT(btrfs_sleep_tree_lock, btrfs_tree_lock,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2067) TP_PROTO(const struct extent_buffer *eb, u64 start_ns),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2068)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2069) TP_ARGS(eb, start_ns)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2070) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2071)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2072) DECLARE_EVENT_CLASS(btrfs_locking_events,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2073) TP_PROTO(const struct extent_buffer *eb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2074)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2075) TP_ARGS(eb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2076)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2077) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2078) __field( u64, block )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2079) __field( u64, generation )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2080) __field( u64, owner )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2081) __field( int, is_log_tree )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2082) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2083)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2084) TP_fast_assign_btrfs(eb->fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2085) __entry->block = eb->start;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2086) __entry->generation = btrfs_header_generation(eb);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2087) __entry->owner = btrfs_header_owner(eb);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2088) __entry->is_log_tree = (eb->log_index >= 0);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2089) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2090)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2091) TP_printk_btrfs("block=%llu generation=%llu owner=%llu is_log_tree=%d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2092) __entry->block, __entry->generation,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2093) __entry->owner, __entry->is_log_tree)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2094) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2095)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2096) #define DEFINE_BTRFS_LOCK_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2097) DEFINE_EVENT(btrfs_locking_events, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2098) TP_PROTO(const struct extent_buffer *eb), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2099) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2100) TP_ARGS(eb) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2101) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2102)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2103) DEFINE_BTRFS_LOCK_EVENT(btrfs_tree_unlock);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2104) DEFINE_BTRFS_LOCK_EVENT(btrfs_tree_read_unlock);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2105) DEFINE_BTRFS_LOCK_EVENT(btrfs_tree_read_unlock_blocking);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2106) DEFINE_BTRFS_LOCK_EVENT(btrfs_set_lock_blocking_read);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2107) DEFINE_BTRFS_LOCK_EVENT(btrfs_set_lock_blocking_write);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2108) DEFINE_BTRFS_LOCK_EVENT(btrfs_try_tree_read_lock);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2109) DEFINE_BTRFS_LOCK_EVENT(btrfs_try_tree_write_lock);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2110) DEFINE_BTRFS_LOCK_EVENT(btrfs_tree_read_lock_atomic);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2111)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2112) DECLARE_EVENT_CLASS(btrfs__space_info_update,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2113)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2114) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2115) const struct btrfs_space_info *sinfo, u64 old, s64 diff),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2116)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2117) TP_ARGS(fs_info, sinfo, old, diff),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2118)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2119) TP_STRUCT__entry_btrfs(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2120) __field( u64, type )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2121) __field( u64, old )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2122) __field( s64, diff )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2123) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2124)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2125) TP_fast_assign_btrfs(fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2126) __entry->type = sinfo->flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2127) __entry->old = old;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2128) __entry->diff = diff;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2129) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2130) TP_printk_btrfs("type=%s old=%llu diff=%lld",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2131) __print_flags(__entry->type, "|", BTRFS_GROUP_FLAGS),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2132) __entry->old, __entry->diff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2133) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2134)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2135) DEFINE_EVENT(btrfs__space_info_update, update_bytes_may_use,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2136)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2137) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2138) const struct btrfs_space_info *sinfo, u64 old, s64 diff),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2139)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2140) TP_ARGS(fs_info, sinfo, old, diff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2141) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2142)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2143) DEFINE_EVENT(btrfs__space_info_update, update_bytes_pinned,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2144)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2145) TP_PROTO(const struct btrfs_fs_info *fs_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2146) const struct btrfs_space_info *sinfo, u64 old, s64 diff),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2147)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2148) TP_ARGS(fs_info, sinfo, old, diff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2149) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2150)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2151) #endif /* _TRACE_BTRFS_H */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2152)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2153) /* This part must be outside protection */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2154) #include <trace/define_trace.h>