Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^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>