Skip Navigation

Search

btrfs @lemmy.ml
Atemu @lemmy.ml

Btrfs updates for 6.9

Hi,

there are mostly stabilization, refactoring and cleanup changes. There rest are minor performance optimizations due to caching or lock contention reduction and a few notable fixes.

Please pull, thanks.

Performance improvements:

  • minor speedup in logging when repeatedly allocated structure is preallocated only once, improves latency and decreases lock contention
  • minor throughput increase (+6%), reduced lock contention after clearing delayed allocation bits, applies to several common workload types
  • skip full quota rescan if a new relation is added in the same transaction

Fixes:

  • zstd fix for inline compressed file in subpage mode, updated version from the 6.8 time
  • proper qgroup inheritance ioctl parameter validation
  • more fiemap followup fixes after reduced locking done in 6.8
    • fix race when detecting delalloc ranges

Core changes:

  • more debugging code
    • added assertions for a very rare crash in raid56 calculation
    • tree-checker dumps page state to g
btrfs @lemmy.ml
Atemu @lemmy.ml

Btrfs updates for 6.5

Hi,

there are mainly core changes, refactoring and optimizations. Performance is improved in some areas, overall there may be a cumulative improvement due to refactoring that removed lookups in the IO path or simplified IO submission tracking.

No merge conflicts. Please pull, thanks.

Core:

  • submit IO synchronously for fast checksums (crc32c and xxhash), remove high priority worker kthread
  • read extent buffer in one go, simplify IO tracking, bio submission and locking
  • remove additional tracking of redirtied extent buffers, originally added for zoned mode but actually not needed
  • track ordered extent pointer in bio to avoid rbtree lookups during IO
  • scrub, use recovered data stripes as cache to avoid unnecessary read
  • in zoned mode, optimize logical to physical mappings of extents
  • remove PageError handling, not set by VFS nor writeback
  • cleanups, refactoring, better structure packing
  • lots of error handling improvements
  • more assertions, lockdep annotations