Commit d50aaeec authored by Jaegeuk Kim's avatar Jaegeuk Kim

f2fs: show actual device info in tracepoints

This patch shows actual device information in the tracepoints.
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent 5b6c6be2
...@@ -426,11 +426,11 @@ static int submit_flush_wait(struct f2fs_sb_info *sbi) ...@@ -426,11 +426,11 @@ static int submit_flush_wait(struct f2fs_sb_info *sbi)
int ret = __submit_flush_wait(sbi->sb->s_bdev); int ret = __submit_flush_wait(sbi->sb->s_bdev);
int i; int i;
trace_f2fs_issue_flush(sbi->sb, test_opt(sbi, NOBARRIER),
test_opt(sbi, FLUSH_MERGE));
if (sbi->s_ndevs && !ret) { if (sbi->s_ndevs && !ret) {
for (i = 1; i < sbi->s_ndevs; i++) { for (i = 1; i < sbi->s_ndevs; i++) {
trace_f2fs_issue_flush(FDEV(i).bdev,
test_opt(sbi, NOBARRIER),
test_opt(sbi, FLUSH_MERGE));
ret = __submit_flush_wait(FDEV(i).bdev); ret = __submit_flush_wait(FDEV(i).bdev);
if (ret) if (ret)
break; break;
...@@ -758,7 +758,7 @@ static int __f2fs_issue_discard_async(struct f2fs_sb_info *sbi, ...@@ -758,7 +758,7 @@ static int __f2fs_issue_discard_async(struct f2fs_sb_info *sbi,
block_t lblkstart = blkstart; block_t lblkstart = blkstart;
int err; int err;
trace_f2fs_issue_discard(sbi->sb, blkstart, blklen); trace_f2fs_issue_discard(bdev, blkstart, blklen);
if (sbi->s_ndevs) { if (sbi->s_ndevs) {
int devi = f2fs_target_device_index(sbi, blkstart); int devi = f2fs_target_device_index(sbi, blkstart);
...@@ -815,7 +815,7 @@ static int __f2fs_issue_discard_zone(struct f2fs_sb_info *sbi, ...@@ -815,7 +815,7 @@ static int __f2fs_issue_discard_zone(struct f2fs_sb_info *sbi,
return __f2fs_issue_discard_async(sbi, bdev, blkstart, blklen); return __f2fs_issue_discard_async(sbi, bdev, blkstart, blklen);
case BLK_ZONE_TYPE_SEQWRITE_REQ: case BLK_ZONE_TYPE_SEQWRITE_REQ:
case BLK_ZONE_TYPE_SEQWRITE_PREF: case BLK_ZONE_TYPE_SEQWRITE_PREF:
trace_f2fs_issue_reset_zone(sbi->sb, blkstart); trace_f2fs_issue_reset_zone(bdev, blkstart);
return blkdev_reset_zones(bdev, sector, return blkdev_reset_zones(bdev, sector,
nr_sects, GFP_NOFS); nr_sects, GFP_NOFS);
default: default:
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
#include <linux/tracepoint.h> #include <linux/tracepoint.h>
#define show_dev(entry) MAJOR(entry->dev), MINOR(entry->dev) #define show_dev(dev) MAJOR(dev), MINOR(dev)
#define show_dev_ino(entry) show_dev(entry), (unsigned long)entry->ino #define show_dev_ino(entry) show_dev(entry->dev), (unsigned long)entry->ino
TRACE_DEFINE_ENUM(NODE); TRACE_DEFINE_ENUM(NODE);
TRACE_DEFINE_ENUM(DATA); TRACE_DEFINE_ENUM(DATA);
...@@ -245,7 +245,7 @@ TRACE_EVENT(f2fs_sync_fs, ...@@ -245,7 +245,7 @@ TRACE_EVENT(f2fs_sync_fs,
), ),
TP_printk("dev = (%d,%d), superblock is %s, wait = %d", TP_printk("dev = (%d,%d), superblock is %s, wait = %d",
show_dev(__entry), show_dev(__entry->dev),
__entry->dirty ? "dirty" : "not dirty", __entry->dirty ? "dirty" : "not dirty",
__entry->wait) __entry->wait)
); );
...@@ -544,7 +544,7 @@ TRACE_EVENT(f2fs_background_gc, ...@@ -544,7 +544,7 @@ TRACE_EVENT(f2fs_background_gc,
), ),
TP_printk("dev = (%d,%d), wait_ms = %ld, prefree = %u, free = %u", TP_printk("dev = (%d,%d), wait_ms = %ld, prefree = %u, free = %u",
show_dev(__entry), show_dev(__entry->dev),
__entry->wait_ms, __entry->wait_ms,
__entry->prefree, __entry->prefree,
__entry->free) __entry->free)
...@@ -586,7 +586,7 @@ TRACE_EVENT(f2fs_get_victim, ...@@ -586,7 +586,7 @@ TRACE_EVENT(f2fs_get_victim,
TP_printk("dev = (%d,%d), type = %s, policy = (%s, %s, %s), victim = %u " TP_printk("dev = (%d,%d), type = %s, policy = (%s, %s, %s), victim = %u "
"ofs_unit = %u, pre_victim_secno = %d, prefree = %u, free = %u", "ofs_unit = %u, pre_victim_secno = %d, prefree = %u, free = %u",
show_dev(__entry), show_dev(__entry->dev),
show_data_type(__entry->type), show_data_type(__entry->type),
show_gc_type(__entry->gc_type), show_gc_type(__entry->gc_type),
show_alloc_mode(__entry->alloc_mode), show_alloc_mode(__entry->alloc_mode),
...@@ -723,7 +723,7 @@ TRACE_EVENT(f2fs_reserve_new_blocks, ...@@ -723,7 +723,7 @@ TRACE_EVENT(f2fs_reserve_new_blocks,
), ),
TP_printk("dev = (%d,%d), nid = %u, ofs_in_node = %u, count = %llu", TP_printk("dev = (%d,%d), nid = %u, ofs_in_node = %u, count = %llu",
show_dev(__entry), show_dev(__entry->dev),
(unsigned int)__entry->nid, (unsigned int)__entry->nid,
__entry->ofs_in_node, __entry->ofs_in_node,
(unsigned long long)__entry->count) (unsigned long long)__entry->count)
...@@ -793,6 +793,7 @@ DECLARE_EVENT_CLASS(f2fs__bio, ...@@ -793,6 +793,7 @@ DECLARE_EVENT_CLASS(f2fs__bio,
TP_STRUCT__entry( TP_STRUCT__entry(
__field(dev_t, dev) __field(dev_t, dev)
__field(dev_t, target)
__field(int, op) __field(int, op)
__field(int, op_flags) __field(int, op_flags)
__field(int, type) __field(int, type)
...@@ -802,6 +803,7 @@ DECLARE_EVENT_CLASS(f2fs__bio, ...@@ -802,6 +803,7 @@ DECLARE_EVENT_CLASS(f2fs__bio,
TP_fast_assign( TP_fast_assign(
__entry->dev = sb->s_dev; __entry->dev = sb->s_dev;
__entry->target = bio->bi_bdev->bd_dev;
__entry->op = bio_op(bio); __entry->op = bio_op(bio);
__entry->op_flags = bio->bi_opf; __entry->op_flags = bio->bi_opf;
__entry->type = type; __entry->type = type;
...@@ -809,8 +811,9 @@ DECLARE_EVENT_CLASS(f2fs__bio, ...@@ -809,8 +811,9 @@ DECLARE_EVENT_CLASS(f2fs__bio,
__entry->size = bio->bi_iter.bi_size; __entry->size = bio->bi_iter.bi_size;
), ),
TP_printk("dev = (%d,%d), rw = %s%s, %s, sector = %lld, size = %u", TP_printk("dev = (%d,%d)/(%d,%d), rw = %s%s, %s, sector = %lld, size = %u",
show_dev(__entry), show_dev(__entry->target),
show_dev(__entry->dev),
show_bio_type(__entry->op, __entry->op_flags), show_bio_type(__entry->op, __entry->op_flags),
show_block_type(__entry->type), show_block_type(__entry->type),
(unsigned long long)__entry->sector, (unsigned long long)__entry->sector,
...@@ -1107,16 +1110,16 @@ TRACE_EVENT(f2fs_write_checkpoint, ...@@ -1107,16 +1110,16 @@ TRACE_EVENT(f2fs_write_checkpoint,
), ),
TP_printk("dev = (%d,%d), checkpoint for %s, state = %s", TP_printk("dev = (%d,%d), checkpoint for %s, state = %s",
show_dev(__entry), show_dev(__entry->dev),
show_cpreason(__entry->reason), show_cpreason(__entry->reason),
__entry->msg) __entry->msg)
); );
TRACE_EVENT(f2fs_issue_discard, TRACE_EVENT(f2fs_issue_discard,
TP_PROTO(struct super_block *sb, block_t blkstart, block_t blklen), TP_PROTO(struct block_device *dev, block_t blkstart, block_t blklen),
TP_ARGS(sb, blkstart, blklen), TP_ARGS(dev, blkstart, blklen),
TP_STRUCT__entry( TP_STRUCT__entry(
__field(dev_t, dev) __field(dev_t, dev)
...@@ -1125,22 +1128,22 @@ TRACE_EVENT(f2fs_issue_discard, ...@@ -1125,22 +1128,22 @@ TRACE_EVENT(f2fs_issue_discard,
), ),
TP_fast_assign( TP_fast_assign(
__entry->dev = sb->s_dev; __entry->dev = dev->bd_dev;
__entry->blkstart = blkstart; __entry->blkstart = blkstart;
__entry->blklen = blklen; __entry->blklen = blklen;
), ),
TP_printk("dev = (%d,%d), blkstart = 0x%llx, blklen = 0x%llx", TP_printk("dev = (%d,%d), blkstart = 0x%llx, blklen = 0x%llx",
show_dev(__entry), show_dev(__entry->dev),
(unsigned long long)__entry->blkstart, (unsigned long long)__entry->blkstart,
(unsigned long long)__entry->blklen) (unsigned long long)__entry->blklen)
); );
TRACE_EVENT(f2fs_issue_reset_zone, TRACE_EVENT(f2fs_issue_reset_zone,
TP_PROTO(struct super_block *sb, block_t blkstart), TP_PROTO(struct block_device *dev, block_t blkstart),
TP_ARGS(sb, blkstart), TP_ARGS(dev, blkstart),
TP_STRUCT__entry( TP_STRUCT__entry(
__field(dev_t, dev) __field(dev_t, dev)
...@@ -1148,21 +1151,21 @@ TRACE_EVENT(f2fs_issue_reset_zone, ...@@ -1148,21 +1151,21 @@ TRACE_EVENT(f2fs_issue_reset_zone,
), ),
TP_fast_assign( TP_fast_assign(
__entry->dev = sb->s_dev; __entry->dev = dev->bd_dev;
__entry->blkstart = blkstart; __entry->blkstart = blkstart;
), ),
TP_printk("dev = (%d,%d), reset zone at block = 0x%llx", TP_printk("dev = (%d,%d), reset zone at block = 0x%llx",
show_dev(__entry), show_dev(__entry->dev),
(unsigned long long)__entry->blkstart) (unsigned long long)__entry->blkstart)
); );
TRACE_EVENT(f2fs_issue_flush, TRACE_EVENT(f2fs_issue_flush,
TP_PROTO(struct super_block *sb, unsigned int nobarrier, TP_PROTO(struct block_device *dev, unsigned int nobarrier,
unsigned int flush_merge), unsigned int flush_merge),
TP_ARGS(sb, nobarrier, flush_merge), TP_ARGS(dev, nobarrier, flush_merge),
TP_STRUCT__entry( TP_STRUCT__entry(
__field(dev_t, dev) __field(dev_t, dev)
...@@ -1171,13 +1174,13 @@ TRACE_EVENT(f2fs_issue_flush, ...@@ -1171,13 +1174,13 @@ TRACE_EVENT(f2fs_issue_flush,
), ),
TP_fast_assign( TP_fast_assign(
__entry->dev = sb->s_dev; __entry->dev = dev->bd_dev;
__entry->nobarrier = nobarrier; __entry->nobarrier = nobarrier;
__entry->flush_merge = flush_merge; __entry->flush_merge = flush_merge;
), ),
TP_printk("dev = (%d,%d), %s %s", TP_printk("dev = (%d,%d), %s %s",
show_dev(__entry), show_dev(__entry->dev),
__entry->nobarrier ? "skip (nobarrier)" : "issue", __entry->nobarrier ? "skip (nobarrier)" : "issue",
__entry->flush_merge ? " with flush_merge" : "") __entry->flush_merge ? " with flush_merge" : "")
); );
...@@ -1292,7 +1295,7 @@ TRACE_EVENT(f2fs_shrink_extent_tree, ...@@ -1292,7 +1295,7 @@ TRACE_EVENT(f2fs_shrink_extent_tree,
), ),
TP_printk("dev = (%d,%d), shrunk: node_cnt = %u, tree_cnt = %u", TP_printk("dev = (%d,%d), shrunk: node_cnt = %u, tree_cnt = %u",
show_dev(__entry), show_dev(__entry->dev),
__entry->node_cnt, __entry->node_cnt,
__entry->tree_cnt) __entry->tree_cnt)
); );
...@@ -1339,7 +1342,7 @@ DECLARE_EVENT_CLASS(f2fs_sync_dirty_inodes, ...@@ -1339,7 +1342,7 @@ DECLARE_EVENT_CLASS(f2fs_sync_dirty_inodes,
), ),
TP_printk("dev = (%d,%d), %s, dirty count = %lld", TP_printk("dev = (%d,%d), %s, dirty count = %lld",
show_dev(__entry), show_dev(__entry->dev),
show_file_type(__entry->type), show_file_type(__entry->type),
__entry->count) __entry->count)
); );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment