diff options
| author | Boris Burkov <boris@bur.io> | 2022-12-15 16:06:32 -0800 |
|---|---|---|
| committer | David Sterba <dsterba@suse.com> | 2023-02-13 17:50:34 +0100 |
| commit | 854c2f365d7e0b5b1250953e03860f09a7847c39 (patch) | |
| tree | db34dd34d197a3a37bc141c9883d14acc2329aef /tools/perf/scripts/python/bin/stackcollapse-record | |
| parent | btrfs: pass find_free_extent_ctl to allocator tracepoints (diff) | |
| download | linux-854c2f365d7e0b5b1250953e03860f09a7847c39.tar.gz linux-854c2f365d7e0b5b1250953e03860f09a7847c39.zip | |
btrfs: add more find_free_extent tracepoints
find_free_extent is a complicated function. It consists (at least) of:
- a hint that jumps into the middle of a for loop macro
- a middle loop trying every raid level
- an outer loop ascending through ffe loop levels
- complicated logic for skipping some of those ffe loop levels
- multiple underlying in-bg allocators (zoned, cluster, no cluster)
Which is all to say that more tracing is helpful for debugging its
behavior. Add two new tracepoints: at the entrance to the block_groups
loop (hit for every raid level and every ffe_ctl loop) and at the point
we seriously consider a block_group for allocation. This way we can see
the whole path through the algorithm, including hints, multiple loops,
etc.
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Boris Burkov <boris@bur.io>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'tools/perf/scripts/python/bin/stackcollapse-record')
0 files changed, 0 insertions, 0 deletions
