F2FS With Linux 6.12 Converts I/O Paths To Use Folios, Other Improvements
([Linux Storage] 6 Hours Ago
Flash-Friendly File-System)
- Reference: 0001493489
- News link: https://www.phoronix.com/news/F2FS-Linux-6.12
- Source link:
The Flash-Friendly File-System (F2FS) updates have been submitted for the [1]Linux 6.12 merge window.
The notable changes for F2FS in this new kernel include converting the major I/O code paths to making use of [2]folios and adding new tuning knobs for the F2FS garbage collector (GC) for more flexibility with zoned devices. There is also other optimizations and fixes as noted from the pull request:
Enhancement:
- add knobs to tune foreground/background GCs for Zoned devices
- convert IO paths to use folio
- reduce expensive checkpoint trigger frequency
- allow F2FS_IPU_NOCACHE for pinned file
- forcibly migrate to secure space for zoned device file pinning
- get rid of buffer_head use
- add write priority option based on zone UFS
- get rid of online repair on corrupted directory
Bug fix:
- fix to don't panic system for no free segment fault injection
- fix to don't set SB_RDONLY in f2fs_handle_critical_error()
- avoid unused block when dio write in LFS mode
- compress: don't redirty sparse cluster during {,de}compress
- check discard support for conventional zones
- atomic: prevent atomic file from being dirtied before commit
- atomic: fix to check atomic_file in f2fs ioctl interfaces
- atomic: fix to forbid dio in atomic_file
- atomic: fix to truncate pagecache before on-disk metadata truncation
- atomic: create COW inode from parent dentry
- atomic: fix to avoid racing w/ GC
- atomic: require FMODE_WRITE for atomic write ioctls
- fix to wait page writeback before setting gcing flag
- fix to avoid racing in between read and OPU dio write, dio completion
- fix several potential integer overflows in file offsets and dir_block_index
- fix to avoid use-after-free in f2fs_stop_gc_thread()
More details for those interested via [3]this pull request .
[1] https://www.phoronix.com/search/Linux+6.12
[2] https://www.phoronix.com/search/folios
[3] https://lore.kernel.org/lkml/ZvInHczHWvWeXEoF@google.com/
The notable changes for F2FS in this new kernel include converting the major I/O code paths to making use of [2]folios and adding new tuning knobs for the F2FS garbage collector (GC) for more flexibility with zoned devices. There is also other optimizations and fixes as noted from the pull request:
Enhancement:
- add knobs to tune foreground/background GCs for Zoned devices
- convert IO paths to use folio
- reduce expensive checkpoint trigger frequency
- allow F2FS_IPU_NOCACHE for pinned file
- forcibly migrate to secure space for zoned device file pinning
- get rid of buffer_head use
- add write priority option based on zone UFS
- get rid of online repair on corrupted directory
Bug fix:
- fix to don't panic system for no free segment fault injection
- fix to don't set SB_RDONLY in f2fs_handle_critical_error()
- avoid unused block when dio write in LFS mode
- compress: don't redirty sparse cluster during {,de}compress
- check discard support for conventional zones
- atomic: prevent atomic file from being dirtied before commit
- atomic: fix to check atomic_file in f2fs ioctl interfaces
- atomic: fix to forbid dio in atomic_file
- atomic: fix to truncate pagecache before on-disk metadata truncation
- atomic: create COW inode from parent dentry
- atomic: fix to avoid racing w/ GC
- atomic: require FMODE_WRITE for atomic write ioctls
- fix to wait page writeback before setting gcing flag
- fix to avoid racing in between read and OPU dio write, dio completion
- fix several potential integer overflows in file offsets and dir_block_index
- fix to avoid use-after-free in f2fs_stop_gc_thread()
More details for those interested via [3]this pull request .
[1] https://www.phoronix.com/search/Linux+6.12
[2] https://www.phoronix.com/search/folios
[3] https://lore.kernel.org/lkml/ZvInHczHWvWeXEoF@google.com/
phoronix