2 #define TRACE_SYSTEM btrfs
4 #if !defined(_TRACE_BTRFS_H) || defined(TRACE_HEADER_MULTI_READ)
7 #include <linux/writeback.h>
8 #include <linux/tracepoint.h>
14 struct btrfs_ordered_extent;
15 struct btrfs_delayed_ref_node;
16 struct btrfs_delayed_tree_ref;
17 struct btrfs_delayed_data_ref;
18 struct btrfs_delayed_ref_head;
19 struct btrfs_block_group_cache;
20 struct btrfs_free_cluster;
24 #define show_ref_type(type) \
25 __print_symbolic(type, \
26 { BTRFS_TREE_BLOCK_REF_KEY, "TREE_BLOCK_REF" }, \
27 { BTRFS_EXTENT_DATA_REF_KEY, "EXTENT_DATA_REF" }, \
28 { BTRFS_EXTENT_REF_V0_KEY, "EXTENT_REF_V0" }, \
29 { BTRFS_SHARED_BLOCK_REF_KEY, "SHARED_BLOCK_REF" }, \
30 { BTRFS_SHARED_DATA_REF_KEY, "SHARED_DATA_REF" })
32 #define __show_root_type(obj) \
33 __print_symbolic_u64(obj, \
34 { BTRFS_ROOT_TREE_OBJECTID, "ROOT_TREE" }, \
35 { BTRFS_EXTENT_TREE_OBJECTID, "EXTENT_TREE" }, \
36 { BTRFS_CHUNK_TREE_OBJECTID, "CHUNK_TREE" }, \
37 { BTRFS_DEV_TREE_OBJECTID, "DEV_TREE" }, \
38 { BTRFS_FS_TREE_OBJECTID, "FS_TREE" }, \
39 { BTRFS_ROOT_TREE_DIR_OBJECTID, "ROOT_TREE_DIR" }, \
40 { BTRFS_CSUM_TREE_OBJECTID, "CSUM_TREE" }, \
41 { BTRFS_TREE_LOG_OBJECTID, "TREE_LOG" }, \
42 { BTRFS_TREE_RELOC_OBJECTID, "TREE_RELOC" }, \
43 { BTRFS_DATA_RELOC_TREE_OBJECTID, "DATA_RELOC_TREE" })
45 #define show_root_type(obj) \
46 obj, ((obj >= BTRFS_DATA_RELOC_TREE_OBJECTID) || \
47 (obj <= BTRFS_CSUM_TREE_OBJECTID )) ? __show_root_type(obj) : "-"
49 #define BTRFS_GROUP_FLAGS \
50 { BTRFS_BLOCK_GROUP_DATA, "DATA"}, \
51 { BTRFS_BLOCK_GROUP_SYSTEM, "SYSTEM"}, \
52 { BTRFS_BLOCK_GROUP_METADATA, "METADATA"}, \
53 { BTRFS_BLOCK_GROUP_RAID0, "RAID0"}, \
54 { BTRFS_BLOCK_GROUP_RAID1, "RAID1"}, \
55 { BTRFS_BLOCK_GROUP_DUP, "DUP"}, \
56 { BTRFS_BLOCK_GROUP_RAID10, "RAID10"}
58 TRACE_EVENT(btrfs_transaction_commit,
60 TP_PROTO(struct btrfs_root *root),
65 __field( u64, generation )
66 __field( u64, root_objectid )
70 __entry->generation = root->fs_info->generation;
71 __entry->root_objectid = root->root_key.objectid;
74 TP_printk("root = %llu(%s), gen = %llu",
75 show_root_type(__entry->root_objectid),
76 (unsigned long long)__entry->generation)
79 DECLARE_EVENT_CLASS(btrfs__inode,
81 TP_PROTO(struct inode *inode),
87 __field( blkcnt_t, blocks )
88 __field( u64, disk_i_size )
89 __field( u64, generation )
90 __field( u64, last_trans )
91 __field( u64, logged_trans )
92 __field( u64, root_objectid )
96 __entry->ino = inode->i_ino;
97 __entry->blocks = inode->i_blocks;
98 __entry->disk_i_size = BTRFS_I(inode)->disk_i_size;
99 __entry->generation = BTRFS_I(inode)->generation;
100 __entry->last_trans = BTRFS_I(inode)->last_trans;
101 __entry->logged_trans = BTRFS_I(inode)->logged_trans;
102 __entry->root_objectid =
103 BTRFS_I(inode)->root->root_key.objectid;
106 TP_printk("root = %llu(%s), gen = %llu, ino = %lu, blocks = %llu, "
107 "disk_i_size = %llu, last_trans = %llu, logged_trans = %llu",
108 show_root_type(__entry->root_objectid),
109 (unsigned long long)__entry->generation,
110 (unsigned long)__entry->ino,
111 (unsigned long long)__entry->blocks,
112 (unsigned long long)__entry->disk_i_size,
113 (unsigned long long)__entry->last_trans,
114 (unsigned long long)__entry->logged_trans)
117 DEFINE_EVENT(btrfs__inode, btrfs_inode_new,
119 TP_PROTO(struct inode *inode),
124 DEFINE_EVENT(btrfs__inode, btrfs_inode_request,
126 TP_PROTO(struct inode *inode),
131 DEFINE_EVENT(btrfs__inode, btrfs_inode_evict,
133 TP_PROTO(struct inode *inode),
138 #define __show_map_type(type) \
139 __print_symbolic_u64(type, \
140 { EXTENT_MAP_LAST_BYTE, "LAST_BYTE" }, \
141 { EXTENT_MAP_HOLE, "HOLE" }, \
142 { EXTENT_MAP_INLINE, "INLINE" }, \
143 { EXTENT_MAP_DELALLOC, "DELALLOC" })
145 #define show_map_type(type) \
146 type, (type >= EXTENT_MAP_LAST_BYTE) ? "-" : __show_map_type(type)
148 #define show_map_flags(flag) \
149 __print_flags(flag, "|", \
150 { EXTENT_FLAG_PINNED, "PINNED" }, \
151 { EXTENT_FLAG_COMPRESSED, "COMPRESSED" }, \
152 { EXTENT_FLAG_VACANCY, "VACANCY" }, \
153 { EXTENT_FLAG_PREALLOC, "PREALLOC" })
155 TRACE_EVENT(btrfs_get_extent,
157 TP_PROTO(struct btrfs_root *root, struct extent_map *map),
162 __field( u64, root_objectid )
163 __field( u64, start )
165 __field( u64, orig_start )
166 __field( u64, block_start )
167 __field( u64, block_len )
168 __field( unsigned long, flags )
170 __field( unsigned int, compress_type )
174 __entry->root_objectid = root->root_key.objectid;
175 __entry->start = map->start;
176 __entry->len = map->len;
177 __entry->orig_start = map->orig_start;
178 __entry->block_start = map->block_start;
179 __entry->block_len = map->block_len;
180 __entry->flags = map->flags;
181 __entry->refs = atomic_read(&map->refs);
182 __entry->compress_type = map->compress_type;
185 TP_printk("root = %llu(%s), start = %llu, len = %llu, "
186 "orig_start = %llu, block_start = %llu(%s), "
187 "block_len = %llu, flags = %s, refs = %u, "
188 "compress_type = %u",
189 show_root_type(__entry->root_objectid),
190 (unsigned long long)__entry->start,
191 (unsigned long long)__entry->len,
192 (unsigned long long)__entry->orig_start,
193 show_map_type(__entry->block_start),
194 (unsigned long long)__entry->block_len,
195 show_map_flags(__entry->flags),
196 __entry->refs, __entry->compress_type)
199 #define show_ordered_flags(flags) \
200 __print_symbolic(flags, \
201 { BTRFS_ORDERED_IO_DONE, "IO_DONE" }, \
202 { BTRFS_ORDERED_COMPLETE, "COMPLETE" }, \
203 { BTRFS_ORDERED_NOCOW, "NOCOW" }, \
204 { BTRFS_ORDERED_COMPRESSED, "COMPRESSED" }, \
205 { BTRFS_ORDERED_PREALLOC, "PREALLOC" }, \
206 { BTRFS_ORDERED_DIRECT, "DIRECT" })
208 DECLARE_EVENT_CLASS(btrfs__ordered_extent,
210 TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered),
212 TP_ARGS(inode, ordered),
215 __field( ino_t, ino )
216 __field( u64, file_offset )
217 __field( u64, start )
219 __field( u64, disk_len )
220 __field( u64, bytes_left )
221 __field( unsigned long, flags )
222 __field( int, compress_type )
224 __field( u64, root_objectid )
228 __entry->ino = inode->i_ino;
229 __entry->file_offset = ordered->file_offset;
230 __entry->start = ordered->start;
231 __entry->len = ordered->len;
232 __entry->disk_len = ordered->disk_len;
233 __entry->bytes_left = ordered->bytes_left;
234 __entry->flags = ordered->flags;
235 __entry->compress_type = ordered->compress_type;
236 __entry->refs = atomic_read(&ordered->refs);
237 __entry->root_objectid =
238 BTRFS_I(inode)->root->root_key.objectid;
241 TP_printk("root = %llu(%s), ino = %llu, file_offset = %llu, "
242 "start = %llu, len = %llu, disk_len = %llu, "
243 "bytes_left = %llu, flags = %s, compress_type = %d, "
245 show_root_type(__entry->root_objectid),
246 (unsigned long long)__entry->ino,
247 (unsigned long long)__entry->file_offset,
248 (unsigned long long)__entry->start,
249 (unsigned long long)__entry->len,
250 (unsigned long long)__entry->disk_len,
251 (unsigned long long)__entry->bytes_left,
252 show_ordered_flags(__entry->flags),
253 __entry->compress_type, __entry->refs)
256 DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_add,
258 TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered),
260 TP_ARGS(inode, ordered)
263 DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_remove,
265 TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered),
267 TP_ARGS(inode, ordered)
270 DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_start,
272 TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered),
274 TP_ARGS(inode, ordered)
277 DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_put,
279 TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered),
281 TP_ARGS(inode, ordered)
284 DECLARE_EVENT_CLASS(btrfs__writepage,
286 TP_PROTO(struct page *page, struct inode *inode,
287 struct writeback_control *wbc),
289 TP_ARGS(page, inode, wbc),
292 __field( ino_t, ino )
293 __field( pgoff_t, index )
294 __field( long, nr_to_write )
295 __field( long, pages_skipped )
296 __field( loff_t, range_start )
297 __field( loff_t, range_end )
298 __field( char, for_kupdate )
299 __field( char, for_reclaim )
300 __field( char, range_cyclic )
301 __field( pgoff_t, writeback_index )
302 __field( u64, root_objectid )
306 __entry->ino = inode->i_ino;
307 __entry->index = page->index;
308 __entry->nr_to_write = wbc->nr_to_write;
309 __entry->pages_skipped = wbc->pages_skipped;
310 __entry->range_start = wbc->range_start;
311 __entry->range_end = wbc->range_end;
312 __entry->for_kupdate = wbc->for_kupdate;
313 __entry->for_reclaim = wbc->for_reclaim;
314 __entry->range_cyclic = wbc->range_cyclic;
315 __entry->writeback_index = inode->i_mapping->writeback_index;
316 __entry->root_objectid =
317 BTRFS_I(inode)->root->root_key.objectid;
320 TP_printk("root = %llu(%s), ino = %lu, page_index = %lu, "
321 "nr_to_write = %ld, pages_skipped = %ld, range_start = %llu, "
322 "range_end = %llu, for_kupdate = %d, "
323 "for_reclaim = %d, range_cyclic = %d, writeback_index = %lu",
324 show_root_type(__entry->root_objectid),
325 (unsigned long)__entry->ino, __entry->index,
326 __entry->nr_to_write, __entry->pages_skipped,
327 __entry->range_start, __entry->range_end,
328 __entry->for_kupdate,
329 __entry->for_reclaim, __entry->range_cyclic,
330 (unsigned long)__entry->writeback_index)
333 DEFINE_EVENT(btrfs__writepage, __extent_writepage,
335 TP_PROTO(struct page *page, struct inode *inode,
336 struct writeback_control *wbc),
338 TP_ARGS(page, inode, wbc)
341 TRACE_EVENT(btrfs_writepage_end_io_hook,
343 TP_PROTO(struct page *page, u64 start, u64 end, int uptodate),
345 TP_ARGS(page, start, end, uptodate),
348 __field( ino_t, ino )
349 __field( pgoff_t, index )
350 __field( u64, start )
352 __field( int, uptodate )
353 __field( u64, root_objectid )
357 __entry->ino = page->mapping->host->i_ino;
358 __entry->index = page->index;
359 __entry->start = start;
361 __entry->uptodate = uptodate;
362 __entry->root_objectid =
363 BTRFS_I(page->mapping->host)->root->root_key.objectid;
366 TP_printk("root = %llu(%s), ino = %lu, page_index = %lu, start = %llu, "
367 "end = %llu, uptodate = %d",
368 show_root_type(__entry->root_objectid),
369 (unsigned long)__entry->ino, (unsigned long)__entry->index,
370 (unsigned long long)__entry->start,
371 (unsigned long long)__entry->end, __entry->uptodate)
374 TRACE_EVENT(btrfs_sync_file,
376 TP_PROTO(struct file *file, int datasync),
378 TP_ARGS(file, datasync),
381 __field( ino_t, ino )
382 __field( ino_t, parent )
383 __field( int, datasync )
384 __field( u64, root_objectid )
388 struct dentry *dentry = file->f_path.dentry;
389 struct inode *inode = dentry->d_inode;
391 __entry->ino = inode->i_ino;
392 __entry->parent = dentry->d_parent->d_inode->i_ino;
393 __entry->datasync = datasync;
394 __entry->root_objectid =
395 BTRFS_I(inode)->root->root_key.objectid;
398 TP_printk("root = %llu(%s), ino = %ld, parent = %ld, datasync = %d",
399 show_root_type(__entry->root_objectid),
400 (unsigned long)__entry->ino, (unsigned long)__entry->parent,
404 TRACE_EVENT(btrfs_sync_fs,
415 __entry->wait = wait;
418 TP_printk("wait = %d", __entry->wait)
421 #define show_ref_action(action) \
422 __print_symbolic(action, \
423 { BTRFS_ADD_DELAYED_REF, "ADD_DELAYED_REF" }, \
424 { BTRFS_DROP_DELAYED_REF, "DROP_DELAYED_REF" }, \
425 { BTRFS_ADD_DELAYED_EXTENT, "ADD_DELAYED_EXTENT" }, \
426 { BTRFS_UPDATE_DELAYED_HEAD, "UPDATE_DELAYED_HEAD" })
429 TRACE_EVENT(btrfs_delayed_tree_ref,
431 TP_PROTO(struct btrfs_delayed_ref_node *ref,
432 struct btrfs_delayed_tree_ref *full_ref,
435 TP_ARGS(ref, full_ref, action),
438 __field( u64, bytenr )
439 __field( u64, num_bytes )
440 __field( int, action )
441 __field( u64, parent )
442 __field( u64, ref_root )
443 __field( int, level )
448 __entry->bytenr = ref->bytenr;
449 __entry->num_bytes = ref->num_bytes;
450 __entry->action = action;
451 __entry->parent = full_ref->parent;
452 __entry->ref_root = full_ref->root;
453 __entry->level = full_ref->level;
454 __entry->type = ref->type;
457 TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, "
458 "parent = %llu(%s), ref_root = %llu(%s), level = %d, "
460 (unsigned long long)__entry->bytenr,
461 (unsigned long long)__entry->num_bytes,
462 show_ref_action(__entry->action),
463 show_root_type(__entry->parent),
464 show_root_type(__entry->ref_root),
465 __entry->level, show_ref_type(__entry->type))
468 TRACE_EVENT(btrfs_delayed_data_ref,
470 TP_PROTO(struct btrfs_delayed_ref_node *ref,
471 struct btrfs_delayed_data_ref *full_ref,
474 TP_ARGS(ref, full_ref, action),
477 __field( u64, bytenr )
478 __field( u64, num_bytes )
479 __field( int, action )
480 __field( u64, parent )
481 __field( u64, ref_root )
482 __field( u64, owner )
483 __field( u64, offset )
488 __entry->bytenr = ref->bytenr;
489 __entry->num_bytes = ref->num_bytes;
490 __entry->action = action;
491 __entry->parent = full_ref->parent;
492 __entry->ref_root = full_ref->root;
493 __entry->owner = full_ref->objectid;
494 __entry->offset = full_ref->offset;
495 __entry->type = ref->type;
498 TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, "
499 "parent = %llu(%s), ref_root = %llu(%s), owner = %llu, "
500 "offset = %llu, type = %s",
501 (unsigned long long)__entry->bytenr,
502 (unsigned long long)__entry->num_bytes,
503 show_ref_action(__entry->action),
504 show_root_type(__entry->parent),
505 show_root_type(__entry->ref_root),
506 (unsigned long long)__entry->owner,
507 (unsigned long long)__entry->offset,
508 show_ref_type(__entry->type))
511 TRACE_EVENT(btrfs_delayed_ref_head,
513 TP_PROTO(struct btrfs_delayed_ref_node *ref,
514 struct btrfs_delayed_ref_head *head_ref,
517 TP_ARGS(ref, head_ref, action),
520 __field( u64, bytenr )
521 __field( u64, num_bytes )
522 __field( int, action )
523 __field( int, is_data )
527 __entry->bytenr = ref->bytenr;
528 __entry->num_bytes = ref->num_bytes;
529 __entry->action = action;
530 __entry->is_data = head_ref->is_data;
533 TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, is_data = %d",
534 (unsigned long long)__entry->bytenr,
535 (unsigned long long)__entry->num_bytes,
536 show_ref_action(__entry->action),
540 #define show_chunk_type(type) \
541 __print_flags(type, "|", \
542 { BTRFS_BLOCK_GROUP_DATA, "DATA" }, \
543 { BTRFS_BLOCK_GROUP_SYSTEM, "SYSTEM"}, \
544 { BTRFS_BLOCK_GROUP_METADATA, "METADATA"}, \
545 { BTRFS_BLOCK_GROUP_RAID0, "RAID0" }, \
546 { BTRFS_BLOCK_GROUP_RAID1, "RAID1" }, \
547 { BTRFS_BLOCK_GROUP_DUP, "DUP" }, \
548 { BTRFS_BLOCK_GROUP_RAID10, "RAID10"})
550 DECLARE_EVENT_CLASS(btrfs__chunk,
552 TP_PROTO(struct btrfs_root *root, struct map_lookup *map,
553 u64 offset, u64 size),
555 TP_ARGS(root, map, offset, size),
558 __field( int, num_stripes )
560 __field( int, sub_stripes )
561 __field( u64, offset )
563 __field( u64, root_objectid )
567 __entry->num_stripes = map->num_stripes;
568 __entry->type = map->type;
569 __entry->sub_stripes = map->sub_stripes;
570 __entry->offset = offset;
571 __entry->size = size;
572 __entry->root_objectid = root->root_key.objectid;
575 TP_printk("root = %llu(%s), offset = %llu, size = %llu, "
576 "num_stripes = %d, sub_stripes = %d, type = %s",
577 show_root_type(__entry->root_objectid),
578 (unsigned long long)__entry->offset,
579 (unsigned long long)__entry->size,
580 __entry->num_stripes, __entry->sub_stripes,
581 show_chunk_type(__entry->type))
584 DEFINE_EVENT(btrfs__chunk, btrfs_chunk_alloc,
586 TP_PROTO(struct btrfs_root *root, struct map_lookup *map,
587 u64 offset, u64 size),
589 TP_ARGS(root, map, offset, size)
592 DEFINE_EVENT(btrfs__chunk, btrfs_chunk_free,
594 TP_PROTO(struct btrfs_root *root, struct map_lookup *map,
595 u64 offset, u64 size),
597 TP_ARGS(root, map, offset, size)
600 TRACE_EVENT(btrfs_cow_block,
602 TP_PROTO(struct btrfs_root *root, struct extent_buffer *buf,
603 struct extent_buffer *cow),
605 TP_ARGS(root, buf, cow),
608 __field( u64, root_objectid )
609 __field( u64, buf_start )
611 __field( u64, cow_start )
612 __field( int, buf_level )
613 __field( int, cow_level )
617 __entry->root_objectid = root->root_key.objectid;
618 __entry->buf_start = buf->start;
619 __entry->refs = atomic_read(&buf->refs);
620 __entry->cow_start = cow->start;
621 __entry->buf_level = btrfs_header_level(buf);
622 __entry->cow_level = btrfs_header_level(cow);
625 TP_printk("root = %llu(%s), refs = %d, orig_buf = %llu "
626 "(orig_level = %d), cow_buf = %llu (cow_level = %d)",
627 show_root_type(__entry->root_objectid),
629 (unsigned long long)__entry->buf_start,
631 (unsigned long long)__entry->cow_start,
635 DECLARE_EVENT_CLASS(btrfs__reserved_extent,
637 TP_PROTO(struct btrfs_root *root, u64 start, u64 len),
639 TP_ARGS(root, start, len),
642 __field( u64, root_objectid )
643 __field( u64, start )
648 __entry->root_objectid = root->root_key.objectid;
649 __entry->start = start;
653 TP_printk("root = %llu(%s), start = %llu, len = %llu",
654 show_root_type(__entry->root_objectid),
655 (unsigned long long)__entry->start,
656 (unsigned long long)__entry->len)
659 DEFINE_EVENT(btrfs__reserved_extent, btrfs_reserved_extent_alloc,
661 TP_PROTO(struct btrfs_root *root, u64 start, u64 len),
663 TP_ARGS(root, start, len)
666 DEFINE_EVENT(btrfs__reserved_extent, btrfs_reserved_extent_free,
668 TP_PROTO(struct btrfs_root *root, u64 start, u64 len),
670 TP_ARGS(root, start, len)
673 TRACE_EVENT(find_free_extent,
675 TP_PROTO(struct btrfs_root *root, u64 num_bytes, u64 empty_size,
678 TP_ARGS(root, num_bytes, empty_size, data),
681 __field( u64, root_objectid )
682 __field( u64, num_bytes )
683 __field( u64, empty_size )
688 __entry->root_objectid = root->root_key.objectid;
689 __entry->num_bytes = num_bytes;
690 __entry->empty_size = empty_size;
691 __entry->data = data;
694 TP_printk("root = %Lu(%s), len = %Lu, empty_size = %Lu, "
695 "flags = %Lu(%s)", show_root_type(__entry->root_objectid),
696 __entry->num_bytes, __entry->empty_size, __entry->data,
697 __print_flags((unsigned long)__entry->data, "|",
701 DECLARE_EVENT_CLASS(btrfs__reserve_extent,
703 TP_PROTO(struct btrfs_root *root,
704 struct btrfs_block_group_cache *block_group, u64 start,
707 TP_ARGS(root, block_group, start, len),
710 __field( u64, root_objectid )
711 __field( u64, bg_objectid )
712 __field( u64, flags )
713 __field( u64, start )
718 __entry->root_objectid = root->root_key.objectid;
719 __entry->bg_objectid = block_group->key.objectid;
720 __entry->flags = block_group->flags;
721 __entry->start = start;
725 TP_printk("root = %Lu(%s), block_group = %Lu, flags = %Lu(%s), "
726 "start = %Lu, len = %Lu",
727 show_root_type(__entry->root_objectid), __entry->bg_objectid,
728 __entry->flags, __print_flags((unsigned long)__entry->flags,
729 "|", BTRFS_GROUP_FLAGS),
730 __entry->start, __entry->len)
733 DEFINE_EVENT(btrfs__reserve_extent, btrfs_reserve_extent,
735 TP_PROTO(struct btrfs_root *root,
736 struct btrfs_block_group_cache *block_group, u64 start,
739 TP_ARGS(root, block_group, start, len)
742 DEFINE_EVENT(btrfs__reserve_extent, btrfs_reserve_extent_cluster,
744 TP_PROTO(struct btrfs_root *root,
745 struct btrfs_block_group_cache *block_group, u64 start,
748 TP_ARGS(root, block_group, start, len)
751 TRACE_EVENT(btrfs_find_cluster,
753 TP_PROTO(struct btrfs_block_group_cache *block_group, u64 start,
754 u64 bytes, u64 empty_size, u64 min_bytes),
756 TP_ARGS(block_group, start, bytes, empty_size, min_bytes),
759 __field( u64, bg_objectid )
760 __field( u64, flags )
761 __field( u64, start )
762 __field( u64, bytes )
763 __field( u64, empty_size )
764 __field( u64, min_bytes )
768 __entry->bg_objectid = block_group->key.objectid;
769 __entry->flags = block_group->flags;
770 __entry->start = start;
771 __entry->bytes = bytes;
772 __entry->empty_size = empty_size;
773 __entry->min_bytes = min_bytes;
776 TP_printk("block_group = %Lu, flags = %Lu(%s), start = %Lu, len = %Lu,"
777 " empty_size = %Lu, min_bytes = %Lu", __entry->bg_objectid,
779 __print_flags((unsigned long)__entry->flags, "|",
780 BTRFS_GROUP_FLAGS), __entry->start,
781 __entry->bytes, __entry->empty_size, __entry->min_bytes)
784 TRACE_EVENT(btrfs_failed_cluster_setup,
786 TP_PROTO(struct btrfs_block_group_cache *block_group),
788 TP_ARGS(block_group),
791 __field( u64, bg_objectid )
795 __entry->bg_objectid = block_group->key.objectid;
798 TP_printk("block_group = %Lu", __entry->bg_objectid)
801 TRACE_EVENT(btrfs_setup_cluster,
803 TP_PROTO(struct btrfs_block_group_cache *block_group,
804 struct btrfs_free_cluster *cluster, u64 size, int bitmap),
806 TP_ARGS(block_group, cluster, size, bitmap),
809 __field( u64, bg_objectid )
810 __field( u64, flags )
811 __field( u64, start )
812 __field( u64, max_size )
814 __field( int, bitmap )
818 __entry->bg_objectid = block_group->key.objectid;
819 __entry->flags = block_group->flags;
820 __entry->start = cluster->window_start;
821 __entry->max_size = cluster->max_size;
822 __entry->size = size;
823 __entry->bitmap = bitmap;
826 TP_printk("block_group = %Lu, flags = %Lu(%s), window_start = %Lu, "
827 "size = %Lu, max_size = %Lu, bitmap = %d",
828 __entry->bg_objectid,
830 __print_flags((unsigned long)__entry->flags, "|",
831 BTRFS_GROUP_FLAGS), __entry->start,
832 __entry->size, __entry->max_size, __entry->bitmap)
835 #endif /* _TRACE_BTRFS_H */
837 /* This part must be outside protection */
838 #include <trace/define_trace.h>