On Sun, Aug 13, 2017 at 12:02:44PM +0800, Anand Jain wrote:
> From: Anand Jain <anand.j...@oracle.com>
> 
> This patch adds compression and decompression trace points for the
> purpose of debugging.
> 
> Signed-off-by: Anand Jain <anand.j...@oracle.com>
> Reviewed-by: Nikolay Borisov <nbori...@suse.com>
> ---
> v3:
>  . Rename to a simple names, without worrying about being
>    compatible with the future naming.
>  . The type was not working fixed it.
> v2:
>  . Use better naming.
>    (If transform is not good enough I have run out of ideas, pls suggest).
>  . To be applied on top of
>    git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-next
>    (tested without namelen check patch set)
>  fs/btrfs/compression.c       | 11 +++++++++++
>  include/trace/events/btrfs.h | 39 +++++++++++++++++++++++++++++++++++++++
>  2 files changed, 50 insertions(+)
> 
> diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c
> index d2ef9ac2a630..4a652f67ee87 100644
> --- a/fs/btrfs/compression.c
> +++ b/fs/btrfs/compression.c
> @@ -895,6 +895,10 @@ int btrfs_compress_pages(int type, struct address_space 
> *mapping,
>                                                     start, pages,
>                                                     out_pages,
>                                                     total_in, total_out);
> +
> +     trace_btrfs_compress(1, 1, mapping->host, type, *total_in,
> +                                             *total_out, start, ret);
> +
>       free_workspace(type, workspace);
>       return ret;
>  }
> @@ -921,6 +925,10 @@ static int btrfs_decompress_bio(struct compressed_bio 
> *cb)
>  
>       workspace = find_workspace(type);
>       ret = btrfs_compress_op[type - 1]->decompress_bio(workspace, cb);
> +
> +     trace_btrfs_compress(0, 0, cb->inode, type,
> +                             cb->compressed_len, cb->len, cb->start, ret);
> +
>       free_workspace(type, workspace);
>  
>       return ret;
> @@ -943,6 +951,9 @@ int btrfs_decompress(int type, unsigned char *data_in, 
> struct page *dest_page,
>                                                 dest_page, start_byte,
>                                                 srclen, destlen);
>  
> +     trace_btrfs_compress(0, 1, dest_page->mapping->host,
> +                             type, srclen, destlen, start_byte, ret);
> +
>       free_workspace(type, workspace);
>       return ret;
>  }
> diff --git a/include/trace/events/btrfs.h b/include/trace/events/btrfs.h
> index d412c49f5a6a..db33d6649d12 100644
> --- a/include/trace/events/btrfs.h
> +++ b/include/trace/events/btrfs.h
> @@ -1629,6 +1629,45 @@ TRACE_EVENT(qgroup_meta_reserve,
>               show_root_type(__entry->refroot), __entry->diff)
>  );
>  
> +TRACE_EVENT(btrfs_compress,
> +
> +     TP_PROTO(int compress, int page, struct inode *inode,
> +                     unsigned int type,
> +                     unsigned long len_before, unsigned long len_after,
> +                     unsigned long start, int ret),
> +
> +     TP_ARGS(compress, page, inode, type, len_before,
> +                                     len_after, start, ret),
> +
> +     TP_STRUCT__entry_btrfs(
> +             __field(int,                            compress)
> +             __field(int,                            page)
> +             __field(ino_t,                          i_ino)

u64 for the inode number

> +             __field(unsigned int,                   type)
> +             __field(unsigned long,                  len_before)
> +             __field(unsigned long,                  len_after)
> +             __field(unsigned long,                  start)

and u64 here

> +             __field(int,                            ret)
> +     ),
> +
> +     TP_fast_assign_btrfs(btrfs_sb(inode->i_sb),
> +             __entry->compress       = compress;
> +             __entry->page           = page;
> +             __entry->i_ino          = inode->i_ino;
> +             __entry->type           = type;
> +             __entry->len_before     = len_before;
> +             __entry->len_after      = len_after;
> +             __entry->start          = start;
> +             __entry->ret            = ret;
> +     ),
> +
> +     TP_printk_btrfs("%s %s ino=%lu type=%s len_before=%lu len_after=%lu 
> start=%lu ret=%d",

The format looks good, although I'm not sure we need to make the
distinction between page and bio compression. This also needs the extra
argument for the tracepoint.

> +             __entry->compress ? "compress":"uncompress",

decompress

> +             __entry->page ? "page":"bio", __entry->i_ino,

add spaces around :

> +             show_compress_type(__entry->type),
> +             __entry->len_before, __entry->len_after, __entry->start,
> +             __entry->ret)
> +);
>  #endif /* _TRACE_BTRFS_H */
>  
>  /* This part must be outside protection */
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to