2 #define TRACE_SYSTEM ext4
4 #if !defined(_TRACE_EXT4_H) || defined(TRACE_HEADER_MULTI_READ)
7 #include <linux/writeback.h>
8 #include <linux/tracepoint.h>
10 struct ext4_allocation_context
;
11 struct ext4_allocation_request
;
13 struct ext4_prealloc_space
;
14 struct ext4_inode_info
;
16 struct ext4_map_blocks
;
20 #define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode))
22 TRACE_EVENT(ext4_free_inode
,
23 TP_PROTO(struct inode
*inode
),
32 __field( __u64
, blocks
)
33 __field( __u16
, mode
)
37 __entry
->dev
= inode
->i_sb
->s_dev
;
38 __entry
->ino
= inode
->i_ino
;
39 __entry
->uid
= i_uid_read(inode
);
40 __entry
->gid
= i_gid_read(inode
);
41 __entry
->blocks
= inode
->i_blocks
;
42 __entry
->mode
= inode
->i_mode
;
45 TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %llu",
46 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
47 (unsigned long) __entry
->ino
, __entry
->mode
,
48 __entry
->uid
, __entry
->gid
, __entry
->blocks
)
51 TRACE_EVENT(ext4_request_inode
,
52 TP_PROTO(struct inode
*dir
, int mode
),
59 __field( __u16
, mode
)
63 __entry
->dev
= dir
->i_sb
->s_dev
;
64 __entry
->dir
= dir
->i_ino
;
68 TP_printk("dev %d,%d dir %lu mode 0%o",
69 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
70 (unsigned long) __entry
->dir
, __entry
->mode
)
73 TRACE_EVENT(ext4_allocate_inode
,
74 TP_PROTO(struct inode
*inode
, struct inode
*dir
, int mode
),
76 TP_ARGS(inode
, dir
, mode
),
82 __field( __u16
, mode
)
86 __entry
->dev
= inode
->i_sb
->s_dev
;
87 __entry
->ino
= inode
->i_ino
;
88 __entry
->dir
= dir
->i_ino
;
92 TP_printk("dev %d,%d ino %lu dir %lu mode 0%o",
93 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
94 (unsigned long) __entry
->ino
,
95 (unsigned long) __entry
->dir
, __entry
->mode
)
98 TRACE_EVENT(ext4_evict_inode
,
99 TP_PROTO(struct inode
*inode
),
104 __field( dev_t
, dev
)
105 __field( ino_t
, ino
)
106 __field( int, nlink
)
110 __entry
->dev
= inode
->i_sb
->s_dev
;
111 __entry
->ino
= inode
->i_ino
;
112 __entry
->nlink
= inode
->i_nlink
;
115 TP_printk("dev %d,%d ino %lu nlink %d",
116 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
117 (unsigned long) __entry
->ino
, __entry
->nlink
)
120 TRACE_EVENT(ext4_drop_inode
,
121 TP_PROTO(struct inode
*inode
, int drop
),
123 TP_ARGS(inode
, drop
),
126 __field( dev_t
, dev
)
127 __field( ino_t
, ino
)
132 __entry
->dev
= inode
->i_sb
->s_dev
;
133 __entry
->ino
= inode
->i_ino
;
134 __entry
->drop
= drop
;
137 TP_printk("dev %d,%d ino %lu drop %d",
138 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
139 (unsigned long) __entry
->ino
, __entry
->drop
)
142 TRACE_EVENT(ext4_mark_inode_dirty
,
143 TP_PROTO(struct inode
*inode
, unsigned long IP
),
148 __field( dev_t
, dev
)
149 __field( ino_t
, ino
)
150 __field(unsigned long, ip
)
154 __entry
->dev
= inode
->i_sb
->s_dev
;
155 __entry
->ino
= inode
->i_ino
;
159 TP_printk("dev %d,%d ino %lu caller %pF",
160 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
161 (unsigned long) __entry
->ino
, (void *)__entry
->ip
)
164 TRACE_EVENT(ext4_begin_ordered_truncate
,
165 TP_PROTO(struct inode
*inode
, loff_t new_size
),
167 TP_ARGS(inode
, new_size
),
170 __field( dev_t
, dev
)
171 __field( ino_t
, ino
)
172 __field( loff_t
, new_size
)
176 __entry
->dev
= inode
->i_sb
->s_dev
;
177 __entry
->ino
= inode
->i_ino
;
178 __entry
->new_size
= new_size
;
181 TP_printk("dev %d,%d ino %lu new_size %lld",
182 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
183 (unsigned long) __entry
->ino
,
187 DECLARE_EVENT_CLASS(ext4__write_begin
,
189 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
192 TP_ARGS(inode
, pos
, len
, flags
),
195 __field( dev_t
, dev
)
196 __field( ino_t
, ino
)
197 __field( loff_t
, pos
)
198 __field( unsigned int, len
)
199 __field( unsigned int, flags
)
203 __entry
->dev
= inode
->i_sb
->s_dev
;
204 __entry
->ino
= inode
->i_ino
;
207 __entry
->flags
= flags
;
210 TP_printk("dev %d,%d ino %lu pos %lld len %u flags %u",
211 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
212 (unsigned long) __entry
->ino
,
213 __entry
->pos
, __entry
->len
, __entry
->flags
)
216 DEFINE_EVENT(ext4__write_begin
, ext4_write_begin
,
218 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
221 TP_ARGS(inode
, pos
, len
, flags
)
224 DEFINE_EVENT(ext4__write_begin
, ext4_da_write_begin
,
226 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
229 TP_ARGS(inode
, pos
, len
, flags
)
232 DECLARE_EVENT_CLASS(ext4__write_end
,
233 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
234 unsigned int copied
),
236 TP_ARGS(inode
, pos
, len
, copied
),
239 __field( dev_t
, dev
)
240 __field( ino_t
, ino
)
241 __field( loff_t
, pos
)
242 __field( unsigned int, len
)
243 __field( unsigned int, copied
)
247 __entry
->dev
= inode
->i_sb
->s_dev
;
248 __entry
->ino
= inode
->i_ino
;
251 __entry
->copied
= copied
;
254 TP_printk("dev %d,%d ino %lu pos %lld len %u copied %u",
255 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
256 (unsigned long) __entry
->ino
,
257 __entry
->pos
, __entry
->len
, __entry
->copied
)
260 DEFINE_EVENT(ext4__write_end
, ext4_write_end
,
262 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
263 unsigned int copied
),
265 TP_ARGS(inode
, pos
, len
, copied
)
268 DEFINE_EVENT(ext4__write_end
, ext4_journalled_write_end
,
270 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
271 unsigned int copied
),
273 TP_ARGS(inode
, pos
, len
, copied
)
276 DEFINE_EVENT(ext4__write_end
, ext4_da_write_end
,
278 TP_PROTO(struct inode
*inode
, loff_t pos
, unsigned int len
,
279 unsigned int copied
),
281 TP_ARGS(inode
, pos
, len
, copied
)
284 TRACE_EVENT(ext4_da_writepages
,
285 TP_PROTO(struct inode
*inode
, struct writeback_control
*wbc
),
290 __field( dev_t
, dev
)
291 __field( ino_t
, ino
)
292 __field( long, nr_to_write
)
293 __field( long, pages_skipped
)
294 __field( loff_t
, range_start
)
295 __field( loff_t
, range_end
)
296 __field( pgoff_t
, writeback_index
)
297 __field( int, sync_mode
)
298 __field( char, for_kupdate
)
299 __field( char, range_cyclic
)
303 __entry
->dev
= inode
->i_sb
->s_dev
;
304 __entry
->ino
= inode
->i_ino
;
305 __entry
->nr_to_write
= wbc
->nr_to_write
;
306 __entry
->pages_skipped
= wbc
->pages_skipped
;
307 __entry
->range_start
= wbc
->range_start
;
308 __entry
->range_end
= wbc
->range_end
;
309 __entry
->writeback_index
= inode
->i_mapping
->writeback_index
;
310 __entry
->sync_mode
= wbc
->sync_mode
;
311 __entry
->for_kupdate
= wbc
->for_kupdate
;
312 __entry
->range_cyclic
= wbc
->range_cyclic
;
315 TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld "
316 "range_start %lld range_end %lld sync_mode %d "
317 "for_kupdate %d range_cyclic %d writeback_index %lu",
318 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
319 (unsigned long) __entry
->ino
, __entry
->nr_to_write
,
320 __entry
->pages_skipped
, __entry
->range_start
,
321 __entry
->range_end
, __entry
->sync_mode
,
322 __entry
->for_kupdate
, __entry
->range_cyclic
,
323 (unsigned long) __entry
->writeback_index
)
326 TRACE_EVENT(ext4_da_write_pages
,
327 TP_PROTO(struct inode
*inode
, struct mpage_da_data
*mpd
),
332 __field( dev_t
, dev
)
333 __field( ino_t
, ino
)
334 __field( __u64
, b_blocknr
)
335 __field( __u32
, b_size
)
336 __field( __u32
, b_state
)
337 __field( unsigned long, first_page
)
338 __field( int, io_done
)
339 __field( int, pages_written
)
340 __field( int, sync_mode
)
344 __entry
->dev
= inode
->i_sb
->s_dev
;
345 __entry
->ino
= inode
->i_ino
;
346 __entry
->b_blocknr
= mpd
->b_blocknr
;
347 __entry
->b_size
= mpd
->b_size
;
348 __entry
->b_state
= mpd
->b_state
;
349 __entry
->first_page
= mpd
->first_page
;
350 __entry
->io_done
= mpd
->io_done
;
351 __entry
->pages_written
= mpd
->pages_written
;
352 __entry
->sync_mode
= mpd
->wbc
->sync_mode
;
355 TP_printk("dev %d,%d ino %lu b_blocknr %llu b_size %u b_state 0x%04x "
356 "first_page %lu io_done %d pages_written %d sync_mode %d",
357 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
358 (unsigned long) __entry
->ino
,
359 __entry
->b_blocknr
, __entry
->b_size
,
360 __entry
->b_state
, __entry
->first_page
,
361 __entry
->io_done
, __entry
->pages_written
,
366 TRACE_EVENT(ext4_da_writepages_result
,
367 TP_PROTO(struct inode
*inode
, struct writeback_control
*wbc
,
368 int ret
, int pages_written
),
370 TP_ARGS(inode
, wbc
, ret
, pages_written
),
373 __field( dev_t
, dev
)
374 __field( ino_t
, ino
)
376 __field( int, pages_written
)
377 __field( long, pages_skipped
)
378 __field( pgoff_t
, writeback_index
)
379 __field( int, sync_mode
)
383 __entry
->dev
= inode
->i_sb
->s_dev
;
384 __entry
->ino
= inode
->i_ino
;
386 __entry
->pages_written
= pages_written
;
387 __entry
->pages_skipped
= wbc
->pages_skipped
;
388 __entry
->writeback_index
= inode
->i_mapping
->writeback_index
;
389 __entry
->sync_mode
= wbc
->sync_mode
;
392 TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld "
393 "sync_mode %d writeback_index %lu",
394 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
395 (unsigned long) __entry
->ino
, __entry
->ret
,
396 __entry
->pages_written
, __entry
->pages_skipped
,
398 (unsigned long) __entry
->writeback_index
)
401 DECLARE_EVENT_CLASS(ext4__page_op
,
402 TP_PROTO(struct page
*page
),
407 __field( dev_t
, dev
)
408 __field( ino_t
, ino
)
409 __field( pgoff_t
, index
)
414 __entry
->dev
= page
->mapping
->host
->i_sb
->s_dev
;
415 __entry
->ino
= page
->mapping
->host
->i_ino
;
416 __entry
->index
= page
->index
;
419 TP_printk("dev %d,%d ino %lu page_index %lu",
420 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
421 (unsigned long) __entry
->ino
,
422 (unsigned long) __entry
->index
)
425 DEFINE_EVENT(ext4__page_op
, ext4_writepage
,
427 TP_PROTO(struct page
*page
),
432 DEFINE_EVENT(ext4__page_op
, ext4_readpage
,
434 TP_PROTO(struct page
*page
),
439 DEFINE_EVENT(ext4__page_op
, ext4_releasepage
,
441 TP_PROTO(struct page
*page
),
446 DECLARE_EVENT_CLASS(ext4_invalidatepage_op
,
447 TP_PROTO(struct page
*page
, unsigned long offset
),
449 TP_ARGS(page
, offset
),
452 __field( dev_t
, dev
)
453 __field( ino_t
, ino
)
454 __field( pgoff_t
, index
)
455 __field( unsigned long, offset
)
460 __entry
->dev
= page
->mapping
->host
->i_sb
->s_dev
;
461 __entry
->ino
= page
->mapping
->host
->i_ino
;
462 __entry
->index
= page
->index
;
463 __entry
->offset
= offset
;
466 TP_printk("dev %d,%d ino %lu page_index %lu offset %lu",
467 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
468 (unsigned long) __entry
->ino
,
469 (unsigned long) __entry
->index
, __entry
->offset
)
472 DEFINE_EVENT(ext4_invalidatepage_op
, ext4_invalidatepage
,
473 TP_PROTO(struct page
*page
, unsigned long offset
),
475 TP_ARGS(page
, offset
)
478 DEFINE_EVENT(ext4_invalidatepage_op
, ext4_journalled_invalidatepage
,
479 TP_PROTO(struct page
*page
, unsigned long offset
),
481 TP_ARGS(page
, offset
)
484 TRACE_EVENT(ext4_discard_blocks
,
485 TP_PROTO(struct super_block
*sb
, unsigned long long blk
,
486 unsigned long long count
),
488 TP_ARGS(sb
, blk
, count
),
491 __field( dev_t
, dev
)
492 __field( __u64
, blk
)
493 __field( __u64
, count
)
498 __entry
->dev
= sb
->s_dev
;
500 __entry
->count
= count
;
503 TP_printk("dev %d,%d blk %llu count %llu",
504 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
505 __entry
->blk
, __entry
->count
)
508 DECLARE_EVENT_CLASS(ext4__mb_new_pa
,
509 TP_PROTO(struct ext4_allocation_context
*ac
,
510 struct ext4_prealloc_space
*pa
),
515 __field( dev_t
, dev
)
516 __field( ino_t
, ino
)
517 __field( __u64
, pa_pstart
)
518 __field( __u64
, pa_lstart
)
519 __field( __u32
, pa_len
)
524 __entry
->dev
= ac
->ac_sb
->s_dev
;
525 __entry
->ino
= ac
->ac_inode
->i_ino
;
526 __entry
->pa_pstart
= pa
->pa_pstart
;
527 __entry
->pa_lstart
= pa
->pa_lstart
;
528 __entry
->pa_len
= pa
->pa_len
;
531 TP_printk("dev %d,%d ino %lu pstart %llu len %u lstart %llu",
532 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
533 (unsigned long) __entry
->ino
,
534 __entry
->pa_pstart
, __entry
->pa_len
, __entry
->pa_lstart
)
537 DEFINE_EVENT(ext4__mb_new_pa
, ext4_mb_new_inode_pa
,
539 TP_PROTO(struct ext4_allocation_context
*ac
,
540 struct ext4_prealloc_space
*pa
),
545 DEFINE_EVENT(ext4__mb_new_pa
, ext4_mb_new_group_pa
,
547 TP_PROTO(struct ext4_allocation_context
*ac
,
548 struct ext4_prealloc_space
*pa
),
553 TRACE_EVENT(ext4_mb_release_inode_pa
,
554 TP_PROTO(struct ext4_prealloc_space
*pa
,
555 unsigned long long block
, unsigned int count
),
557 TP_ARGS(pa
, block
, count
),
560 __field( dev_t
, dev
)
561 __field( ino_t
, ino
)
562 __field( __u64
, block
)
563 __field( __u32
, count
)
568 __entry
->dev
= pa
->pa_inode
->i_sb
->s_dev
;
569 __entry
->ino
= pa
->pa_inode
->i_ino
;
570 __entry
->block
= block
;
571 __entry
->count
= count
;
574 TP_printk("dev %d,%d ino %lu block %llu count %u",
575 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
576 (unsigned long) __entry
->ino
,
577 __entry
->block
, __entry
->count
)
580 TRACE_EVENT(ext4_mb_release_group_pa
,
581 TP_PROTO(struct super_block
*sb
, struct ext4_prealloc_space
*pa
),
586 __field( dev_t
, dev
)
587 __field( __u64
, pa_pstart
)
588 __field( __u32
, pa_len
)
593 __entry
->dev
= sb
->s_dev
;
594 __entry
->pa_pstart
= pa
->pa_pstart
;
595 __entry
->pa_len
= pa
->pa_len
;
598 TP_printk("dev %d,%d pstart %llu len %u",
599 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
600 __entry
->pa_pstart
, __entry
->pa_len
)
603 TRACE_EVENT(ext4_discard_preallocations
,
604 TP_PROTO(struct inode
*inode
),
609 __field( dev_t
, dev
)
610 __field( ino_t
, ino
)
615 __entry
->dev
= inode
->i_sb
->s_dev
;
616 __entry
->ino
= inode
->i_ino
;
619 TP_printk("dev %d,%d ino %lu",
620 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
621 (unsigned long) __entry
->ino
)
624 TRACE_EVENT(ext4_mb_discard_preallocations
,
625 TP_PROTO(struct super_block
*sb
, int needed
),
630 __field( dev_t
, dev
)
631 __field( int, needed
)
636 __entry
->dev
= sb
->s_dev
;
637 __entry
->needed
= needed
;
640 TP_printk("dev %d,%d needed %d",
641 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
645 TRACE_EVENT(ext4_request_blocks
,
646 TP_PROTO(struct ext4_allocation_request
*ar
),
651 __field( dev_t
, dev
)
652 __field( ino_t
, ino
)
653 __field( unsigned int, len
)
654 __field( __u32
, logical
)
655 __field( __u32
, lleft
)
656 __field( __u32
, lright
)
657 __field( __u64
, goal
)
658 __field( __u64
, pleft
)
659 __field( __u64
, pright
)
660 __field( unsigned int, flags
)
664 __entry
->dev
= ar
->inode
->i_sb
->s_dev
;
665 __entry
->ino
= ar
->inode
->i_ino
;
666 __entry
->len
= ar
->len
;
667 __entry
->logical
= ar
->logical
;
668 __entry
->goal
= ar
->goal
;
669 __entry
->lleft
= ar
->lleft
;
670 __entry
->lright
= ar
->lright
;
671 __entry
->pleft
= ar
->pleft
;
672 __entry
->pright
= ar
->pright
;
673 __entry
->flags
= ar
->flags
;
676 TP_printk("dev %d,%d ino %lu flags %u len %u lblk %u goal %llu "
677 "lleft %u lright %u pleft %llu pright %llu ",
678 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
679 (unsigned long) __entry
->ino
, __entry
->flags
,
680 __entry
->len
, __entry
->logical
, __entry
->goal
,
681 __entry
->lleft
, __entry
->lright
, __entry
->pleft
,
685 TRACE_EVENT(ext4_allocate_blocks
,
686 TP_PROTO(struct ext4_allocation_request
*ar
, unsigned long long block
),
691 __field( dev_t
, dev
)
692 __field( ino_t
, ino
)
693 __field( __u64
, block
)
694 __field( unsigned int, len
)
695 __field( __u32
, logical
)
696 __field( __u32
, lleft
)
697 __field( __u32
, lright
)
698 __field( __u64
, goal
)
699 __field( __u64
, pleft
)
700 __field( __u64
, pright
)
701 __field( unsigned int, flags
)
705 __entry
->dev
= ar
->inode
->i_sb
->s_dev
;
706 __entry
->ino
= ar
->inode
->i_ino
;
707 __entry
->block
= block
;
708 __entry
->len
= ar
->len
;
709 __entry
->logical
= ar
->logical
;
710 __entry
->goal
= ar
->goal
;
711 __entry
->lleft
= ar
->lleft
;
712 __entry
->lright
= ar
->lright
;
713 __entry
->pleft
= ar
->pleft
;
714 __entry
->pright
= ar
->pright
;
715 __entry
->flags
= ar
->flags
;
718 TP_printk("dev %d,%d ino %lu flags %u len %u block %llu lblk %u "
719 "goal %llu lleft %u lright %u pleft %llu pright %llu",
720 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
721 (unsigned long) __entry
->ino
, __entry
->flags
,
722 __entry
->len
, __entry
->block
, __entry
->logical
,
723 __entry
->goal
, __entry
->lleft
, __entry
->lright
,
724 __entry
->pleft
, __entry
->pright
)
727 TRACE_EVENT(ext4_free_blocks
,
728 TP_PROTO(struct inode
*inode
, __u64 block
, unsigned long count
,
731 TP_ARGS(inode
, block
, count
, flags
),
734 __field( dev_t
, dev
)
735 __field( ino_t
, ino
)
736 __field( __u64
, block
)
737 __field( unsigned long, count
)
738 __field( int, flags
)
739 __field( __u16
, mode
)
743 __entry
->dev
= inode
->i_sb
->s_dev
;
744 __entry
->ino
= inode
->i_ino
;
745 __entry
->block
= block
;
746 __entry
->count
= count
;
747 __entry
->flags
= flags
;
748 __entry
->mode
= inode
->i_mode
;
751 TP_printk("dev %d,%d ino %lu mode 0%o block %llu count %lu flags %d",
752 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
753 (unsigned long) __entry
->ino
,
754 __entry
->mode
, __entry
->block
, __entry
->count
,
758 TRACE_EVENT(ext4_sync_file_enter
,
759 TP_PROTO(struct file
*file
, int datasync
),
761 TP_ARGS(file
, datasync
),
764 __field( dev_t
, dev
)
765 __field( ino_t
, ino
)
766 __field( ino_t
, parent
)
767 __field( int, datasync
)
771 struct dentry
*dentry
= file
->f_path
.dentry
;
773 __entry
->dev
= dentry
->d_inode
->i_sb
->s_dev
;
774 __entry
->ino
= dentry
->d_inode
->i_ino
;
775 __entry
->datasync
= datasync
;
776 __entry
->parent
= dentry
->d_parent
->d_inode
->i_ino
;
779 TP_printk("dev %d,%d ino %lu parent %lu datasync %d ",
780 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
781 (unsigned long) __entry
->ino
,
782 (unsigned long) __entry
->parent
, __entry
->datasync
)
785 TRACE_EVENT(ext4_sync_file_exit
,
786 TP_PROTO(struct inode
*inode
, int ret
),
791 __field( dev_t
, dev
)
792 __field( ino_t
, ino
)
797 __entry
->dev
= inode
->i_sb
->s_dev
;
798 __entry
->ino
= inode
->i_ino
;
802 TP_printk("dev %d,%d ino %lu ret %d",
803 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
804 (unsigned long) __entry
->ino
,
808 TRACE_EVENT(ext4_sync_fs
,
809 TP_PROTO(struct super_block
*sb
, int wait
),
814 __field( dev_t
, dev
)
820 __entry
->dev
= sb
->s_dev
;
821 __entry
->wait
= wait
;
824 TP_printk("dev %d,%d wait %d",
825 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
829 TRACE_EVENT(ext4_alloc_da_blocks
,
830 TP_PROTO(struct inode
*inode
),
835 __field( dev_t
, dev
)
836 __field( ino_t
, ino
)
837 __field( unsigned int, data_blocks
)
838 __field( unsigned int, meta_blocks
)
842 __entry
->dev
= inode
->i_sb
->s_dev
;
843 __entry
->ino
= inode
->i_ino
;
844 __entry
->data_blocks
= EXT4_I(inode
)->i_reserved_data_blocks
;
845 __entry
->meta_blocks
= EXT4_I(inode
)->i_reserved_meta_blocks
;
848 TP_printk("dev %d,%d ino %lu data_blocks %u meta_blocks %u",
849 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
850 (unsigned long) __entry
->ino
,
851 __entry
->data_blocks
, __entry
->meta_blocks
)
854 TRACE_EVENT(ext4_mballoc_alloc
,
855 TP_PROTO(struct ext4_allocation_context
*ac
),
860 __field( dev_t
, dev
)
861 __field( ino_t
, ino
)
862 __field( __u32
, orig_logical
)
863 __field( int, orig_start
)
864 __field( __u32
, orig_group
)
865 __field( int, orig_len
)
866 __field( __u32
, goal_logical
)
867 __field( int, goal_start
)
868 __field( __u32
, goal_group
)
869 __field( int, goal_len
)
870 __field( __u32
, result_logical
)
871 __field( int, result_start
)
872 __field( __u32
, result_group
)
873 __field( int, result_len
)
874 __field( __u16
, found
)
875 __field( __u16
, groups
)
876 __field( __u16
, buddy
)
877 __field( __u16
, flags
)
878 __field( __u16
, tail
)
883 __entry
->dev
= ac
->ac_inode
->i_sb
->s_dev
;
884 __entry
->ino
= ac
->ac_inode
->i_ino
;
885 __entry
->orig_logical
= ac
->ac_o_ex
.fe_logical
;
886 __entry
->orig_start
= ac
->ac_o_ex
.fe_start
;
887 __entry
->orig_group
= ac
->ac_o_ex
.fe_group
;
888 __entry
->orig_len
= ac
->ac_o_ex
.fe_len
;
889 __entry
->goal_logical
= ac
->ac_g_ex
.fe_logical
;
890 __entry
->goal_start
= ac
->ac_g_ex
.fe_start
;
891 __entry
->goal_group
= ac
->ac_g_ex
.fe_group
;
892 __entry
->goal_len
= ac
->ac_g_ex
.fe_len
;
893 __entry
->result_logical
= ac
->ac_f_ex
.fe_logical
;
894 __entry
->result_start
= ac
->ac_f_ex
.fe_start
;
895 __entry
->result_group
= ac
->ac_f_ex
.fe_group
;
896 __entry
->result_len
= ac
->ac_f_ex
.fe_len
;
897 __entry
->found
= ac
->ac_found
;
898 __entry
->flags
= ac
->ac_flags
;
899 __entry
->groups
= ac
->ac_groups_scanned
;
900 __entry
->buddy
= ac
->ac_buddy
;
901 __entry
->tail
= ac
->ac_tail
;
902 __entry
->cr
= ac
->ac_criteria
;
905 TP_printk("dev %d,%d inode %lu orig %u/%d/%u@%u goal %u/%d/%u@%u "
906 "result %u/%d/%u@%u blks %u grps %u cr %u flags 0x%04x "
908 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
909 (unsigned long) __entry
->ino
,
910 __entry
->orig_group
, __entry
->orig_start
,
911 __entry
->orig_len
, __entry
->orig_logical
,
912 __entry
->goal_group
, __entry
->goal_start
,
913 __entry
->goal_len
, __entry
->goal_logical
,
914 __entry
->result_group
, __entry
->result_start
,
915 __entry
->result_len
, __entry
->result_logical
,
916 __entry
->found
, __entry
->groups
, __entry
->cr
,
917 __entry
->flags
, __entry
->tail
,
918 __entry
->buddy
? 1 << __entry
->buddy
: 0)
921 TRACE_EVENT(ext4_mballoc_prealloc
,
922 TP_PROTO(struct ext4_allocation_context
*ac
),
927 __field( dev_t
, dev
)
928 __field( ino_t
, ino
)
929 __field( __u32
, orig_logical
)
930 __field( int, orig_start
)
931 __field( __u32
, orig_group
)
932 __field( int, orig_len
)
933 __field( __u32
, result_logical
)
934 __field( int, result_start
)
935 __field( __u32
, result_group
)
936 __field( int, result_len
)
940 __entry
->dev
= ac
->ac_inode
->i_sb
->s_dev
;
941 __entry
->ino
= ac
->ac_inode
->i_ino
;
942 __entry
->orig_logical
= ac
->ac_o_ex
.fe_logical
;
943 __entry
->orig_start
= ac
->ac_o_ex
.fe_start
;
944 __entry
->orig_group
= ac
->ac_o_ex
.fe_group
;
945 __entry
->orig_len
= ac
->ac_o_ex
.fe_len
;
946 __entry
->result_logical
= ac
->ac_b_ex
.fe_logical
;
947 __entry
->result_start
= ac
->ac_b_ex
.fe_start
;
948 __entry
->result_group
= ac
->ac_b_ex
.fe_group
;
949 __entry
->result_len
= ac
->ac_b_ex
.fe_len
;
952 TP_printk("dev %d,%d inode %lu orig %u/%d/%u@%u result %u/%d/%u@%u",
953 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
954 (unsigned long) __entry
->ino
,
955 __entry
->orig_group
, __entry
->orig_start
,
956 __entry
->orig_len
, __entry
->orig_logical
,
957 __entry
->result_group
, __entry
->result_start
,
958 __entry
->result_len
, __entry
->result_logical
)
961 DECLARE_EVENT_CLASS(ext4__mballoc
,
962 TP_PROTO(struct super_block
*sb
,
968 TP_ARGS(sb
, inode
, group
, start
, len
),
971 __field( dev_t
, dev
)
972 __field( ino_t
, ino
)
973 __field( int, result_start
)
974 __field( __u32
, result_group
)
975 __field( int, result_len
)
979 __entry
->dev
= sb
->s_dev
;
980 __entry
->ino
= inode
? inode
->i_ino
: 0;
981 __entry
->result_start
= start
;
982 __entry
->result_group
= group
;
983 __entry
->result_len
= len
;
986 TP_printk("dev %d,%d inode %lu extent %u/%d/%d ",
987 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
988 (unsigned long) __entry
->ino
,
989 __entry
->result_group
, __entry
->result_start
,
993 DEFINE_EVENT(ext4__mballoc
, ext4_mballoc_discard
,
995 TP_PROTO(struct super_block
*sb
,
1001 TP_ARGS(sb
, inode
, group
, start
, len
)
1004 DEFINE_EVENT(ext4__mballoc
, ext4_mballoc_free
,
1006 TP_PROTO(struct super_block
*sb
,
1007 struct inode
*inode
,
1009 ext4_grpblk_t start
,
1012 TP_ARGS(sb
, inode
, group
, start
, len
)
1015 TRACE_EVENT(ext4_forget
,
1016 TP_PROTO(struct inode
*inode
, int is_metadata
, __u64 block
),
1018 TP_ARGS(inode
, is_metadata
, block
),
1021 __field( dev_t
, dev
)
1022 __field( ino_t
, ino
)
1023 __field( __u64
, block
)
1024 __field( int, is_metadata
)
1025 __field( __u16
, mode
)
1029 __entry
->dev
= inode
->i_sb
->s_dev
;
1030 __entry
->ino
= inode
->i_ino
;
1031 __entry
->block
= block
;
1032 __entry
->is_metadata
= is_metadata
;
1033 __entry
->mode
= inode
->i_mode
;
1036 TP_printk("dev %d,%d ino %lu mode 0%o is_metadata %d block %llu",
1037 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1038 (unsigned long) __entry
->ino
,
1039 __entry
->mode
, __entry
->is_metadata
, __entry
->block
)
1042 TRACE_EVENT(ext4_da_update_reserve_space
,
1043 TP_PROTO(struct inode
*inode
, int used_blocks
, int quota_claim
),
1045 TP_ARGS(inode
, used_blocks
, quota_claim
),
1048 __field( dev_t
, dev
)
1049 __field( ino_t
, ino
)
1050 __field( __u64
, i_blocks
)
1051 __field( int, used_blocks
)
1052 __field( int, reserved_data_blocks
)
1053 __field( int, reserved_meta_blocks
)
1054 __field( int, allocated_meta_blocks
)
1055 __field( int, quota_claim
)
1056 __field( __u16
, mode
)
1060 __entry
->dev
= inode
->i_sb
->s_dev
;
1061 __entry
->ino
= inode
->i_ino
;
1062 __entry
->i_blocks
= inode
->i_blocks
;
1063 __entry
->used_blocks
= used_blocks
;
1064 __entry
->reserved_data_blocks
=
1065 EXT4_I(inode
)->i_reserved_data_blocks
;
1066 __entry
->reserved_meta_blocks
=
1067 EXT4_I(inode
)->i_reserved_meta_blocks
;
1068 __entry
->allocated_meta_blocks
=
1069 EXT4_I(inode
)->i_allocated_meta_blocks
;
1070 __entry
->quota_claim
= quota_claim
;
1071 __entry
->mode
= inode
->i_mode
;
1074 TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu used_blocks %d "
1075 "reserved_data_blocks %d reserved_meta_blocks %d "
1076 "allocated_meta_blocks %d quota_claim %d",
1077 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1078 (unsigned long) __entry
->ino
,
1079 __entry
->mode
, __entry
->i_blocks
,
1080 __entry
->used_blocks
, __entry
->reserved_data_blocks
,
1081 __entry
->reserved_meta_blocks
, __entry
->allocated_meta_blocks
,
1082 __entry
->quota_claim
)
1085 TRACE_EVENT(ext4_da_reserve_space
,
1086 TP_PROTO(struct inode
*inode
, int md_needed
),
1088 TP_ARGS(inode
, md_needed
),
1091 __field( dev_t
, dev
)
1092 __field( ino_t
, ino
)
1093 __field( __u64
, i_blocks
)
1094 __field( int, md_needed
)
1095 __field( int, reserved_data_blocks
)
1096 __field( int, reserved_meta_blocks
)
1097 __field( __u16
, mode
)
1101 __entry
->dev
= inode
->i_sb
->s_dev
;
1102 __entry
->ino
= inode
->i_ino
;
1103 __entry
->i_blocks
= inode
->i_blocks
;
1104 __entry
->md_needed
= md_needed
;
1105 __entry
->reserved_data_blocks
= EXT4_I(inode
)->i_reserved_data_blocks
;
1106 __entry
->reserved_meta_blocks
= EXT4_I(inode
)->i_reserved_meta_blocks
;
1107 __entry
->mode
= inode
->i_mode
;
1110 TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu md_needed %d "
1111 "reserved_data_blocks %d reserved_meta_blocks %d",
1112 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1113 (unsigned long) __entry
->ino
,
1114 __entry
->mode
, __entry
->i_blocks
,
1115 __entry
->md_needed
, __entry
->reserved_data_blocks
,
1116 __entry
->reserved_meta_blocks
)
1119 TRACE_EVENT(ext4_da_release_space
,
1120 TP_PROTO(struct inode
*inode
, int freed_blocks
),
1122 TP_ARGS(inode
, freed_blocks
),
1125 __field( dev_t
, dev
)
1126 __field( ino_t
, ino
)
1127 __field( __u64
, i_blocks
)
1128 __field( int, freed_blocks
)
1129 __field( int, reserved_data_blocks
)
1130 __field( int, reserved_meta_blocks
)
1131 __field( int, allocated_meta_blocks
)
1132 __field( __u16
, mode
)
1136 __entry
->dev
= inode
->i_sb
->s_dev
;
1137 __entry
->ino
= inode
->i_ino
;
1138 __entry
->i_blocks
= inode
->i_blocks
;
1139 __entry
->freed_blocks
= freed_blocks
;
1140 __entry
->reserved_data_blocks
= EXT4_I(inode
)->i_reserved_data_blocks
;
1141 __entry
->reserved_meta_blocks
= EXT4_I(inode
)->i_reserved_meta_blocks
;
1142 __entry
->allocated_meta_blocks
= EXT4_I(inode
)->i_allocated_meta_blocks
;
1143 __entry
->mode
= inode
->i_mode
;
1146 TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu freed_blocks %d "
1147 "reserved_data_blocks %d reserved_meta_blocks %d "
1148 "allocated_meta_blocks %d",
1149 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1150 (unsigned long) __entry
->ino
,
1151 __entry
->mode
, __entry
->i_blocks
,
1152 __entry
->freed_blocks
, __entry
->reserved_data_blocks
,
1153 __entry
->reserved_meta_blocks
, __entry
->allocated_meta_blocks
)
1156 DECLARE_EVENT_CLASS(ext4__bitmap_load
,
1157 TP_PROTO(struct super_block
*sb
, unsigned long group
),
1162 __field( dev_t
, dev
)
1163 __field( __u32
, group
)
1168 __entry
->dev
= sb
->s_dev
;
1169 __entry
->group
= group
;
1172 TP_printk("dev %d,%d group %u",
1173 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1177 DEFINE_EVENT(ext4__bitmap_load
, ext4_mb_bitmap_load
,
1179 TP_PROTO(struct super_block
*sb
, unsigned long group
),
1184 DEFINE_EVENT(ext4__bitmap_load
, ext4_mb_buddy_bitmap_load
,
1186 TP_PROTO(struct super_block
*sb
, unsigned long group
),
1191 DEFINE_EVENT(ext4__bitmap_load
, ext4_read_block_bitmap_load
,
1193 TP_PROTO(struct super_block
*sb
, unsigned long group
),
1198 DEFINE_EVENT(ext4__bitmap_load
, ext4_load_inode_bitmap
,
1200 TP_PROTO(struct super_block
*sb
, unsigned long group
),
1205 TRACE_EVENT(ext4_direct_IO_enter
,
1206 TP_PROTO(struct inode
*inode
, loff_t offset
, unsigned long len
, int rw
),
1208 TP_ARGS(inode
, offset
, len
, rw
),
1211 __field( dev_t
, dev
)
1212 __field( ino_t
, ino
)
1213 __field( loff_t
, pos
)
1214 __field( unsigned long, len
)
1219 __entry
->dev
= inode
->i_sb
->s_dev
;
1220 __entry
->ino
= inode
->i_ino
;
1221 __entry
->pos
= offset
;
1226 TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d",
1227 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1228 (unsigned long) __entry
->ino
,
1229 __entry
->pos
, __entry
->len
, __entry
->rw
)
1232 TRACE_EVENT(ext4_direct_IO_exit
,
1233 TP_PROTO(struct inode
*inode
, loff_t offset
, unsigned long len
,
1236 TP_ARGS(inode
, offset
, len
, rw
, ret
),
1239 __field( dev_t
, dev
)
1240 __field( ino_t
, ino
)
1241 __field( loff_t
, pos
)
1242 __field( unsigned long, len
)
1248 __entry
->dev
= inode
->i_sb
->s_dev
;
1249 __entry
->ino
= inode
->i_ino
;
1250 __entry
->pos
= offset
;
1256 TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d ret %d",
1257 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1258 (unsigned long) __entry
->ino
,
1259 __entry
->pos
, __entry
->len
,
1260 __entry
->rw
, __entry
->ret
)
1263 TRACE_EVENT(ext4_fallocate_enter
,
1264 TP_PROTO(struct inode
*inode
, loff_t offset
, loff_t len
, int mode
),
1266 TP_ARGS(inode
, offset
, len
, mode
),
1269 __field( dev_t
, dev
)
1270 __field( ino_t
, ino
)
1271 __field( loff_t
, pos
)
1272 __field( loff_t
, len
)
1273 __field( int, mode
)
1277 __entry
->dev
= inode
->i_sb
->s_dev
;
1278 __entry
->ino
= inode
->i_ino
;
1279 __entry
->pos
= offset
;
1281 __entry
->mode
= mode
;
1284 TP_printk("dev %d,%d ino %lu pos %lld len %lld mode %d",
1285 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1286 (unsigned long) __entry
->ino
, __entry
->pos
,
1287 __entry
->len
, __entry
->mode
)
1290 TRACE_EVENT(ext4_fallocate_exit
,
1291 TP_PROTO(struct inode
*inode
, loff_t offset
,
1292 unsigned int max_blocks
, int ret
),
1294 TP_ARGS(inode
, offset
, max_blocks
, ret
),
1297 __field( dev_t
, dev
)
1298 __field( ino_t
, ino
)
1299 __field( loff_t
, pos
)
1300 __field( unsigned int, blocks
)
1305 __entry
->dev
= inode
->i_sb
->s_dev
;
1306 __entry
->ino
= inode
->i_ino
;
1307 __entry
->pos
= offset
;
1308 __entry
->blocks
= max_blocks
;
1312 TP_printk("dev %d,%d ino %lu pos %lld blocks %u ret %d",
1313 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1314 (unsigned long) __entry
->ino
,
1315 __entry
->pos
, __entry
->blocks
,
1319 TRACE_EVENT(ext4_punch_hole
,
1320 TP_PROTO(struct inode
*inode
, loff_t offset
, loff_t len
),
1322 TP_ARGS(inode
, offset
, len
),
1325 __field( dev_t
, dev
)
1326 __field( ino_t
, ino
)
1327 __field( loff_t
, offset
)
1328 __field( loff_t
, len
)
1332 __entry
->dev
= inode
->i_sb
->s_dev
;
1333 __entry
->ino
= inode
->i_ino
;
1334 __entry
->offset
= offset
;
1338 TP_printk("dev %d,%d ino %lu offset %lld len %lld",
1339 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1340 (unsigned long) __entry
->ino
,
1341 __entry
->offset
, __entry
->len
)
1344 TRACE_EVENT(ext4_unlink_enter
,
1345 TP_PROTO(struct inode
*parent
, struct dentry
*dentry
),
1347 TP_ARGS(parent
, dentry
),
1350 __field( dev_t
, dev
)
1351 __field( ino_t
, ino
)
1352 __field( ino_t
, parent
)
1353 __field( loff_t
, size
)
1357 __entry
->dev
= dentry
->d_inode
->i_sb
->s_dev
;
1358 __entry
->ino
= dentry
->d_inode
->i_ino
;
1359 __entry
->parent
= parent
->i_ino
;
1360 __entry
->size
= dentry
->d_inode
->i_size
;
1363 TP_printk("dev %d,%d ino %lu size %lld parent %lu",
1364 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1365 (unsigned long) __entry
->ino
, __entry
->size
,
1366 (unsigned long) __entry
->parent
)
1369 TRACE_EVENT(ext4_unlink_exit
,
1370 TP_PROTO(struct dentry
*dentry
, int ret
),
1372 TP_ARGS(dentry
, ret
),
1375 __field( dev_t
, dev
)
1376 __field( ino_t
, ino
)
1381 __entry
->dev
= dentry
->d_inode
->i_sb
->s_dev
;
1382 __entry
->ino
= dentry
->d_inode
->i_ino
;
1386 TP_printk("dev %d,%d ino %lu ret %d",
1387 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1388 (unsigned long) __entry
->ino
,
1392 DECLARE_EVENT_CLASS(ext4__truncate
,
1393 TP_PROTO(struct inode
*inode
),
1398 __field( dev_t
, dev
)
1399 __field( ino_t
, ino
)
1400 __field( __u64
, blocks
)
1404 __entry
->dev
= inode
->i_sb
->s_dev
;
1405 __entry
->ino
= inode
->i_ino
;
1406 __entry
->blocks
= inode
->i_blocks
;
1409 TP_printk("dev %d,%d ino %lu blocks %llu",
1410 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1411 (unsigned long) __entry
->ino
, __entry
->blocks
)
1414 DEFINE_EVENT(ext4__truncate
, ext4_truncate_enter
,
1416 TP_PROTO(struct inode
*inode
),
1421 DEFINE_EVENT(ext4__truncate
, ext4_truncate_exit
,
1423 TP_PROTO(struct inode
*inode
),
1428 /* 'ux' is the uninitialized extent. */
1429 TRACE_EVENT(ext4_ext_convert_to_initialized_enter
,
1430 TP_PROTO(struct inode
*inode
, struct ext4_map_blocks
*map
,
1431 struct ext4_extent
*ux
),
1433 TP_ARGS(inode
, map
, ux
),
1436 __field( dev_t
, dev
)
1437 __field( ino_t
, ino
)
1438 __field( ext4_lblk_t
, m_lblk
)
1439 __field( unsigned, m_len
)
1440 __field( ext4_lblk_t
, u_lblk
)
1441 __field( unsigned, u_len
)
1442 __field( ext4_fsblk_t
, u_pblk
)
1446 __entry
->dev
= inode
->i_sb
->s_dev
;
1447 __entry
->ino
= inode
->i_ino
;
1448 __entry
->m_lblk
= map
->m_lblk
;
1449 __entry
->m_len
= map
->m_len
;
1450 __entry
->u_lblk
= le32_to_cpu(ux
->ee_block
);
1451 __entry
->u_len
= ext4_ext_get_actual_len(ux
);
1452 __entry
->u_pblk
= ext4_ext_pblock(ux
);
1455 TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u u_lblk %u u_len %u "
1457 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1458 (unsigned long) __entry
->ino
,
1459 __entry
->m_lblk
, __entry
->m_len
,
1460 __entry
->u_lblk
, __entry
->u_len
, __entry
->u_pblk
)
1464 * 'ux' is the uninitialized extent.
1465 * 'ix' is the initialized extent to which blocks are transferred.
1467 TRACE_EVENT(ext4_ext_convert_to_initialized_fastpath
,
1468 TP_PROTO(struct inode
*inode
, struct ext4_map_blocks
*map
,
1469 struct ext4_extent
*ux
, struct ext4_extent
*ix
),
1471 TP_ARGS(inode
, map
, ux
, ix
),
1474 __field( dev_t
, dev
)
1475 __field( ino_t
, ino
)
1476 __field( ext4_lblk_t
, m_lblk
)
1477 __field( unsigned, m_len
)
1478 __field( ext4_lblk_t
, u_lblk
)
1479 __field( unsigned, u_len
)
1480 __field( ext4_fsblk_t
, u_pblk
)
1481 __field( ext4_lblk_t
, i_lblk
)
1482 __field( unsigned, i_len
)
1483 __field( ext4_fsblk_t
, i_pblk
)
1487 __entry
->dev
= inode
->i_sb
->s_dev
;
1488 __entry
->ino
= inode
->i_ino
;
1489 __entry
->m_lblk
= map
->m_lblk
;
1490 __entry
->m_len
= map
->m_len
;
1491 __entry
->u_lblk
= le32_to_cpu(ux
->ee_block
);
1492 __entry
->u_len
= ext4_ext_get_actual_len(ux
);
1493 __entry
->u_pblk
= ext4_ext_pblock(ux
);
1494 __entry
->i_lblk
= le32_to_cpu(ix
->ee_block
);
1495 __entry
->i_len
= ext4_ext_get_actual_len(ix
);
1496 __entry
->i_pblk
= ext4_ext_pblock(ix
);
1499 TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u "
1500 "u_lblk %u u_len %u u_pblk %llu "
1501 "i_lblk %u i_len %u i_pblk %llu ",
1502 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1503 (unsigned long) __entry
->ino
,
1504 __entry
->m_lblk
, __entry
->m_len
,
1505 __entry
->u_lblk
, __entry
->u_len
, __entry
->u_pblk
,
1506 __entry
->i_lblk
, __entry
->i_len
, __entry
->i_pblk
)
1509 DECLARE_EVENT_CLASS(ext4__map_blocks_enter
,
1510 TP_PROTO(struct inode
*inode
, ext4_lblk_t lblk
,
1511 unsigned int len
, unsigned int flags
),
1513 TP_ARGS(inode
, lblk
, len
, flags
),
1516 __field( dev_t
, dev
)
1517 __field( ino_t
, ino
)
1518 __field( ext4_lblk_t
, lblk
)
1519 __field( unsigned int, len
)
1520 __field( unsigned int, flags
)
1524 __entry
->dev
= inode
->i_sb
->s_dev
;
1525 __entry
->ino
= inode
->i_ino
;
1526 __entry
->lblk
= lblk
;
1528 __entry
->flags
= flags
;
1531 TP_printk("dev %d,%d ino %lu lblk %u len %u flags %u",
1532 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1533 (unsigned long) __entry
->ino
,
1534 __entry
->lblk
, __entry
->len
, __entry
->flags
)
1537 DEFINE_EVENT(ext4__map_blocks_enter
, ext4_ext_map_blocks_enter
,
1538 TP_PROTO(struct inode
*inode
, ext4_lblk_t lblk
,
1539 unsigned len
, unsigned flags
),
1541 TP_ARGS(inode
, lblk
, len
, flags
)
1544 DEFINE_EVENT(ext4__map_blocks_enter
, ext4_ind_map_blocks_enter
,
1545 TP_PROTO(struct inode
*inode
, ext4_lblk_t lblk
,
1546 unsigned len
, unsigned flags
),
1548 TP_ARGS(inode
, lblk
, len
, flags
)
1551 DECLARE_EVENT_CLASS(ext4__map_blocks_exit
,
1552 TP_PROTO(struct inode
*inode
, struct ext4_map_blocks
*map
, int ret
),
1554 TP_ARGS(inode
, map
, ret
),
1557 __field( dev_t
, dev
)
1558 __field( ino_t
, ino
)
1559 __field( ext4_fsblk_t
, pblk
)
1560 __field( ext4_lblk_t
, lblk
)
1561 __field( unsigned int, len
)
1562 __field( unsigned int, flags
)
1567 __entry
->dev
= inode
->i_sb
->s_dev
;
1568 __entry
->ino
= inode
->i_ino
;
1569 __entry
->pblk
= map
->m_pblk
;
1570 __entry
->lblk
= map
->m_lblk
;
1571 __entry
->len
= map
->m_len
;
1572 __entry
->flags
= map
->m_flags
;
1576 TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u flags %x ret %d",
1577 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1578 (unsigned long) __entry
->ino
,
1579 __entry
->lblk
, __entry
->pblk
,
1580 __entry
->len
, __entry
->flags
, __entry
->ret
)
1583 DEFINE_EVENT(ext4__map_blocks_exit
, ext4_ext_map_blocks_exit
,
1584 TP_PROTO(struct inode
*inode
, struct ext4_map_blocks
*map
, int ret
),
1586 TP_ARGS(inode
, map
, ret
)
1589 DEFINE_EVENT(ext4__map_blocks_exit
, ext4_ind_map_blocks_exit
,
1590 TP_PROTO(struct inode
*inode
, struct ext4_map_blocks
*map
, int ret
),
1592 TP_ARGS(inode
, map
, ret
)
1595 TRACE_EVENT(ext4_ext_load_extent
,
1596 TP_PROTO(struct inode
*inode
, ext4_lblk_t lblk
, ext4_fsblk_t pblk
),
1598 TP_ARGS(inode
, lblk
, pblk
),
1601 __field( dev_t
, dev
)
1602 __field( ino_t
, ino
)
1603 __field( ext4_fsblk_t
, pblk
)
1604 __field( ext4_lblk_t
, lblk
)
1608 __entry
->dev
= inode
->i_sb
->s_dev
;
1609 __entry
->ino
= inode
->i_ino
;
1610 __entry
->pblk
= pblk
;
1611 __entry
->lblk
= lblk
;
1614 TP_printk("dev %d,%d ino %lu lblk %u pblk %llu",
1615 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1616 (unsigned long) __entry
->ino
,
1617 __entry
->lblk
, __entry
->pblk
)
1620 TRACE_EVENT(ext4_load_inode
,
1621 TP_PROTO(struct inode
*inode
),
1626 __field( dev_t
, dev
)
1627 __field( ino_t
, ino
)
1631 __entry
->dev
= inode
->i_sb
->s_dev
;
1632 __entry
->ino
= inode
->i_ino
;
1635 TP_printk("dev %d,%d ino %ld",
1636 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1637 (unsigned long) __entry
->ino
)
1640 TRACE_EVENT(ext4_journal_start
,
1641 TP_PROTO(struct super_block
*sb
, int nblocks
, unsigned long IP
),
1643 TP_ARGS(sb
, nblocks
, IP
),
1646 __field( dev_t
, dev
)
1647 __field(unsigned long, ip
)
1648 __field( int, nblocks
)
1652 __entry
->dev
= sb
->s_dev
;
1654 __entry
->nblocks
= nblocks
;
1657 TP_printk("dev %d,%d nblocks %d caller %pF",
1658 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1659 __entry
->nblocks
, (void *)__entry
->ip
)
1662 DECLARE_EVENT_CLASS(ext4__trim
,
1663 TP_PROTO(struct super_block
*sb
,
1665 ext4_grpblk_t start
,
1668 TP_ARGS(sb
, group
, start
, len
),
1671 __field( int, dev_major
)
1672 __field( int, dev_minor
)
1673 __field( __u32
, group
)
1674 __field( int, start
)
1679 __entry
->dev_major
= MAJOR(sb
->s_dev
);
1680 __entry
->dev_minor
= MINOR(sb
->s_dev
);
1681 __entry
->group
= group
;
1682 __entry
->start
= start
;
1686 TP_printk("dev %d,%d group %u, start %d, len %d",
1687 __entry
->dev_major
, __entry
->dev_minor
,
1688 __entry
->group
, __entry
->start
, __entry
->len
)
1691 DEFINE_EVENT(ext4__trim
, ext4_trim_extent
,
1693 TP_PROTO(struct super_block
*sb
,
1695 ext4_grpblk_t start
,
1698 TP_ARGS(sb
, group
, start
, len
)
1701 DEFINE_EVENT(ext4__trim
, ext4_trim_all_free
,
1703 TP_PROTO(struct super_block
*sb
,
1705 ext4_grpblk_t start
,
1708 TP_ARGS(sb
, group
, start
, len
)
1711 TRACE_EVENT(ext4_ext_handle_uninitialized_extents
,
1712 TP_PROTO(struct inode
*inode
, struct ext4_map_blocks
*map
, int flags
,
1713 unsigned int allocated
, ext4_fsblk_t newblock
),
1715 TP_ARGS(inode
, map
, flags
, allocated
, newblock
),
1718 __field( dev_t
, dev
)
1719 __field( ino_t
, ino
)
1720 __field( int, flags
)
1721 __field( ext4_lblk_t
, lblk
)
1722 __field( ext4_fsblk_t
, pblk
)
1723 __field( unsigned int, len
)
1724 __field( unsigned int, allocated
)
1725 __field( ext4_fsblk_t
, newblk
)
1729 __entry
->dev
= inode
->i_sb
->s_dev
;
1730 __entry
->ino
= inode
->i_ino
;
1731 __entry
->flags
= flags
;
1732 __entry
->lblk
= map
->m_lblk
;
1733 __entry
->pblk
= map
->m_pblk
;
1734 __entry
->len
= map
->m_len
;
1735 __entry
->allocated
= allocated
;
1736 __entry
->newblk
= newblock
;
1739 TP_printk("dev %d,%d ino %lu m_lblk %u m_pblk %llu m_len %u flags %x "
1740 "allocated %d newblock %llu",
1741 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1742 (unsigned long) __entry
->ino
,
1743 (unsigned) __entry
->lblk
, (unsigned long long) __entry
->pblk
,
1744 __entry
->len
, __entry
->flags
,
1745 (unsigned int) __entry
->allocated
,
1746 (unsigned long long) __entry
->newblk
)
1749 TRACE_EVENT(ext4_get_implied_cluster_alloc_exit
,
1750 TP_PROTO(struct super_block
*sb
, struct ext4_map_blocks
*map
, int ret
),
1752 TP_ARGS(sb
, map
, ret
),
1755 __field( dev_t
, dev
)
1756 __field( unsigned int, flags
)
1757 __field( ext4_lblk_t
, lblk
)
1758 __field( ext4_fsblk_t
, pblk
)
1759 __field( unsigned int, len
)
1764 __entry
->dev
= sb
->s_dev
;
1765 __entry
->flags
= map
->m_flags
;
1766 __entry
->lblk
= map
->m_lblk
;
1767 __entry
->pblk
= map
->m_pblk
;
1768 __entry
->len
= map
->m_len
;
1772 TP_printk("dev %d,%d m_lblk %u m_pblk %llu m_len %u m_flags %u ret %d",
1773 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1774 __entry
->lblk
, (unsigned long long) __entry
->pblk
,
1775 __entry
->len
, __entry
->flags
, __entry
->ret
)
1778 TRACE_EVENT(ext4_ext_put_in_cache
,
1779 TP_PROTO(struct inode
*inode
, ext4_lblk_t lblk
, unsigned int len
,
1780 ext4_fsblk_t start
),
1782 TP_ARGS(inode
, lblk
, len
, start
),
1785 __field( dev_t
, dev
)
1786 __field( ino_t
, ino
)
1787 __field( ext4_lblk_t
, lblk
)
1788 __field( unsigned int, len
)
1789 __field( ext4_fsblk_t
, start
)
1793 __entry
->dev
= inode
->i_sb
->s_dev
;
1794 __entry
->ino
= inode
->i_ino
;
1795 __entry
->lblk
= lblk
;
1797 __entry
->start
= start
;
1800 TP_printk("dev %d,%d ino %lu lblk %u len %u start %llu",
1801 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1802 (unsigned long) __entry
->ino
,
1803 (unsigned) __entry
->lblk
,
1805 (unsigned long long) __entry
->start
)
1808 TRACE_EVENT(ext4_ext_in_cache
,
1809 TP_PROTO(struct inode
*inode
, ext4_lblk_t lblk
, int ret
),
1811 TP_ARGS(inode
, lblk
, ret
),
1814 __field( dev_t
, dev
)
1815 __field( ino_t
, ino
)
1816 __field( ext4_lblk_t
, lblk
)
1821 __entry
->dev
= inode
->i_sb
->s_dev
;
1822 __entry
->ino
= inode
->i_ino
;
1823 __entry
->lblk
= lblk
;
1827 TP_printk("dev %d,%d ino %lu lblk %u ret %d",
1828 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1829 (unsigned long) __entry
->ino
,
1830 (unsigned) __entry
->lblk
,
1835 TRACE_EVENT(ext4_find_delalloc_range
,
1836 TP_PROTO(struct inode
*inode
, ext4_lblk_t from
, ext4_lblk_t to
,
1837 int reverse
, int found
, ext4_lblk_t found_blk
),
1839 TP_ARGS(inode
, from
, to
, reverse
, found
, found_blk
),
1842 __field( dev_t
, dev
)
1843 __field( ino_t
, ino
)
1844 __field( ext4_lblk_t
, from
)
1845 __field( ext4_lblk_t
, to
)
1846 __field( int, reverse
)
1847 __field( int, found
)
1848 __field( ext4_lblk_t
, found_blk
)
1852 __entry
->dev
= inode
->i_sb
->s_dev
;
1853 __entry
->ino
= inode
->i_ino
;
1854 __entry
->from
= from
;
1856 __entry
->reverse
= reverse
;
1857 __entry
->found
= found
;
1858 __entry
->found_blk
= found_blk
;
1861 TP_printk("dev %d,%d ino %lu from %u to %u reverse %d found %d "
1863 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1864 (unsigned long) __entry
->ino
,
1865 (unsigned) __entry
->from
, (unsigned) __entry
->to
,
1866 __entry
->reverse
, __entry
->found
,
1867 (unsigned) __entry
->found_blk
)
1870 TRACE_EVENT(ext4_get_reserved_cluster_alloc
,
1871 TP_PROTO(struct inode
*inode
, ext4_lblk_t lblk
, unsigned int len
),
1873 TP_ARGS(inode
, lblk
, len
),
1876 __field( dev_t
, dev
)
1877 __field( ino_t
, ino
)
1878 __field( ext4_lblk_t
, lblk
)
1879 __field( unsigned int, len
)
1883 __entry
->dev
= inode
->i_sb
->s_dev
;
1884 __entry
->ino
= inode
->i_ino
;
1885 __entry
->lblk
= lblk
;
1889 TP_printk("dev %d,%d ino %lu lblk %u len %u",
1890 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1891 (unsigned long) __entry
->ino
,
1892 (unsigned) __entry
->lblk
,
1896 TRACE_EVENT(ext4_ext_show_extent
,
1897 TP_PROTO(struct inode
*inode
, ext4_lblk_t lblk
, ext4_fsblk_t pblk
,
1898 unsigned short len
),
1900 TP_ARGS(inode
, lblk
, pblk
, len
),
1903 __field( dev_t
, dev
)
1904 __field( ino_t
, ino
)
1905 __field( ext4_fsblk_t
, pblk
)
1906 __field( ext4_lblk_t
, lblk
)
1907 __field( unsigned short, len
)
1911 __entry
->dev
= inode
->i_sb
->s_dev
;
1912 __entry
->ino
= inode
->i_ino
;
1913 __entry
->pblk
= pblk
;
1914 __entry
->lblk
= lblk
;
1918 TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u",
1919 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1920 (unsigned long) __entry
->ino
,
1921 (unsigned) __entry
->lblk
,
1922 (unsigned long long) __entry
->pblk
,
1923 (unsigned short) __entry
->len
)
1926 TRACE_EVENT(ext4_remove_blocks
,
1927 TP_PROTO(struct inode
*inode
, struct ext4_extent
*ex
,
1928 ext4_lblk_t from
, ext4_fsblk_t to
,
1929 ext4_fsblk_t partial_cluster
),
1931 TP_ARGS(inode
, ex
, from
, to
, partial_cluster
),
1934 __field( dev_t
, dev
)
1935 __field( ino_t
, ino
)
1936 __field( ext4_lblk_t
, from
)
1937 __field( ext4_lblk_t
, to
)
1938 __field( ext4_fsblk_t
, partial
)
1939 __field( ext4_fsblk_t
, ee_pblk
)
1940 __field( ext4_lblk_t
, ee_lblk
)
1941 __field( unsigned short, ee_len
)
1945 __entry
->dev
= inode
->i_sb
->s_dev
;
1946 __entry
->ino
= inode
->i_ino
;
1947 __entry
->from
= from
;
1949 __entry
->partial
= partial_cluster
;
1950 __entry
->ee_pblk
= ext4_ext_pblock(ex
);
1951 __entry
->ee_lblk
= le32_to_cpu(ex
->ee_block
);
1952 __entry
->ee_len
= ext4_ext_get_actual_len(ex
);
1955 TP_printk("dev %d,%d ino %lu extent [%u(%llu), %u]"
1956 "from %u to %u partial_cluster %u",
1957 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1958 (unsigned long) __entry
->ino
,
1959 (unsigned) __entry
->ee_lblk
,
1960 (unsigned long long) __entry
->ee_pblk
,
1961 (unsigned short) __entry
->ee_len
,
1962 (unsigned) __entry
->from
,
1963 (unsigned) __entry
->to
,
1964 (unsigned) __entry
->partial
)
1967 TRACE_EVENT(ext4_ext_rm_leaf
,
1968 TP_PROTO(struct inode
*inode
, ext4_lblk_t start
,
1969 struct ext4_extent
*ex
, ext4_fsblk_t partial_cluster
),
1971 TP_ARGS(inode
, start
, ex
, partial_cluster
),
1974 __field( dev_t
, dev
)
1975 __field( ino_t
, ino
)
1976 __field( ext4_fsblk_t
, partial
)
1977 __field( ext4_lblk_t
, start
)
1978 __field( ext4_lblk_t
, ee_lblk
)
1979 __field( ext4_fsblk_t
, ee_pblk
)
1980 __field( short, ee_len
)
1984 __entry
->dev
= inode
->i_sb
->s_dev
;
1985 __entry
->ino
= inode
->i_ino
;
1986 __entry
->partial
= partial_cluster
;
1987 __entry
->start
= start
;
1988 __entry
->ee_lblk
= le32_to_cpu(ex
->ee_block
);
1989 __entry
->ee_pblk
= ext4_ext_pblock(ex
);
1990 __entry
->ee_len
= ext4_ext_get_actual_len(ex
);
1993 TP_printk("dev %d,%d ino %lu start_lblk %u last_extent [%u(%llu), %u]"
1994 "partial_cluster %u",
1995 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
1996 (unsigned long) __entry
->ino
,
1997 (unsigned) __entry
->start
,
1998 (unsigned) __entry
->ee_lblk
,
1999 (unsigned long long) __entry
->ee_pblk
,
2000 (unsigned short) __entry
->ee_len
,
2001 (unsigned) __entry
->partial
)
2004 TRACE_EVENT(ext4_ext_rm_idx
,
2005 TP_PROTO(struct inode
*inode
, ext4_fsblk_t pblk
),
2007 TP_ARGS(inode
, pblk
),
2010 __field( dev_t
, dev
)
2011 __field( ino_t
, ino
)
2012 __field( ext4_fsblk_t
, pblk
)
2016 __entry
->dev
= inode
->i_sb
->s_dev
;
2017 __entry
->ino
= inode
->i_ino
;
2018 __entry
->pblk
= pblk
;
2021 TP_printk("dev %d,%d ino %lu index_pblk %llu",
2022 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
2023 (unsigned long) __entry
->ino
,
2024 (unsigned long long) __entry
->pblk
)
2027 TRACE_EVENT(ext4_ext_remove_space
,
2028 TP_PROTO(struct inode
*inode
, ext4_lblk_t start
, int depth
),
2030 TP_ARGS(inode
, start
, depth
),
2033 __field( dev_t
, dev
)
2034 __field( ino_t
, ino
)
2035 __field( ext4_lblk_t
, start
)
2036 __field( int, depth
)
2040 __entry
->dev
= inode
->i_sb
->s_dev
;
2041 __entry
->ino
= inode
->i_ino
;
2042 __entry
->start
= start
;
2043 __entry
->depth
= depth
;
2046 TP_printk("dev %d,%d ino %lu since %u depth %d",
2047 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
2048 (unsigned long) __entry
->ino
,
2049 (unsigned) __entry
->start
,
2053 TRACE_EVENT(ext4_ext_remove_space_done
,
2054 TP_PROTO(struct inode
*inode
, ext4_lblk_t start
, int depth
,
2055 ext4_lblk_t partial
, __le16 eh_entries
),
2057 TP_ARGS(inode
, start
, depth
, partial
, eh_entries
),
2060 __field( dev_t
, dev
)
2061 __field( ino_t
, ino
)
2062 __field( ext4_lblk_t
, start
)
2063 __field( int, depth
)
2064 __field( ext4_lblk_t
, partial
)
2065 __field( unsigned short, eh_entries
)
2069 __entry
->dev
= inode
->i_sb
->s_dev
;
2070 __entry
->ino
= inode
->i_ino
;
2071 __entry
->start
= start
;
2072 __entry
->depth
= depth
;
2073 __entry
->partial
= partial
;
2074 __entry
->eh_entries
= le16_to_cpu(eh_entries
);
2077 TP_printk("dev %d,%d ino %lu since %u depth %d partial %u "
2078 "remaining_entries %u",
2079 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
2080 (unsigned long) __entry
->ino
,
2081 (unsigned) __entry
->start
,
2083 (unsigned) __entry
->partial
,
2084 (unsigned short) __entry
->eh_entries
)
2087 TRACE_EVENT(ext4_es_insert_extent
,
2088 TP_PROTO(struct inode
*inode
, struct extent_status
*es
),
2093 __field( dev_t
, dev
)
2094 __field( ino_t
, ino
)
2095 __field( ext4_lblk_t
, lblk
)
2096 __field( ext4_lblk_t
, len
)
2097 __field( ext4_fsblk_t
, pblk
)
2098 __field( unsigned long long, status
)
2102 __entry
->dev
= inode
->i_sb
->s_dev
;
2103 __entry
->ino
= inode
->i_ino
;
2104 __entry
->lblk
= es
->es_lblk
;
2105 __entry
->len
= es
->es_len
;
2106 __entry
->pblk
= ext4_es_pblock(es
);
2107 __entry
->status
= ext4_es_status(es
);
2110 TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %llx",
2111 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
2112 (unsigned long) __entry
->ino
,
2113 __entry
->lblk
, __entry
->len
,
2114 __entry
->pblk
, __entry
->status
)
2117 TRACE_EVENT(ext4_es_remove_extent
,
2118 TP_PROTO(struct inode
*inode
, ext4_lblk_t lblk
, ext4_lblk_t len
),
2120 TP_ARGS(inode
, lblk
, len
),
2123 __field( dev_t
, dev
)
2124 __field( ino_t
, ino
)
2125 __field( loff_t
, lblk
)
2126 __field( loff_t
, len
)
2130 __entry
->dev
= inode
->i_sb
->s_dev
;
2131 __entry
->ino
= inode
->i_ino
;
2132 __entry
->lblk
= lblk
;
2136 TP_printk("dev %d,%d ino %lu es [%lld/%lld)",
2137 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
2138 (unsigned long) __entry
->ino
,
2139 __entry
->lblk
, __entry
->len
)
2142 TRACE_EVENT(ext4_es_find_delayed_extent_enter
,
2143 TP_PROTO(struct inode
*inode
, ext4_lblk_t lblk
),
2145 TP_ARGS(inode
, lblk
),
2148 __field( dev_t
, dev
)
2149 __field( ino_t
, ino
)
2150 __field( ext4_lblk_t
, lblk
)
2154 __entry
->dev
= inode
->i_sb
->s_dev
;
2155 __entry
->ino
= inode
->i_ino
;
2156 __entry
->lblk
= lblk
;
2159 TP_printk("dev %d,%d ino %lu lblk %u",
2160 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
2161 (unsigned long) __entry
->ino
, __entry
->lblk
)
2164 TRACE_EVENT(ext4_es_find_delayed_extent_exit
,
2165 TP_PROTO(struct inode
*inode
, struct extent_status
*es
),
2170 __field( dev_t
, dev
)
2171 __field( ino_t
, ino
)
2172 __field( ext4_lblk_t
, lblk
)
2173 __field( ext4_lblk_t
, len
)
2174 __field( ext4_fsblk_t
, pblk
)
2175 __field( unsigned long long, status
)
2179 __entry
->dev
= inode
->i_sb
->s_dev
;
2180 __entry
->ino
= inode
->i_ino
;
2181 __entry
->lblk
= es
->es_lblk
;
2182 __entry
->len
= es
->es_len
;
2183 __entry
->pblk
= ext4_es_pblock(es
);
2184 __entry
->status
= ext4_es_status(es
);
2187 TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %llx",
2188 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
2189 (unsigned long) __entry
->ino
,
2190 __entry
->lblk
, __entry
->len
,
2191 __entry
->pblk
, __entry
->status
)
2194 TRACE_EVENT(ext4_es_lookup_extent_enter
,
2195 TP_PROTO(struct inode
*inode
, ext4_lblk_t lblk
),
2197 TP_ARGS(inode
, lblk
),
2200 __field( dev_t
, dev
)
2201 __field( ino_t
, ino
)
2202 __field( ext4_lblk_t
, lblk
)
2206 __entry
->dev
= inode
->i_sb
->s_dev
;
2207 __entry
->ino
= inode
->i_ino
;
2208 __entry
->lblk
= lblk
;
2211 TP_printk("dev %d,%d ino %lu lblk %u",
2212 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
2213 (unsigned long) __entry
->ino
, __entry
->lblk
)
2216 TRACE_EVENT(ext4_es_lookup_extent_exit
,
2217 TP_PROTO(struct inode
*inode
, struct extent_status
*es
,
2220 TP_ARGS(inode
, es
, found
),
2223 __field( dev_t
, dev
)
2224 __field( ino_t
, ino
)
2225 __field( ext4_lblk_t
, lblk
)
2226 __field( ext4_lblk_t
, len
)
2227 __field( ext4_fsblk_t
, pblk
)
2228 __field( unsigned long long, status
)
2229 __field( int, found
)
2233 __entry
->dev
= inode
->i_sb
->s_dev
;
2234 __entry
->ino
= inode
->i_ino
;
2235 __entry
->lblk
= es
->es_lblk
;
2236 __entry
->len
= es
->es_len
;
2237 __entry
->pblk
= ext4_es_pblock(es
);
2238 __entry
->status
= ext4_es_status(es
);
2239 __entry
->found
= found
;
2242 TP_printk("dev %d,%d ino %lu found %d [%u/%u) %llu %llx",
2243 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
2244 (unsigned long) __entry
->ino
, __entry
->found
,
2245 __entry
->lblk
, __entry
->len
,
2246 __entry
->found
? __entry
->pblk
: 0,
2247 __entry
->found
? __entry
->status
: 0)
2250 TRACE_EVENT(ext4_es_shrink_enter
,
2251 TP_PROTO(struct super_block
*sb
, int nr_to_scan
, int cache_cnt
),
2253 TP_ARGS(sb
, nr_to_scan
, cache_cnt
),
2256 __field( dev_t
, dev
)
2257 __field( int, nr_to_scan
)
2258 __field( int, cache_cnt
)
2262 __entry
->dev
= sb
->s_dev
;
2263 __entry
->nr_to_scan
= nr_to_scan
;
2264 __entry
->cache_cnt
= cache_cnt
;
2267 TP_printk("dev %d,%d nr_to_scan %d cache_cnt %d",
2268 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
2269 __entry
->nr_to_scan
, __entry
->cache_cnt
)
2272 TRACE_EVENT(ext4_es_shrink_exit
,
2273 TP_PROTO(struct super_block
*sb
, int shrunk_nr
, int cache_cnt
),
2275 TP_ARGS(sb
, shrunk_nr
, cache_cnt
),
2278 __field( dev_t
, dev
)
2279 __field( int, shrunk_nr
)
2280 __field( int, cache_cnt
)
2284 __entry
->dev
= sb
->s_dev
;
2285 __entry
->shrunk_nr
= shrunk_nr
;
2286 __entry
->cache_cnt
= cache_cnt
;
2289 TP_printk("dev %d,%d shrunk_nr %d cache_cnt %d",
2290 MAJOR(__entry
->dev
), MINOR(__entry
->dev
),
2291 __entry
->shrunk_nr
, __entry
->cache_cnt
)
2294 #endif /* _TRACE_EXT4_H */
2296 /* This part must be outside protection */
2297 #include <trace/define_trace.h>