<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/include/trace/events/btrfs.h, branch linux-4.19.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.19.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.19.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2019-10-29T08:20:07Z</updated>
<entry>
<title>btrfs: tracepoints: Fix bad entry members of qgroup events</title>
<updated>2019-10-29T08:20:07Z</updated>
<author>
<name>Qu Wenruo</name>
</author>
<published>2019-10-17T02:38:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0b95aaae783fa422bc213337de29b710898ff8ec'/>
<id>urn:sha1:0b95aaae783fa422bc213337de29b710898ff8ec</id>
<content type='text'>
commit 1b2442b4ae0f234daeadd90e153b466332c466d8 upstream.

[BUG]
For btrfs:qgroup_meta_reserve event, the trace event can output garbage:

  qgroup_meta_reserve: 9c7f6acc-b342-4037-bc47-7f6e4d2232d7: refroot=5(FS_TREE) type=DATA diff=2
  qgroup_meta_reserve: 9c7f6acc-b342-4037-bc47-7f6e4d2232d7: refroot=5(FS_TREE) type=0x258792 diff=2

The @type can be completely garbage, as DATA type is not possible for
trace_qgroup_meta_reserve() trace event.

[CAUSE]
Ther are several problems related to qgroup trace events:
- Unassigned entry member
  Member entry::type of trace_qgroup_update_reserve() and
  trace_qgourp_meta_reserve() is not assigned

- Redundant entry member
  Member entry::type is completely useless in
  trace_qgroup_meta_convert()

Fixes: 4ee0d8832c2e ("btrfs: qgroup: Update trace events for metadata reservation")
CC: stable@vger.kernel.org # 4.10+
Reviewed-by: Nikolay Borisov &lt;nborisov@suse.com&gt;
Signed-off-by: Qu Wenruo &lt;wqu@suse.com&gt;
Reviewed-by: David Sterba &lt;dsterba@suse.com&gt;
Signed-off-by: David Sterba &lt;dsterba@suse.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>btrfs: Get rid of the confusing btrfs_file_extent_inline_len</title>
<updated>2018-08-06T11:12:38Z</updated>
<author>
<name>Qu Wenruo</name>
</author>
<published>2018-06-06T07:41:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e41ca5897489b1c18af75ff0cc8f5c80260b3281'/>
<id>urn:sha1:e41ca5897489b1c18af75ff0cc8f5c80260b3281</id>
<content type='text'>
We used to call btrfs_file_extent_inline_len() to get the uncompressed
data size of an inlined extent.

However this function is hiding evil, for compressed extent, it has no
choice but to directly read out ram_bytes from btrfs_file_extent_item.
While for uncompressed extent, it uses item size to calculate the real
data size, and ignoring ram_bytes completely.

In fact, for corrupted ram_bytes, due to above behavior kernel
btrfs_print_leaf() can't even print correct ram_bytes to expose the bug.

Since we have the tree-checker to verify all EXTENT_DATA, such mismatch
can be detected pretty easily, thus we can trust ram_bytes without the
evil btrfs_file_extent_inline_len().

Signed-off-by: Qu Wenruo &lt;wqu@suse.com&gt;
Reviewed-by: David Sterba &lt;dsterba@suse.com&gt;
Signed-off-by: David Sterba &lt;dsterba@suse.com&gt;
</content>
</entry>
<entry>
<title>btrfs: remove the logged extents infrastructure</title>
<updated>2018-08-06T11:12:30Z</updated>
<author>
<name>Josef Bacik</name>
</author>
<published>2018-05-23T15:58:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5636cf7d6dc86f47fd66757dae088e35014da464'/>
<id>urn:sha1:5636cf7d6dc86f47fd66757dae088e35014da464</id>
<content type='text'>
This is no longer used anywhere, remove all of it.

Signed-off-by: Josef Bacik &lt;jbacik@fb.com&gt;
Reviewed-by: Filipe Manana &lt;fdmanana@suse.com&gt;
Signed-off-by: David Sterba &lt;dsterba@suse.com&gt;
</content>
</entry>
<entry>
<title>btrfs: qgroup: Allow trace_btrfs_qgroup_account_extent() to record its transid</title>
<updated>2018-05-28T16:07:30Z</updated>
<author>
<name>Qu Wenruo</name>
</author>
<published>2018-05-03T01:59:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c9f6f3cd1c6fc4df959ce2bce15e5e6ce660bfd4'/>
<id>urn:sha1:c9f6f3cd1c6fc4df959ce2bce15e5e6ce660bfd4</id>
<content type='text'>
When debugging quota rescan race, some times btrfs rescan could account
some old (committed) leaf and then re-account newly committed leaf
in next generation.

This race needs extra transid to locate, so add @transid for
trace_btrfs_qgroup_account_extent() for such debug.

Signed-off-by: Qu Wenruo &lt;wqu@suse.com&gt;
Reviewed-by: David Sterba &lt;dsterba@suse.com&gt;
Signed-off-by: David Sterba &lt;dsterba@suse.com&gt;
</content>
</entry>
<entry>
<title>btrfs: trace: Allow trace_qgroup_update_counters() to record old rfer/excl value</title>
<updated>2018-05-28T16:07:29Z</updated>
<author>
<name>Qu Wenruo</name>
</author>
<published>2018-04-30T07:04:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8b317901da4ab5576d109bf1aed7eb15cbe31d5f'/>
<id>urn:sha1:8b317901da4ab5576d109bf1aed7eb15cbe31d5f</id>
<content type='text'>
Origin trace_qgroup_update_counters() only records qgroup id and its
reference count change.

