Skip to content
  • Linus Torvalds's avatar
    f1ee3b88
    Merge tag 'for-5.11-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · f1ee3b88
    Linus Torvalds authored
    Pull btrfs updates from David Sterba:
     "We have a mix of all kinds of changes, feature updates, core stuff,
      performance improvements and lots of cleanups and preparatory changes.
    
      User visible:
    
       - export filesystem generation in sysfs
    
       - new features for mount option 'rescue':
           - what's currently supported is exported in sysfs
           - 'ignorebadroots'/'ibadroots' - continue even if some essential
             tree roots are not usable (extent, uuid, data reloc, device,
             csum, free space)
           - 'ignoredatacsums'/'idatacsums' - skip checksum verification on
             data
           - 'all' - now enables 'ignorebadroots' + 'ignoredatacsums' +
             'nologreplay'
    
       - export read mirror policy settings to sysfs, new policies will be
         added in the future
    
       - remove inode number cache feature (mount -o inode_cache), obsoleted
         in 5.9
    
      User visible fixes:
    
       - async discard scheduling fixes on high loads
    
       - update inode byte counter atomically so stat() does not report
         wrong value in some cases
    
       - free space tree fixes:
           - correctly report status of v2 after remount
           - clear v1 cache inodes when v2 is newly enabled after remount
    
      Core:
    
       - switch own tree lock implementation to standard rw semaphore:
           - one-level lock nesting is not required anymore, the last use of
             this was in free space that's now loaded asynchronously
           - own implementation of adaptive spinning before taking mutex has
             been part of rwsem
           - performance seems to be better in general, much better (+tens
             of percents) for some workloads
           - lockdep does not complain
    
       - finish direct IO conversion to iomap infrastructure, remove
         temporary workaround for DSYNC after iomap API updates
    
       - preparatory work to support data and metadata blocks smaller than
         page:
           - generalize code that assumes sectorsize == PAGE_SIZE, lots of
             refactoring
           - planned namely for 64K pages (eg. arm64, ppc64)
           - scrub read-only support
    
       - preparatory work for zoned allocation mode (SMR/ZBC/ZNS friendly):
           - disable incompatible features
           - round-robin superblock write
    
       - free space cache (v1) is loaded asynchronously, remove tree path
         recursion
    
       - slightly improved time tacking for transaction kthread wake ups
    
      Performance improvements (note that the numbers depend on load type or
      other features and weren't run on the same machine):
    
       - skip unnecessary work:
           - do not start readahead for csum tree when scrubbing non-data
             block groups
           - do not start and wait for delalloc on snapshot roots on
             transaction commit
           - fix race when defragmenting leads to unnecessary IO
    
       - dbench speedups (+throughput%/-max latency%):
           - skip unnecessary searches for xattrs when logging an inode
             (+10.8/-8.2)
           - stop incrementing log batch when joining log transaction (1-2)
           - unlock path before checking if extent is shared during nocow
             writeback (+5.0/-20.5), on fio load +9.7% throughput/-9.8%
             runtime
           - several tree log improvements, eg. removing unnecessary
             operations, fixing races that lead to additional work
             (+12.7/-8.2)
    
       - tree-checker error branches annotated with unlikely() (+3%
         throughput)
    
      Other:
    
       - cleanups
    
       - lockdep fixes
    
       - more btrfs_inode conversions
    
       - error variable cleanups"
    
    * tag 'for-5.11-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (198 commits)
      btrfs: scrub: allow scrub to work with subpage sectorsize
      btrfs: scrub: support subpage data scrub
      btrfs: scrub: support subpage tree block scrub
      btrfs: scrub: always allocate one full page for one sector for RAID56
      btrfs: scrub: reduce width of extent_len/stripe_len from 64 to 32 bits
      btrfs: refactor btrfs_lookup_bio_sums to handle out-of-order bvecs
      btrfs: remove btrfs_find_ordered_sum call from btrfs_lookup_bio_sums
      btrfs: handle sectorsize < PAGE_SIZE case for extent buffer accessors
      btrfs: update num_extent_pages to support subpage sized extent buffer
      btrfs: don't allow tree block to cross page boundary for subpage support
      btrfs: calculate inline extent buffer page size based on page size
      btrfs: factor out btree page submission code to a helper
      btrfs: make btrfs_verify_data_csum follow sector size
      btrfs: pass bio_offset to check_data_csum() directly
      btrfs: rename bio_offset of extent_submit_bio_start_t to dio_file_offset
      btrfs: fix lockdep warning when creating free space tree
      btrfs: skip space_cache v1 setup when not using it
      btrfs: remove free space items when disabling space cache v1
      btrfs: warn when remount will not change the free space tree
      btrfs: use superblock state to print space_cache mount option
      ...
    f1ee3b88
    Merge tag 'for-5.11-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
    Linus Torvalds authored
    Pull btrfs updates from David Sterba:
     "We have a mix of all kinds of changes, feature updates, core stuff,
      performance improvements and lots of cleanups and preparatory changes.
    
      User visible:
    
       - export filesystem generation in sysfs
    
       - new features for mount option 'rescue':
           - what's currently supported is exported in sysfs
           - 'ignorebadroots'/'ibadroots' - continue even if some essential
             tree roots are not usable (extent, uuid, data reloc, device,
             csum, free space)
           - 'ignoredatacsums'/'idatacsums' - skip checksum verification on
             data
           - 'all' - now enables 'ignorebadroots' + 'ignoredatacsums' +
             'nologreplay'
    
       - export read mirror policy settings to sysfs, new policies will be
         added in the future
    
       - remove inode number cache feature (mount -o inode_cache), obsoleted
         in 5.9
    
      User visible fixes:
    
       - async discard scheduling fixes on high loads
    
       - update inode byte counter atomically so stat() does not report
         wrong value in some cases
    
       - free space tree fixes:
           - correctly report status of v2 after remount
           - clear v1 cache inodes when v2 is newly enabled after remount
    
      Core:
    
       - switch own tree lock implementation to standard rw semaphore:
           - one-level lock nesting is not required anymore, the last use of
             this was in free space that's now loaded asynchronously
           - own implementation of adaptive spinning before taking mutex has
             been part of rwsem
           - performance seems to be better in general, much better (+tens
             of percents) for some workloads
           - lockdep does not complain
    
       - finish direct IO conversion to iomap infrastructure, remove
         temporary workaround for DSYNC after iomap API updates
    
       - preparatory work to support data and metadata blocks smaller than
         page:
           - generalize code that assumes sectorsize == PAGE_SIZE, lots of
             refactoring
           - planned namely for 64K pages (eg. arm64, ppc64)
           - scrub read-only support
    
       - preparatory work for zoned allocation mode (SMR/ZBC/ZNS friendly):
           - disable incompatible features
           - round-robin superblock write
    
       - free space cache (v1) is loaded asynchronously, remove tree path
         recursion
    
       - slightly improved time tacking for transaction kthread wake ups
    
      Performance improvements (note that the numbers depend on load type or
      other features and weren't run on the same machine):
    
       - skip unnecessary work:
           - do not start readahead for csum tree when scrubbing non-data
             block groups
           - do not start and wait for delalloc on snapshot roots on
             transaction commit
           - fix race when defragmenting leads to unnecessary IO
    
       - dbench speedups (+throughput%/-max latency%):
           - skip unnecessary searches for xattrs when logging an inode
             (+10.8/-8.2)
           - stop incrementing log batch when joining log transaction (1-2)
           - unlock path before checking if extent is shared during nocow
             writeback (+5.0/-20.5), on fio load +9.7% throughput/-9.8%
             runtime
           - several tree log improvements, eg. removing unnecessary
             operations, fixing races that lead to additional work
             (+12.7/-8.2)
    
       - tree-checker error branches annotated with unlikely() (+3%
         throughput)
    
      Other:
    
       - cleanups
    
       - lockdep fixes
    
       - more btrfs_inode conversions
    
       - error variable cleanups"
    
    * tag 'for-5.11-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (198 commits)
      btrfs: scrub: allow scrub to work with subpage sectorsize
      btrfs: scrub: support subpage data scrub
      btrfs: scrub: support subpage tree block scrub
      btrfs: scrub: always allocate one full page for one sector for RAID56
      btrfs: scrub: reduce width of extent_len/stripe_len from 64 to 32 bits
      btrfs: refactor btrfs_lookup_bio_sums to handle out-of-order bvecs
      btrfs: remove btrfs_find_ordered_sum call from btrfs_lookup_bio_sums
      btrfs: handle sectorsize < PAGE_SIZE case for extent buffer accessors
      btrfs: update num_extent_pages to support subpage sized extent buffer
      btrfs: don't allow tree block to cross page boundary for subpage support
      btrfs: calculate inline extent buffer page size based on page size
      btrfs: factor out btree page submission code to a helper
      btrfs: make btrfs_verify_data_csum follow sector size
      btrfs: pass bio_offset to check_data_csum() directly
      btrfs: rename bio_offset of extent_submit_bio_start_t to dio_file_offset
      btrfs: fix lockdep warning when creating free space tree
      btrfs: skip space_cache v1 setup when not using it
      btrfs: remove free space items when disabling space cache v1
      btrfs: warn when remount will not change the free space tree
      btrfs: use superblock state to print space_cache mount option
      ...
Loading