F2FS With Linux 6.2 Lands Atomic Replace, Per-Block Age-Based Extent Cache
Jaegeuk Kim has ushered in the Flash Friendly File-System (F2FS) updates for the in-development Linux 6.2 kernel, which is headlined by two new features for this file-system.
First up, F2FS with this kernel is introducing a new atomic replace feature (F2FS_IOC_START_ATOMIC_REPLACE). The new atomic replace functionality is a variant of F2FS' former atomic write functionality and is able to guarantee per-file atomicity. This atomic replace code was previously discussed on Phoronix for atomically replacing the entire contents of a file. This atomic replace functionality should work out better on Android than the current atomic code.
The other notable change is introducing a per-block age-based extent cache that is focused on the per-block age of a file so that F2FS' block allocator can split hot and cold data blocks more accurately.
F2FS with Linux 6.2 also adds new sysfs tunables of discard_urgent_util, gc_mode, and max_ordered_discard. There is also an optimization for iterating over sparse directories, a barrier mount option, and various fixes. With the F2FS "barrier" mount option, cache_flush commands can be issued as opposed to its "nobarrier" mode.
Downloads and more details on the F2FS updates with Linux 6.2 via this pull request that has already been honored and merged to mainline.
First up, F2FS with this kernel is introducing a new atomic replace feature (F2FS_IOC_START_ATOMIC_REPLACE). The new atomic replace functionality is a variant of F2FS' former atomic write functionality and is able to guarantee per-file atomicity. This atomic replace code was previously discussed on Phoronix for atomically replacing the entire contents of a file. This atomic replace functionality should work out better on Android than the current atomic code.
The other notable change is introducing a per-block age-based extent cache that is focused on the per-block age of a file so that F2FS' block allocator can split hot and cold data blocks more accurately.
F2FS with Linux 6.2 also adds new sysfs tunables of discard_urgent_util, gc_mode, and max_ordered_discard. There is also an optimization for iterating over sparse directories, a barrier mount option, and various fixes. With the F2FS "barrier" mount option, cache_flush commands can be issued as opposed to its "nobarrier" mode.
Downloads and more details on the F2FS updates with Linux 6.2 via this pull request that has already been honored and merged to mainline.
21 Comments