* [PATCH] btrfs: add compression trace points
@ 2017-05-24 3:10 Anand Jain
0 siblings, 0 replies; only message in thread
From: Anand Jain @ 2017-05-24 3:10 UTC (permalink / raw)
To: linux-btrfs; +Cc: dsterba
This patch adds compression and decompression trace points for the
purpose of debugging.
Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
Note:
I have used same trace function for both compress and decompress
as I wanted to maintain compress and decompress debug data aligned.
fs/btrfs/compression.c | 10 ++++++++++
include/trace/events/btrfs.h | 36 ++++++++++++++++++++++++++++++++++++
2 files changed, 46 insertions(+)
diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c
index ee934e612f15..9b0562cd1b7f 100644
--- a/fs/btrfs/compression.c
+++ b/fs/btrfs/compression.c
@@ -938,6 +938,10 @@ int btrfs_compress_pages(int type, struct address_space *mapping,
start, pages,
out_pages,
total_in, total_out);
+
+ trace_btrfs_encoder(1, 0, mapping->host, type, *total_in,
+ *total_out, start, ret);
+
free_workspace(type, workspace);
return ret;
}
@@ -968,6 +972,9 @@ static int btrfs_decompress_bio(struct compressed_bio *cb)
cb->compressed_pages, cb->start, cb->orig_bio,
cb->compressed_len);
+ trace_btrfs_encoder(0, 1, cb->inode, type,
+ cb->compressed_len, cb->len, cb->start, ret);
+
free_workspace(type, workspace);
return ret;
}
@@ -989,6 +996,9 @@ int btrfs_decompress(int type, unsigned char *data_in, struct page *dest_page,
dest_page, start_byte,
srclen, destlen);
+ trace_btrfs_encoder(0, 0, 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 e37973526153..1ebffcd005a1 100644
--- a/include/trace/events/btrfs.h
+++ b/include/trace/events/btrfs.h
@@ -1658,6 +1658,42 @@ TRACE_EVENT(qgroup_meta_reserve,
show_root_type(__entry->refroot), __entry->diff)
);
+TRACE_EVENT(btrfs_encoder,
+
+ TP_PROTO(int encode, int bio, struct inode *inode, int type,
+ unsigned long bfr, unsigned long aft,
+ unsigned long start, int ret),
+
+ TP_ARGS(encode, bio, inode, type, bfr, aft, start, ret),
+
+ TP_STRUCT__entry_btrfs(
+ __field( int, encode)
+ __field( int, bio)
+ __field( unsigned long, i_ino)
+ __field( int, type)
+ __field( unsigned long, bfr)
+ __field( unsigned long, aft)
+ __field( unsigned long, start)
+ __field( int, ret)
+ ),
+
+ TP_fast_assign_btrfs(btrfs_sb(inode->i_sb),
+ __entry->encode = encode;
+ __entry->bio = bio;
+ __entry->i_ino = inode->i_ino;
+ __entry->type = type;
+ __entry->bfr = bfr;
+ __entry->aft = aft;
+ __entry->start = start;
+ __entry->ret = ret;
+ ),
+
+ TP_printk_btrfs("%s %s ino:%lu tfm:%d bfr:%lu aft:%lu start:%lu ret:%d",
+ __entry->encode ? "encode":"decode",
+ __entry->bio ? "bio":"pge", __entry->i_ino, __entry->type,
+ __entry->bfr, __entry->aft, __entry->start, __entry->ret)
+
+);
#endif /* _TRACE_BTRFS_H */
/* This part must be outside protection */
--
2.10.0
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2017-05-24 3:04 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-24 3:10 [PATCH] btrfs: add compression trace points Anand Jain
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).