• Linus Torvalds's avatar
    Merge tag 'for-6.10-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · a3d1f54d
    Linus Torvalds authored
    Pull btrfs updates from David Sterba:
     "This update brings a few minor performance improvements, otherwise
      there's a lot of refactoring, cleanups and other sort of not user
      visible changes.
    
      Performance improvements:
    
       - inline b-tree locking functions, improvement in metadata-heavy
         changes
    
       - relax locking on a range that's being reflinked, allows read
         operations to run in parallel
    
       - speed up NOCOW write checks (throughput +9% on a sample test)
    
       - extent locking ranges have been reduced in several places, namely
         around delayed ref processing
    
      Core:
    
       - more page to folio conversions:
          - relocation
          - send
          - compression
          - inline extent handling
          - super block write and wait
    
       - extent_map structure optimizations:
          - reduced structure size
          - code simplifications
          - add shrinker for allocated objects, the numbers can go high and
            could exhaust memory on smaller systems (reported) as they may
            not get an opportunity to be freed fast enough
    
       - extent locking optimizations:
          - reduce locking ranges where it does not seem to be necessary and
            are safe due to other means of synchronization
          - potential improvements due to lower contention,
            allocation/freeing and state management operations of extent
            state tracking structures
    
       - delayed ref cleanups and simplifications
    
       - updated trace points
    
       - improved error handling, warnings and assertions
    
       - cleanups and refactoring, unification of error handling paths"
    
    * tag 'for-6.10-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (122 commits)
      btrfs: qgroup: fix initialization of auto inherit array
      btrfs: count super block write errors in device instead of tracking folio error state
      btrfs: use the folio iterator in btrfs_end_super_write()
      btrfs: convert super block writes to folio in write_dev_supers()
      btrfs: convert super block writes to folio in wait_dev_supers()
      bio: Export bio_add_folio_nofail to modules
      btrfs: remove duplicate included header from fs.h
      btrfs: add a cached state to extent_clear_unlock_delalloc
      btrfs: push extent lock down in submit_one_async_extent
      btrfs: push lock_extent down in cow_file_range()
      btrfs: move can_cow_file_range_inline() outside of the extent lock
      btrfs: push lock_extent into cow_file_range_inline
      btrfs: push extent lock into cow_file_range
      btrfs: push extent lock into run_delalloc_cow
      btrfs: remove unlock_extent from run_delalloc_compressed
      btrfs: push extent lock down in run_delalloc_nocow
      btrfs: adjust while loop condition in run_delalloc_nocow
      btrfs: push extent lock into run_delalloc_nocow
      btrfs: push the extent lock into btrfs_run_delalloc_range
      btrfs: lock extent when doing inline extent in compression
      ...
    a3d1f54d
bio.c 49 KB