aboutsummaryrefslogtreecommitdiffstats
path: root/include/trace
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-02-12 22:28:50 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2015-02-12 22:28:50 -0500
commitc7d7b98671552abade78834c522b7308bda73c0d (patch)
tree062dab589e90a8006d2be5d55f8f95f4f16be93b /include/trace
parent818099574b04c5301eacbbcd441022b353a65466 (diff)
parent1a118ccfd60fc78e64c0a3ab9e85075545839d6e (diff)
Merge tag 'for-f2fs-3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs
Pull f2fs updates from Jaegeuk Kim: "Major changes are to: - add f2fs_io_tracer and F2FS_IOC_GETVERSION - fix wrong acl assignment from parent - fix accessing wrong data blocks - fix wrong condition check for f2fs_sync_fs - align start block address for direct_io - add and refactor the readahead flows of FS metadata - refactor atomic and volatile write policies But most of patches are for clean-ups and minor bug fixes. Some of them refactor old code too" * tag 'for-f2fs-3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (64 commits) f2fs: use spinlock for segmap_lock instead of rwlock f2fs: fix accessing wrong indexed data blocks f2fs: avoid variable length array f2fs: fix sparse warnings f2fs: allocate data blocks in advance for f2fs_direct_IO f2fs: introduce macros to convert bytes and blocks in f2fs f2fs: call set_buffer_new for get_block f2fs: check node page contents all the time f2fs: avoid data offset overflow when lseeking huge file f2fs: fix to use highmem for pages of newly created directory f2fs: introduce a batched trim f2fs: merge {invalidate,release}page for meta/node/data pages f2fs: show the number of writeback pages in stat f2fs: keep PagePrivate during releasepage f2fs: should fail mount when trying to recover data on read-only dev f2fs: split UMOUNT and FASTBOOT flags f2fs: avoid write_checkpoint if f2fs is mounted readonly f2fs: support norecovery mount option f2fs: fix not to drop mount options when retrying fill_super f2fs: merge flags in struct f2fs_sb_info ...
Diffstat (limited to 'include/trace')
-rw-r--r--include/trace/events/f2fs.h148
1 files changed, 70 insertions, 78 deletions
diff --git a/include/trace/events/f2fs.h b/include/trace/events/f2fs.h
index bbc4de9baef7..5422dbfaf97d 100644
--- a/include/trace/events/f2fs.h
+++ b/include/trace/events/f2fs.h
@@ -72,6 +72,7 @@
72#define show_cpreason(type) \ 72#define show_cpreason(type) \
73 __print_symbolic(type, \ 73 __print_symbolic(type, \
74 { CP_UMOUNT, "Umount" }, \ 74 { CP_UMOUNT, "Umount" }, \
75 { CP_FASTBOOT, "Fastboot" }, \
75 { CP_SYNC, "Sync" }, \ 76 { CP_SYNC, "Sync" }, \
76 { CP_DISCARD, "Discard" }) 77 { CP_DISCARD, "Discard" })
77 78
@@ -148,14 +149,14 @@ DEFINE_EVENT(f2fs__inode, f2fs_sync_file_enter,
148 149
149TRACE_EVENT(f2fs_sync_file_exit, 150TRACE_EVENT(f2fs_sync_file_exit,
150 151
151 TP_PROTO(struct inode *inode, bool need_cp, int datasync, int ret), 152 TP_PROTO(struct inode *inode, int need_cp, int datasync, int ret),
152 153
153 TP_ARGS(inode, need_cp, datasync, ret), 154 TP_ARGS(inode, need_cp, datasync, ret),
154 155
155 TP_STRUCT__entry( 156 TP_STRUCT__entry(
156 __field(dev_t, dev) 157 __field(dev_t, dev)
157 __field(ino_t, ino) 158 __field(ino_t, ino)
158 __field(bool, need_cp) 159 __field(int, need_cp)
159 __field(int, datasync) 160 __field(int, datasync)
160 __field(int, ret) 161 __field(int, ret)
161 ), 162 ),
@@ -190,7 +191,7 @@ TRACE_EVENT(f2fs_sync_fs,
190 191
191 TP_fast_assign( 192 TP_fast_assign(
192 __entry->dev = sb->s_dev; 193 __entry->dev = sb->s_dev;
193 __entry->dirty = F2FS_SB(sb)->s_dirty; 194 __entry->dirty = is_sbi_flag_set(F2FS_SB(sb), SBI_IS_DIRTY);
194 __entry->wait = wait; 195 __entry->wait = wait;
195 ), 196 ),
196 197
@@ -440,38 +441,6 @@ TRACE_EVENT(f2fs_truncate_partial_nodes,
440 __entry->err) 441 __entry->err)
441); 442);
442 443
443TRACE_EVENT_CONDITION(f2fs_submit_page_bio,
444
445 TP_PROTO(struct page *page, sector_t blkaddr, int type),
446
447 TP_ARGS(page, blkaddr, type),
448
449 TP_CONDITION(page->mapping),
450
451 TP_STRUCT__entry(
452 __field(dev_t, dev)
453 __field(ino_t, ino)
454 __field(pgoff_t, index)
455 __field(sector_t, blkaddr)
456 __field(int, type)
457 ),
458
459 TP_fast_assign(
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->blkaddr = blkaddr;
464 __entry->type = type;
465 ),
466
467 TP_printk("dev = (%d,%d), ino = %lu, page_index = 0x%lx, "
468 "blkaddr = 0x%llx, bio_type = %s%s",
469 show_dev_ino(__entry),
470 (unsigned long)__entry->index,
471 (unsigned long long)__entry->blkaddr,
472 show_bio_type(__entry->type))
473);
474
475TRACE_EVENT(f2fs_get_data_block, 444TRACE_EVENT(f2fs_get_data_block,
476 TP_PROTO(struct inode *inode, sector_t iblock, 445 TP_PROTO(struct inode *inode, sector_t iblock,
477 struct buffer_head *bh, int ret), 446 struct buffer_head *bh, int ret),
@@ -680,11 +649,63 @@ TRACE_EVENT(f2fs_reserve_new_block,
680 __entry->ofs_in_node) 649 __entry->ofs_in_node)
681); 650);
682 651
652DECLARE_EVENT_CLASS(f2fs__submit_page_bio,
653
654 TP_PROTO(struct page *page, struct f2fs_io_info *fio),
655
656 TP_ARGS(page, fio),
657
658 TP_STRUCT__entry(
659 __field(dev_t, dev)
660 __field(ino_t, ino)
661 __field(pgoff_t, index)
662 __field(block_t, blkaddr)
663 __field(int, rw)
664 __field(int, type)
665 ),
666
667 TP_fast_assign(
668 __entry->dev = page->mapping->host->i_sb->s_dev;
669 __entry->ino = page->mapping->host->i_ino;
670 __entry->index = page->index;
671 __entry->blkaddr = fio->blk_addr;
672 __entry->rw = fio->rw;
673 __entry->type = fio->type;
674 ),
675
676 TP_printk("dev = (%d,%d), ino = %lu, page_index = 0x%lx, "
677 "blkaddr = 0x%llx, rw = %s%s, type = %s",
678 show_dev_ino(__entry),
679 (unsigned long)__entry->index,
680 (unsigned long long)__entry->blkaddr,
681 show_bio_type(__entry->rw),
682 show_block_type(__entry->type))
683);
684
685DEFINE_EVENT_CONDITION(f2fs__submit_page_bio, f2fs_submit_page_bio,
686
687 TP_PROTO(struct page *page, struct f2fs_io_info *fio),
688
689 TP_ARGS(page, fio),
690
691 TP_CONDITION(page->mapping)
692);
693
694DEFINE_EVENT_CONDITION(f2fs__submit_page_bio, f2fs_submit_page_mbio,
695
696 TP_PROTO(struct page *page, struct f2fs_io_info *fio),
697
698 TP_ARGS(page, fio),
699
700 TP_CONDITION(page->mapping)
701);
702
683DECLARE_EVENT_CLASS(f2fs__submit_bio, 703DECLARE_EVENT_CLASS(f2fs__submit_bio,
684 704
685 TP_PROTO(struct super_block *sb, int rw, int type, struct bio *bio), 705 TP_PROTO(struct super_block *sb, struct f2fs_io_info *fio,
706 struct bio *bio),
686 707
687 TP_ARGS(sb, rw, type, bio), 708 TP_ARGS(sb, fio, bio),
688 709
689 TP_STRUCT__entry( 710 TP_STRUCT__entry(
690 __field(dev_t, dev) 711 __field(dev_t, dev)
@@ -696,8 +717,8 @@ DECLARE_EVENT_CLASS(f2fs__submit_bio,
696 717
697 TP_fast_assign( 718 TP_fast_assign(
698 __entry->dev = sb->s_dev; 719 __entry->dev = sb->s_dev;
699 __entry->rw = rw; 720 __entry->rw = fio->rw;
700 __entry->type = type; 721 __entry->type = fio->type;
701 __entry->sector = bio->bi_iter.bi_sector; 722 __entry->sector = bio->bi_iter.bi_sector;
702 __entry->size = bio->bi_iter.bi_size; 723 __entry->size = bio->bi_iter.bi_size;
703 ), 724 ),
@@ -712,18 +733,20 @@ DECLARE_EVENT_CLASS(f2fs__submit_bio,
712 733
713DEFINE_EVENT_CONDITION(f2fs__submit_bio, f2fs_submit_write_bio, 734DEFINE_EVENT_CONDITION(f2fs__submit_bio, f2fs_submit_write_bio,
714 735
715 TP_PROTO(struct super_block *sb, int rw, int type, struct bio *bio), 736 TP_PROTO(struct super_block *sb, struct f2fs_io_info *fio,
737 struct bio *bio),
716 738
717 TP_ARGS(sb, rw, type, bio), 739 TP_ARGS(sb, fio, bio),
718 740
719 TP_CONDITION(bio) 741 TP_CONDITION(bio)
720); 742);
721 743
722DEFINE_EVENT_CONDITION(f2fs__submit_bio, f2fs_submit_read_bio, 744DEFINE_EVENT_CONDITION(f2fs__submit_bio, f2fs_submit_read_bio,
723 745
724 TP_PROTO(struct super_block *sb, int rw, int type, struct bio *bio), 746 TP_PROTO(struct super_block *sb, struct f2fs_io_info *fio,
747 struct bio *bio),
725 748
726 TP_ARGS(sb, rw, type, bio), 749 TP_ARGS(sb, fio, bio),
727 750
728 TP_CONDITION(bio) 751 TP_CONDITION(bio)
729); 752);
@@ -916,38 +939,6 @@ TRACE_EVENT(f2fs_writepages,
916 __entry->for_sync) 939 __entry->for_sync)
917); 940);
918 941
919TRACE_EVENT(f2fs_submit_page_mbio,
920
921 TP_PROTO(struct page *page, int rw, int type, block_t blk_addr),
922
923 TP_ARGS(page, rw, type, blk_addr),
924
925 TP_STRUCT__entry(
926 __field(dev_t, dev)
927 __field(ino_t, ino)
928 __field(int, rw)
929 __field(int, type)
930 __field(pgoff_t, index)
931 __field(block_t, block)
932 ),
933
934 TP_fast_assign(
935 __entry->dev = page->mapping->host->i_sb->s_dev;
936 __entry->ino = page->mapping->host->i_ino;
937 __entry->rw = rw;
938 __entry->type = type;
939 __entry->index = page->index;
940 __entry->block = blk_addr;
941 ),
942
943 TP_printk("dev = (%d,%d), ino = %lu, %s%s, %s, index = %lu, blkaddr = 0x%llx",
944 show_dev_ino(__entry),
945 show_bio_type(__entry->rw),
946 show_block_type(__entry->type),
947 (unsigned long)__entry->index,
948 (unsigned long long)__entry->block)
949);
950
951TRACE_EVENT(f2fs_write_checkpoint, 942TRACE_EVENT(f2fs_write_checkpoint,
952 943
953 TP_PROTO(struct super_block *sb, int reason, char *msg), 944 TP_PROTO(struct super_block *sb, int reason, char *msg),
@@ -998,14 +989,15 @@ TRACE_EVENT(f2fs_issue_discard,
998 989
999TRACE_EVENT(f2fs_issue_flush, 990TRACE_EVENT(f2fs_issue_flush,
1000 991
1001 TP_PROTO(struct super_block *sb, bool nobarrier, bool flush_merge), 992 TP_PROTO(struct super_block *sb, unsigned int nobarrier,
993 unsigned int flush_merge),
1002 994
1003 TP_ARGS(sb, nobarrier, flush_merge), 995 TP_ARGS(sb, nobarrier, flush_merge),
1004 996
1005 TP_STRUCT__entry( 997 TP_STRUCT__entry(
1006 __field(dev_t, dev) 998 __field(dev_t, dev)
1007 __field(bool, nobarrier) 999 __field(unsigned int, nobarrier)
1008 __field(bool, flush_merge) 1000 __field(unsigned int, flush_merge)
1009 ), 1001 ),
1010 1002
1011 TP_fast_assign( 1003 TP_fast_assign(