• Boris Burkov's avatar
    btrfs: re-check reclaim condition in reclaim worker · 81531225
    Boris Burkov authored
    
    
    I have observed the following case play out and lead to unnecessary
    relocations:
    
    1. write a file across multiple block groups
    2. delete the file
    3. several block groups fall below the reclaim threshold
    4. reclaim the first, moving extents into the others
    5. reclaim the others which are now actually very full, leading to poor
       reclaim behavior with lots of writing, allocating new block groups,
       etc.
    
    I believe the risk of missing some reasonable reclaims is worth it
    when traded off against the savings of avoiding overfull reclaims.
    
    Going forward, it could be interesting to make the check more advanced
    (zoned aware, fragmentation aware, etc...) so that it can be a really
    strong signal both at extent delete and reclaim time.
    Reviewed-by: default avatarFilipe Manana <fdmanana@suse.com>
    Signed-off-by: default avatarBoris Burkov <boris@bur.io>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    81531225
block-group.c 124 KB