• Boris Burkov's avatar
    btrfs: add more find_free_extent tracepoints · 854c2f36
    Boris Burkov authored
    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: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
    Signed-off-by: default avatarBoris Burkov <boris@bur.io>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    854c2f36
extent-tree.h 5.08 KB