Re: [PATCH v2] filemap: add trace events for get_pages, map_pages, and fault
From: Steven Rostedt
Date: Wed Aug 07 2024 - 21:17:42 EST
On Thu, 20 Jun 2024 16:19:03 +0000
Takaya Saeki <takayas@xxxxxxxxxxxx> wrote:
> +DECLARE_EVENT_CLASS(mm_filemap_op_page_cache_range,
> +
> + TP_PROTO(
> + struct address_space *mapping,
> + pgoff_t index,
> + pgoff_t last_index
> + ),
> +
> + TP_ARGS(mapping, index, last_index),
> +
> + TP_STRUCT__entry(
> + __field(unsigned long, i_ino)
> + __field(dev_t, s_dev)
> + __field(unsigned long, index)
> + __field(unsigned long, last_index)
> + ),
> +
> + TP_fast_assign(
> + __entry->i_ino = mapping->host->i_ino;
> + if (mapping->host->i_sb)
> + __entry->s_dev =
> + mapping->host->i_sb->s_dev;
> + else
> + __entry->s_dev = mapping->host->i_rdev;
> + __entry->index = index;
> + __entry->last_index = last_index;
> + ),
> +
> + TP_printk(
> + "dev=%d:%d ino=%lx ofs=%lld max_ofs=%lld",
> + MAJOR(__entry->s_dev),
> + MINOR(__entry->s_dev), __entry->i_ino,
> + ((loff_t)__entry->index) << PAGE_SHIFT,
> + ((loff_t)__entry->last_index) << PAGE_SHIFT
> + )
Hmm, since the "ofs" is in decimal, perhaps we should just make it a range:
"dev=%d:%d ino=%lx ofs=%lld-%lld",
MAJOR(__entry->s_dev),
MINOR(__entry->s_dev), __entry->i_ino,
((loff_t)__entry->index) << PAGE_SHIFT,
(((loff_t)__entry->last_index + 1) << PAGE_SHIFT - 1)
?
-- Steve
> +);
> +
> +DEFINE_EVENT(mm_filemap_op_page_cache_range, mm_filemap_get_pages,
> + TP_PROTO(
> + struct address_space *mapping,
> + pgoff_t index,
> + pgoff_t last_index
> + ),
> + TP_ARGS(mapping, index, last_index)
> +);
> +
> +DEFINE_EVENT(mm_filemap_op_page_cache_range, mm_filemap_map_pages,
> + TP_PROTO(
> + struct address_space *mapping,
> + pgoff_t index,
> + pgoff_t last_index
> + ),
> + TP_ARGS(mapping, index, last_index)
> +);
> +