ext4: indicate via a block bitmap read is prefetched via a tracepoint

Modify the ext4_read_block_bitmap_load tracepoint so that it tells us
whether a block bitmap is being prefetched.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Artem Blagodarenko <artem.blagodarenko@gmail.com>
This commit is contained in:
Theodore Ts'o 2020-07-15 11:48:55 -04:00
parent 529a781ee0
commit ab74c7b23f
2 changed files with 21 additions and 5 deletions

View File

@ -494,7 +494,7 @@ ext4_read_block_bitmap_nowait(struct super_block *sb, ext4_group_t block_group,
* submit the buffer_head for reading
*/
set_buffer_new(bh);
trace_ext4_read_block_bitmap_load(sb, block_group);
trace_ext4_read_block_bitmap_load(sb, block_group, ignore_locked);
bh->b_end_io = ext4_end_bitmap_read;
get_bh(bh);
submit_bh(REQ_OP_READ, REQ_META | REQ_PRIO |

View File

@ -1312,18 +1312,34 @@ DEFINE_EVENT(ext4__bitmap_load, ext4_mb_buddy_bitmap_load,
TP_ARGS(sb, group)
);
DEFINE_EVENT(ext4__bitmap_load, ext4_read_block_bitmap_load,
DEFINE_EVENT(ext4__bitmap_load, ext4_load_inode_bitmap,
TP_PROTO(struct super_block *sb, unsigned long group),
TP_ARGS(sb, group)
);
DEFINE_EVENT(ext4__bitmap_load, ext4_load_inode_bitmap,
TRACE_EVENT(ext4_read_block_bitmap_load,
TP_PROTO(struct super_block *sb, unsigned long group, bool prefetch),
TP_PROTO(struct super_block *sb, unsigned long group),
TP_ARGS(sb, group, prefetch),
TP_ARGS(sb, group)
TP_STRUCT__entry(
__field( dev_t, dev )
__field( __u32, group )
__field( bool, prefetch )
),
TP_fast_assign(
__entry->dev = sb->s_dev;
__entry->group = group;
__entry->prefetch = prefetch;
),
TP_printk("dev %d,%d group %u prefetch %d",
MAJOR(__entry->dev), MINOR(__entry->dev),
__entry->group, __entry->prefetch)
);
TRACE_EVENT(ext4_direct_IO_enter,