Blog/Linux Kernel 5.9 Released

From Forza's ramblings

2020-10-13: Linux Kernel 5.9 Released

Yesterday the brand new Linux Kernel 5.9 was released, bringing many new performance updates, new features and bug fixes!

Btrfs specific changes

  • There is a new 'rescue' mount option to group all existing mount options for recovery. You can still use the individual rescue options separated by a ':' (colon). For example ro,rescue=nologreplay:usebackuproot
  • Much better fsync() performance in some workloads. For example up to 200% better throughput on parallel fsyncs.
  • Prefetching of the chunck tree leaves at mount time can improve mount speed in multi-TB file systems
  • Balance is better detecting cancellation by Ctrl-C.
  • Deprecation of mount option inode_cache, removal scheduled to kernel 5.11.

Head over to the mailing lists to see the full Commit message:

Linux 5.10

According to Kernel 5.10 promises even more performance benefits for Btrfs!

  • Fsync performance improvements:
    • less contention of log mutex (throughput +4%, latency -14%, dbench with 32 clients)
    • skip unnecessary commits for link and rename (throughput +6%, latency -30%, rename latency -75%, dbench with 16 clients)
    • make fast fsync wait only for writeback (throughput +10..40%, runtime -1..-20%, dbench with 1 to 64 clients on various file/block sizes)
  • Direct I/O is now implemented using the iomap infrastructure, that's the main part, we still have a workaround that requires an iomap API update, coming in 5.10.
  • New sysfs exports (/sys/fs/btrfs/):
    • information about the exclusive filesystem operation status (balance, device add/remove/replace, ...)
    • supported send stream version