aboutsummaryrefslogtreecommitdiffstats
path: root/include/trace/events/ext4.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/trace/events/ext4.h')
-rw-r--r--include/trace/events/ext4.h226
1 files changed, 168 insertions, 58 deletions
diff --git a/include/trace/events/ext4.h b/include/trace/events/ext4.h
index d0b6cd3afb2f..01e9e0076a92 100644
--- a/include/trace/events/ext4.h
+++ b/include/trace/events/ext4.h
@@ -306,7 +306,6 @@ TRACE_EVENT(ext4_da_writepages_result,
306 __field( int, pages_written ) 306 __field( int, pages_written )
307 __field( long, pages_skipped ) 307 __field( long, pages_skipped )
308 __field( char, more_io ) 308 __field( char, more_io )
309 __field( char, no_nrwrite_index_update )
310 __field( pgoff_t, writeback_index ) 309 __field( pgoff_t, writeback_index )
311 ), 310 ),
312 311
@@ -317,16 +316,14 @@ TRACE_EVENT(ext4_da_writepages_result,
317 __entry->pages_written = pages_written; 316 __entry->pages_written = pages_written;
318 __entry->pages_skipped = wbc->pages_skipped; 317 __entry->pages_skipped = wbc->pages_skipped;
319 __entry->more_io = wbc->more_io; 318 __entry->more_io = wbc->more_io;
320 __entry->no_nrwrite_index_update = wbc->no_nrwrite_index_update;
321 __entry->writeback_index = inode->i_mapping->writeback_index; 319 __entry->writeback_index = inode->i_mapping->writeback_index;
322 ), 320 ),
323 321
324 TP_printk("dev %s ino %lu ret %d pages_written %d pages_skipped %ld more_io %d no_nrwrite_index_update %d writeback_index %lu", 322 TP_printk("dev %s ino %lu ret %d pages_written %d pages_skipped %ld more_io %d writeback_index %lu",
325 jbd2_dev_to_name(__entry->dev), 323 jbd2_dev_to_name(__entry->dev),
326 (unsigned long) __entry->ino, __entry->ret, 324 (unsigned long) __entry->ino, __entry->ret,
327 __entry->pages_written, __entry->pages_skipped, 325 __entry->pages_written, __entry->pages_skipped,
328 __entry->more_io, 326 __entry->more_io,
329 __entry->no_nrwrite_index_update,
330 (unsigned long) __entry->writeback_index) 327 (unsigned long) __entry->writeback_index)
331); 328);
332 329
@@ -353,7 +350,7 @@ TRACE_EVENT(ext4_discard_blocks,
353 jbd2_dev_to_name(__entry->dev), __entry->blk, __entry->count) 350 jbd2_dev_to_name(__entry->dev), __entry->blk, __entry->count)
354); 351);
355 352
356TRACE_EVENT(ext4_mb_new_inode_pa, 353DECLARE_EVENT_CLASS(ext4__mb_new_pa,
357 TP_PROTO(struct ext4_allocation_context *ac, 354 TP_PROTO(struct ext4_allocation_context *ac,
358 struct ext4_prealloc_space *pa), 355 struct ext4_prealloc_space *pa),
359 356
@@ -381,40 +378,29 @@ TRACE_EVENT(ext4_mb_new_inode_pa,
381 __entry->pa_pstart, __entry->pa_len, __entry->pa_lstart) 378 __entry->pa_pstart, __entry->pa_len, __entry->pa_lstart)
382); 379);
383 380
384TRACE_EVENT(ext4_mb_new_group_pa, 381DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_inode_pa,
382
385 TP_PROTO(struct ext4_allocation_context *ac, 383 TP_PROTO(struct ext4_allocation_context *ac,
386 struct ext4_prealloc_space *pa), 384 struct ext4_prealloc_space *pa),
387 385
388 TP_ARGS(ac, pa), 386 TP_ARGS(ac, pa)
389 387);
390 TP_STRUCT__entry(
391 __field( dev_t, dev )
392 __field( ino_t, ino )
393 __field( __u64, pa_pstart )
394 __field( __u32, pa_len )
395 __field( __u64, pa_lstart )
396 388
397 ), 389DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_group_pa,
398 390
399 TP_fast_assign( 391 TP_PROTO(struct ext4_allocation_context *ac,
400 __entry->dev = ac->ac_sb->s_dev; 392 struct ext4_prealloc_space *pa),
401 __entry->ino = ac->ac_inode->i_ino;
402 __entry->pa_pstart = pa->pa_pstart;
403 __entry->pa_len = pa->pa_len;
404 __entry->pa_lstart = pa->pa_lstart;
405 ),
406 393
407 TP_printk("dev %s ino %lu pstart %llu len %u lstart %llu", 394 TP_ARGS(ac, pa)
408 jbd2_dev_to_name(__entry->dev), (unsigned long) __entry->ino,
409 __entry->pa_pstart, __entry->pa_len, __entry->pa_lstart)
410); 395);
411 396
412TRACE_EVENT(ext4_mb_release_inode_pa, 397TRACE_EVENT(ext4_mb_release_inode_pa,
413 TP_PROTO(struct ext4_allocation_context *ac, 398 TP_PROTO(struct super_block *sb,
399 struct ext4_allocation_context *ac,
414 struct ext4_prealloc_space *pa, 400 struct ext4_prealloc_space *pa,
415 unsigned long long block, unsigned int count), 401 unsigned long long block, unsigned int count),
416 402
417 TP_ARGS(ac, pa, block, count), 403 TP_ARGS(sb, ac, pa, block, count),
418 404
419 TP_STRUCT__entry( 405 TP_STRUCT__entry(
420 __field( dev_t, dev ) 406 __field( dev_t, dev )
@@ -425,8 +411,9 @@ TRACE_EVENT(ext4_mb_release_inode_pa,
425 ), 411 ),
426 412
427 TP_fast_assign( 413 TP_fast_assign(
428 __entry->dev = ac->ac_sb->s_dev; 414 __entry->dev = sb->s_dev;
429 __entry->ino = ac->ac_inode->i_ino; 415 __entry->ino = (ac && ac->ac_inode) ?
416 ac->ac_inode->i_ino : 0;
430 __entry->block = block; 417 __entry->block = block;
431 __entry->count = count; 418 __entry->count = count;
432 ), 419 ),
@@ -437,10 +424,11 @@ TRACE_EVENT(ext4_mb_release_inode_pa,
437); 424);
438 425
439TRACE_EVENT(ext4_mb_release_group_pa, 426TRACE_EVENT(ext4_mb_release_group_pa,
440 TP_PROTO(struct ext4_allocation_context *ac, 427 TP_PROTO(struct super_block *sb,
428 struct ext4_allocation_context *ac,
441 struct ext4_prealloc_space *pa), 429 struct ext4_prealloc_space *pa),
442 430
443 TP_ARGS(ac, pa), 431 TP_ARGS(sb, ac, pa),
444 432
445 TP_STRUCT__entry( 433 TP_STRUCT__entry(
446 __field( dev_t, dev ) 434 __field( dev_t, dev )
@@ -451,8 +439,9 @@ TRACE_EVENT(ext4_mb_release_group_pa,
451 ), 439 ),
452 440
453 TP_fast_assign( 441 TP_fast_assign(
454 __entry->dev = ac->ac_sb->s_dev; 442 __entry->dev = sb->s_dev;
455 __entry->ino = ac->ac_inode->i_ino; 443 __entry->ino = (ac && ac->ac_inode) ?
444 ac->ac_inode->i_ino : 0;
456 __entry->pa_pstart = pa->pa_pstart; 445 __entry->pa_pstart = pa->pa_pstart;
457 __entry->pa_len = pa->pa_len; 446 __entry->pa_len = pa->pa_len;
458 ), 447 ),
@@ -618,9 +607,9 @@ TRACE_EVENT(ext4_free_blocks,
618); 607);
619 608
620TRACE_EVENT(ext4_sync_file, 609TRACE_EVENT(ext4_sync_file,
621 TP_PROTO(struct file *file, struct dentry *dentry, int datasync), 610 TP_PROTO(struct file *file, int datasync),
622 611
623 TP_ARGS(file, dentry, datasync), 612 TP_ARGS(file, datasync),
624 613
625 TP_STRUCT__entry( 614 TP_STRUCT__entry(
626 __field( dev_t, dev ) 615 __field( dev_t, dev )
@@ -630,6 +619,8 @@ TRACE_EVENT(ext4_sync_file,
630 ), 619 ),
631 620
632 TP_fast_assign( 621 TP_fast_assign(
622 struct dentry *dentry = file->f_path.dentry;
623
633 __entry->dev = dentry->d_inode->i_sb->s_dev; 624 __entry->dev = dentry->d_inode->i_sb->s_dev;
634 __entry->ino = dentry->d_inode->i_ino; 625 __entry->ino = dentry->d_inode->i_ino;
635 __entry->datasync = datasync; 626 __entry->datasync = datasync;
@@ -790,7 +781,7 @@ TRACE_EVENT(ext4_mballoc_prealloc,
790 __entry->result_len, __entry->result_logical) 781 __entry->result_len, __entry->result_logical)
791); 782);
792 783
793TRACE_EVENT(ext4_mballoc_discard, 784DECLARE_EVENT_CLASS(ext4__mballoc,
794 TP_PROTO(struct ext4_allocation_context *ac), 785 TP_PROTO(struct ext4_allocation_context *ac),
795 786
796 TP_ARGS(ac), 787 TP_ARGS(ac),
@@ -819,33 +810,18 @@ TRACE_EVENT(ext4_mballoc_discard,
819 __entry->result_len, __entry->result_logical) 810 __entry->result_len, __entry->result_logical)
820); 811);
821 812
822TRACE_EVENT(ext4_mballoc_free, 813DEFINE_EVENT(ext4__mballoc, ext4_mballoc_discard,
814
823 TP_PROTO(struct ext4_allocation_context *ac), 815 TP_PROTO(struct ext4_allocation_context *ac),
824 816
825 TP_ARGS(ac), 817 TP_ARGS(ac)
818);
826 819
827 TP_STRUCT__entry( 820DEFINE_EVENT(ext4__mballoc, ext4_mballoc_free,
828 __field( dev_t, dev )
829 __field( ino_t, ino )
830 __field( __u32, result_logical )
831 __field( int, result_start )
832 __field( __u32, result_group )
833 __field( int, result_len )
834 ),
835 821
836 TP_fast_assign( 822 TP_PROTO(struct ext4_allocation_context *ac),
837 __entry->dev = ac->ac_inode->i_sb->s_dev;
838 __entry->ino = ac->ac_inode->i_ino;
839 __entry->result_logical = ac->ac_b_ex.fe_logical;
840 __entry->result_start = ac->ac_b_ex.fe_start;
841 __entry->result_group = ac->ac_b_ex.fe_group;
842 __entry->result_len = ac->ac_b_ex.fe_len;
843 ),
844 823
845 TP_printk("dev %s inode %lu extent %u/%d/%u@%u ", 824 TP_ARGS(ac)
846 jbd2_dev_to_name(__entry->dev), (unsigned long) __entry->ino,
847 __entry->result_group, __entry->result_start,
848 __entry->result_len, __entry->result_logical)
849); 825);
850 826
851TRACE_EVENT(ext4_forget, 827TRACE_EVENT(ext4_forget,
@@ -874,6 +850,140 @@ TRACE_EVENT(ext4_forget,
874 __entry->mode, __entry->is_metadata, __entry->block) 850 __entry->mode, __entry->is_metadata, __entry->block)
875); 851);
876 852
853TRACE_EVENT(ext4_da_update_reserve_space,
854 TP_PROTO(struct inode *inode, int used_blocks),
855
856 TP_ARGS(inode, used_blocks),
857
858 TP_STRUCT__entry(
859 __field( dev_t, dev )
860 __field( ino_t, ino )
861 __field( umode_t, mode )
862 __field( __u64, i_blocks )
863 __field( int, used_blocks )
864 __field( int, reserved_data_blocks )
865 __field( int, reserved_meta_blocks )
866 __field( int, allocated_meta_blocks )
867 ),
868
869 TP_fast_assign(
870 __entry->dev = inode->i_sb->s_dev;
871 __entry->ino = inode->i_ino;
872 __entry->mode = inode->i_mode;
873 __entry->i_blocks = inode->i_blocks;
874 __entry->used_blocks = used_blocks;
875 __entry->reserved_data_blocks = EXT4_I(inode)->i_reserved_data_blocks;
876 __entry->reserved_meta_blocks = EXT4_I(inode)->i_reserved_meta_blocks;
877 __entry->allocated_meta_blocks = EXT4_I(inode)->i_allocated_meta_blocks;
878 ),
879
880 TP_printk("dev %s ino %lu mode 0%o i_blocks %llu used_blocks %d reserved_data_blocks %d reserved_meta_blocks %d allocated_meta_blocks %d",
881 jbd2_dev_to_name(__entry->dev), (unsigned long) __entry->ino,
882 __entry->mode, (unsigned long long) __entry->i_blocks,
883 __entry->used_blocks, __entry->reserved_data_blocks,
884 __entry->reserved_meta_blocks, __entry->allocated_meta_blocks)
885);
886
887TRACE_EVENT(ext4_da_reserve_space,
888 TP_PROTO(struct inode *inode, int md_needed),
889
890 TP_ARGS(inode, md_needed),
891
892 TP_STRUCT__entry(
893 __field( dev_t, dev )
894 __field( ino_t, ino )
895 __field( umode_t, mode )
896 __field( __u64, i_blocks )
897 __field( int, md_needed )
898 __field( int, reserved_data_blocks )
899 __field( int, reserved_meta_blocks )
900 ),
901
902 TP_fast_assign(
903 __entry->dev = inode->i_sb->s_dev;
904 __entry->ino = inode->i_ino;
905 __entry->mode = inode->i_mode;
906 __entry->i_blocks = inode->i_blocks;
907 __entry->md_needed = md_needed;
908 __entry->reserved_data_blocks = EXT4_I(inode)->i_reserved_data_blocks;
909 __entry->reserved_meta_blocks = EXT4_I(inode)->i_reserved_meta_blocks;
910 ),
911
912 TP_printk("dev %s ino %lu mode 0%o i_blocks %llu md_needed %d reserved_data_blocks %d reserved_meta_blocks %d",
913 jbd2_dev_to_name(__entry->dev), (unsigned long) __entry->ino,
914 __entry->mode, (unsigned long long) __entry->i_blocks,
915 __entry->md_needed, __entry->reserved_data_blocks,
916 __entry->reserved_meta_blocks)
917);
918
919TRACE_EVENT(ext4_da_release_space,
920 TP_PROTO(struct inode *inode, int freed_blocks),
921
922 TP_ARGS(inode, freed_blocks),
923
924 TP_STRUCT__entry(
925 __field( dev_t, dev )
926 __field( ino_t, ino )
927 __field( umode_t, mode )
928 __field( __u64, i_blocks )
929 __field( int, freed_blocks )
930 __field( int, reserved_data_blocks )
931 __field( int, reserved_meta_blocks )
932 __field( int, allocated_meta_blocks )
933 ),
934
935 TP_fast_assign(
936 __entry->dev = inode->i_sb->s_dev;
937 __entry->ino = inode->i_ino;
938 __entry->mode = inode->i_mode;
939 __entry->i_blocks = inode->i_blocks;
940 __entry->freed_blocks = freed_blocks;
941 __entry->reserved_data_blocks = EXT4_I(inode)->i_reserved_data_blocks;
942 __entry->reserved_meta_blocks = EXT4_I(inode)->i_reserved_meta_blocks;
943 __entry->allocated_meta_blocks = EXT4_I(inode)->i_allocated_meta_blocks;
944 ),
945
946 TP_printk("dev %s ino %lu mode 0%o i_blocks %llu freed_blocks %d reserved_data_blocks %d reserved_meta_blocks %d allocated_meta_blocks %d",
947 jbd2_dev_to_name(__entry->dev), (unsigned long) __entry->ino,
948 __entry->mode, (unsigned long long) __entry->i_blocks,
949 __entry->freed_blocks, __entry->reserved_data_blocks,
950 __entry->reserved_meta_blocks, __entry->allocated_meta_blocks)
951);
952
953DECLARE_EVENT_CLASS(ext4__bitmap_load,
954 TP_PROTO(struct super_block *sb, unsigned long group),
955
956 TP_ARGS(sb, group),
957
958 TP_STRUCT__entry(
959 __field( dev_t, dev )
960 __field( __u32, group )
961
962 ),
963
964 TP_fast_assign(
965 __entry->dev = sb->s_dev;
966 __entry->group = group;
967 ),
968
969 TP_printk("dev %s group %u",
970 jbd2_dev_to_name(__entry->dev), __entry->group)
971);
972
973DEFINE_EVENT(ext4__bitmap_load, ext4_mb_bitmap_load,
974
975 TP_PROTO(struct super_block *sb, unsigned long group),
976
977 TP_ARGS(sb, group)
978);
979
980DEFINE_EVENT(ext4__bitmap_load, ext4_mb_buddy_bitmap_load,
981
982 TP_PROTO(struct super_block *sb, unsigned long group),
983
984 TP_ARGS(sb, group)
985);
986
877#endif /* _TRACE_EXT4_H */ 987#endif /* _TRACE_EXT4_H */
878 988
879/* This part must be outside protection */ 989/* This part must be outside protection */