|
@@ -18,13 +18,14 @@
|
|
|
|
|
|
#define show_bio_type(type) \
|
|
#define show_bio_type(type) \
|
|
__print_symbolic(type, \
|
|
__print_symbolic(type, \
|
|
- { READ, "READ" }, \
|
|
|
|
- { READA, "READAHEAD" }, \
|
|
|
|
- { READ_SYNC, "READ_SYNC" }, \
|
|
|
|
- { WRITE, "WRITE" }, \
|
|
|
|
- { WRITE_SYNC, "WRITE_SYNC" }, \
|
|
|
|
- { WRITE_FLUSH, "WRITE_FLUSH" }, \
|
|
|
|
- { WRITE_FUA, "WRITE_FUA" })
|
|
|
|
|
|
+ { READ, "READ" }, \
|
|
|
|
+ { READA, "READAHEAD" }, \
|
|
|
|
+ { READ_SYNC, "READ_SYNC" }, \
|
|
|
|
+ { WRITE, "WRITE" }, \
|
|
|
|
+ { WRITE_SYNC, "WRITE_SYNC" }, \
|
|
|
|
+ { WRITE_FLUSH, "WRITE_FLUSH" }, \
|
|
|
|
+ { WRITE_FUA, "WRITE_FUA" }, \
|
|
|
|
+ { WRITE_FLUSH_FUA, "WRITE_FLUSH_FUA" })
|
|
|
|
|
|
#define show_data_type(type) \
|
|
#define show_data_type(type) \
|
|
__print_symbolic(type, \
|
|
__print_symbolic(type, \
|
|
@@ -598,36 +599,50 @@ TRACE_EVENT(f2fs_reserve_new_block,
|
|
__entry->ofs_in_node)
|
|
__entry->ofs_in_node)
|
|
);
|
|
);
|
|
|
|
|
|
-TRACE_EVENT(f2fs_do_submit_bio,
|
|
|
|
|
|
+DECLARE_EVENT_CLASS(f2fs__submit_bio,
|
|
|
|
|
|
- TP_PROTO(struct super_block *sb, int btype, bool sync, struct bio *bio),
|
|
|
|
|
|
+ TP_PROTO(struct super_block *sb, int rw, int type, struct bio *bio),
|
|
|
|
|
|
- TP_ARGS(sb, btype, sync, bio),
|
|
|
|
|
|
+ TP_ARGS(sb, rw, type, bio),
|
|
|
|
|
|
TP_STRUCT__entry(
|
|
TP_STRUCT__entry(
|
|
__field(dev_t, dev)
|
|
__field(dev_t, dev)
|
|
- __field(int, btype)
|
|
|
|
- __field(bool, sync)
|
|
|
|
|
|
+ __field(int, rw)
|
|
|
|
+ __field(int, type)
|
|
__field(sector_t, sector)
|
|
__field(sector_t, sector)
|
|
__field(unsigned int, size)
|
|
__field(unsigned int, size)
|
|
),
|
|
),
|
|
|
|
|
|
TP_fast_assign(
|
|
TP_fast_assign(
|
|
__entry->dev = sb->s_dev;
|
|
__entry->dev = sb->s_dev;
|
|
- __entry->btype = btype;
|
|
|
|
- __entry->sync = sync;
|
|
|
|
|
|
+ __entry->rw = rw;
|
|
|
|
+ __entry->type = type;
|
|
__entry->sector = bio->bi_sector;
|
|
__entry->sector = bio->bi_sector;
|
|
__entry->size = bio->bi_size;
|
|
__entry->size = bio->bi_size;
|
|
),
|
|
),
|
|
|
|
|
|
- TP_printk("dev = (%d,%d), type = %s, io = %s, sector = %lld, size = %u",
|
|
|
|
|
|
+ TP_printk("dev = (%d,%d), %s, %s, sector = %lld, size = %u",
|
|
show_dev(__entry),
|
|
show_dev(__entry),
|
|
- show_block_type(__entry->btype),
|
|
|
|
- __entry->sync ? "sync" : "no sync",
|
|
|
|
|
|
+ show_bio_type(__entry->rw),
|
|
|
|
+ show_block_type(__entry->type),
|
|
(unsigned long long)__entry->sector,
|
|
(unsigned long long)__entry->sector,
|
|
__entry->size)
|
|
__entry->size)
|
|
);
|
|
);
|
|
|
|
|
|
|
|
+DEFINE_EVENT(f2fs__submit_bio, f2fs_submit_write_bio,
|
|
|
|
+
|
|
|
|
+ TP_PROTO(struct super_block *sb, int rw, int type, struct bio *bio),
|
|
|
|
+
|
|
|
|
+ TP_ARGS(sb, rw, type, bio)
|
|
|
|
+);
|
|
|
|
+
|
|
|
|
+DEFINE_EVENT(f2fs__submit_bio, f2fs_submit_read_bio,
|
|
|
|
+
|
|
|
|
+ TP_PROTO(struct super_block *sb, int rw, int type, struct bio *bio),
|
|
|
|
+
|
|
|
|
+ TP_ARGS(sb, rw, type, bio)
|
|
|
|
+);
|
|
|
|
+
|
|
DECLARE_EVENT_CLASS(f2fs__page,
|
|
DECLARE_EVENT_CLASS(f2fs__page,
|
|
|
|
|
|
TP_PROTO(struct page *page, int type),
|
|
TP_PROTO(struct page *page, int type),
|