It's good enough to debug qgroup accounting change, but when rescan race
is involved, it's pretty hard to distinguish which modification belongs
to which rescan.

So add old_rfer and old_excl trace output to help distinguishing
different rescan instance.
(Different rescan instance should reset its qgroup-&gt;rfer to 0)

For trace event parameter, it just changes from u64 qgroup_id to struct
btrfs_qgroup *qgroup, so number of parameters is not changed at all.

Signed-off-by: Qu Wenruo &lt;wqu@suse.com&gt;
Reviewed-by: David Sterba &lt;dsterba@suse.com&gt;
Signed-off-by: David Sterba &lt;dsterba@suse.com&gt;
</content>
</entry>
<entry>
<title>btrfs: trace: Add trace points for unused block groups</title>
<updated>2018-05-28T16:07:28Z</updated>
<author>
<name>Qu Wenruo</name>
</author>
<published>2018-04-26T09:17:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4ed0a7a3b7c3f8387caf2ad57424d9341f523856'/>
<id>urn:sha1:4ed0a7a3b7c3f8387caf2ad57424d9341f523856</id>
<content type='text'>
This patch will add the following trace events:
1) btrfs_remove_block_group
   For btrfs_remove_block_group() function.
   Triggered when a block group is really removed.

2) btrfs_add_unused_block_group
   Triggered which block group is added to unused_bgs list.

3) btrfs_skip_unused_block_group
   Triggered which unused block group is not deleted.

These trace events is pretty handy to debug case related to block group
auto remove.

Signed-off-by: Qu Wenruo &lt;wqu@suse.com&gt;
Reviewed-by: David Sterba &lt;dsterba@suse.com&gt;
Signed-off-by: David Sterba &lt;dsterba@suse.com&gt;
</content>
</entry>
<entry>
<title>btrfs: trace: Remove unnecessary fs_info parameter for btrfs__reserve_extent event class</title>
<updated>2018-05-28T16:07:27Z</updated>
<author>
<name>Qu Wenruo</name>
</author>
<published>2018-04-26T06:24:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3dca5c942dac60164e6a6e89172f25b86af07ce7'/>
<id>urn:sha1:3dca5c942dac60164e6a6e89172f25b86af07ce7</id>
<content type='text'>
fs_info can be extracted from btrfs_block_group_cache, and all
btrfs_block_group_cache is created by btrfs_create_block_group_cache()
with fs_info initialized, no need to worry about NULL pointer
dereference.

Signed-off-by: Qu Wenruo &lt;wqu@suse.com&gt;
Reviewed-by: Nikolay Borisov &lt;nborisov@suse.com&gt;
Signed-off-by: David Sterba &lt;dsterba@suse.com&gt;
</content>
</entry>
<entry>
<title>btrfs: use fs_info for btrfs_handle_em_exist tracepoint</title>
<updated>2018-05-28T16:07:17Z</updated>
<author>
<name>David Sterba</name>
</author>
<published>2018-04-03T19:45:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f46b24c9457143a367c6707eac82d546e2bcf280'/>
<id>urn:sha1:f46b24c9457143a367c6707eac82d546e2bcf280</id>
<content type='text'>
We really want to know to which filesystem the extent map events belong,
but as it cannot be reached from the extent_map pointers, we need to
pass it down the callchain.

Reviewed-by: Nikolay Borisov &lt;nborisov@suse.com&gt;
Signed-off-by: David Sterba &lt;dsterba@suse.com&gt;
</content>
</entry>
<entry>
<title>btrfs: tracepoints, use extended format with UUID where possible</title>
<updated>2018-05-28T16:07:17Z</updated>
<author>
<name>David Sterba</name>
</author>
<published>2018-04-03T19:34:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2e63e62d981dcaa822d3a845935b009b2543b3f2'/>
<id>urn:sha1:2e63e62d981dcaa822d3a845935b009b2543b3f2</id>
<content type='text'>
Most of the strings are prefixed by the UUID of the filesystem that
generates the message, however there are a few events that still
opencode the macro magic and can be converted to the common macros.

Reviewed-by: Nikolay Borisov &lt;nborisov@suse.com&gt;
Signed-off-by: David Sterba &lt;dsterba@suse.com&gt;
</content>
</entry>
<entry>
<title>btrfs: tracepoints, fix whitespace in strings</title>
<updated>2018-05-28T16:07:17Z</updated>
<author>
<name>David Sterba</name>
</author>
<published>2018-04-03T19:21:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=79bcb71a5b3adf84ec9d671ce9f0662ae5b1d0e3'/>
<id>urn:sha1:79bcb71a5b3adf84ec9d671ce9f0662ae5b1d0e3</id>
<content type='text'>
The preferred style is to avoid spaces between key and value and no
commas between key=values.

Reviewed-by: Nikolay Borisov &lt;nborisov@suse.com&gt;
Signed-off-by: David Sterba &lt;dsterba@suse.com&gt;
</content>
</entry>
</feed>
