linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Anand Jain <anand.jain@oracle.com>
To: dsterba@suse.cz, linux-btrfs@vger.kernel.org
Subject: Re: [PATCH 3/3 v2] btrfs: add compression trace points
Date: Sat, 27 May 2017 07:37:00 +0800	[thread overview]
Message-ID: <a97ab5e7-80f0-ded1-0f8f-c47ff1b1d6fa@oracle.com> (raw)
In-Reply-To: <20170526180851.GH30842@twin.jikos.cz>



On 05/27/2017 02:08 AM, David Sterba wrote:
> On Fri, May 26, 2017 at 03:45:00PM +0800, Anand Jain wrote:
>> This patch adds compression and decompression trace points for the
>> purpose of debugging.
>>
>> Signed-off-by: Anand Jain <anand.jain@oracle.com>
>> ---
>> v2: no change
>>  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 e426a8f427b5..490590e62a2f 100644
>> --- a/fs/btrfs/compression.c
>> +++ b/fs/btrfs/compression.c
>> @@ -899,6 +899,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;
>>  }
>> @@ -927,6 +931,9 @@ static int btrfs_decompress_bio(struct compressed_bio *cb)
>>
>>  	ret = btrfs_compress_op[type-1]->decompress_bio(workspace, cb);
>>
>> +	trace_btrfs_encoder(0, 1, cb->inode, type,
>> +				cb->compressed_len, cb->len, cb->start, ret);
>> +
>>  	free_workspace(type, workspace);
>>  	return ret;
>>  }
>> @@ -948,6 +955,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,
>
> So far the encoder is just compression/decompression. Having one
> tracepoint for both operations makes more sense, but I don't like the
> name.

  I am ok with any suggestion.
  In the long this will trace encryption as well so I was avoiding
  compress specific term here. The other choice I had was
     btrfs_tfm (transformer)

  Also planning to rename compression.c to encoder.c (or anything
  suggested), struct compressed_bio to encoder_bio (or anything
  suggested). etc..

>> +
>> +	TP_PROTO(int encode, int bio, struct inode *inode, int type,
>
> encode is confusing here, it seems to be an operation type
>
> bio as an int is confusing, seems to describe the data source type, or
> what 'pge' is supposed to mean

  I had a version with the string passed, feel that I was better.
  Will change it.

>> +			unsigned long bfr, unsigned long aft,
>
> please do not abbreviate that much, this is not necessary and makes it
> unreadable

  ok will change it.

>> +			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",
>
> please use "=" instead of ":"

  I'll do that.

Thanks, Anand


>> +		__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 */

  reply	other threads:[~2017-05-26 23:31 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-26  7:44 [PATCH 0/3 v2] compression ops args clean up and trace point Anand Jain
2017-05-26  7:44 ` [PATCH 1/3 v2] btrfs: btrfs_decompress_bio() could accept compressed_bio instead Anand Jain
2017-05-26  7:42   ` Nikolay Borisov
2017-05-26 17:54   ` David Sterba
2017-05-26  7:44 ` [PATCH 2/3 v2] btrfs: reduce arguments for decompress_bio ops Anand Jain
2017-05-26  7:43   ` Nikolay Borisov
2017-05-26  8:34     ` Anand Jain
2017-05-26 14:07   ` kbuild test robot
2017-05-26 22:39     ` Anand Jain
2017-05-26 22:36   ` [PATCH] fixup: " Anand Jain
2017-05-29 13:52     ` David Sterba
2017-05-26  7:45 ` [PATCH 3/3 v2] btrfs: add compression trace points Anand Jain
2017-05-26 18:08   ` David Sterba
2017-05-26 23:37     ` Anand Jain [this message]
2017-05-26 18:09 ` [PATCH 0/3 v2] compression ops args clean up and trace point David Sterba

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a97ab5e7-80f0-ded1-0f8f-c47ff1b1d6fa@oracle.com \
    --to=anand.jain@oracle.com \
    --cc=dsterba@suse.cz \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).