Re: [PATCH 05/11] cachefiles: Trace active-mark failure
From: Jeff Layton
Date: Fri Jan 21 2022 - 12:53:45 EST
On Tue, 2022-01-18 at 13:54 +0000, David Howells wrote:
> Add a tracepoint to log failure to apply an active mark to a file in
> addition to tracing successfully setting and unsetting the mark.
>
> Also include the backing file inode number in the message logged to dmesg.
>
> Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
> cc: linux-cachefs@xxxxxxxxxx
> ---
>
> fs/cachefiles/namei.c | 4 +++-
> include/trace/events/cachefiles.h | 21 +++++++++++++++++++++
> 2 files changed, 24 insertions(+), 1 deletion(-)
>
> diff --git a/fs/cachefiles/namei.c b/fs/cachefiles/namei.c
> index 52c9f0864a87..f256c8aff7bb 100644
> --- a/fs/cachefiles/namei.c
> +++ b/fs/cachefiles/namei.c
> @@ -25,7 +25,9 @@ static bool __cachefiles_mark_inode_in_use(struct cachefiles_object *object,
> trace_cachefiles_mark_active(object, inode);
> can_use = true;
> } else {
> - pr_notice("cachefiles: Inode already in use: %pd\n", dentry);
> + trace_cachefiles_mark_failed(object, inode);
> + pr_notice("cachefiles: Inode already in use: %pd (B=%lx)\n",
> + dentry, inode->i_ino);
> }
>
> return can_use;
> diff --git a/include/trace/events/cachefiles.h b/include/trace/events/cachefiles.h
> index 093c4acb7a3a..c6f5aa74db89 100644
> --- a/include/trace/events/cachefiles.h
> +++ b/include/trace/events/cachefiles.h
> @@ -573,6 +573,27 @@ TRACE_EVENT(cachefiles_mark_active,
> __entry->obj, __entry->inode)
> );
>
> +TRACE_EVENT(cachefiles_mark_failed,
> + TP_PROTO(struct cachefiles_object *obj,
> + struct inode *inode),
> +
> + TP_ARGS(obj, inode),
> +
> + /* Note that obj may be NULL */
> + TP_STRUCT__entry(
> + __field(unsigned int, obj )
> + __field(ino_t, inode )
> + ),
> +
> + TP_fast_assign(
> + __entry->obj = obj ? obj->debug_id : 0;
> + __entry->inode = inode->i_ino;
> + ),
> +
> + TP_printk("o=%08x B=%lx",
> + __entry->obj, __entry->inode)
> + );
> +
> TRACE_EVENT(cachefiles_mark_inactive,
> TP_PROTO(struct cachefiles_object *obj,
> struct inode *inode),
>
>
Reviewed-by: Jeff Layton <jlayton@xxxxxxxxxx>