| What: /sys/fs/f2fs/<disk>/gc_max_sleep_time | |
| Date: July 2013 | |
| Contact: "Namjae Jeon" <namjae.jeon@samsung.com> | |
| Description: Controls the maximum sleep time for gc_thread. Time | |
| is in milliseconds. | |
| What: /sys/fs/f2fs/<disk>/gc_min_sleep_time | |
| Date: July 2013 | |
| Contact: "Namjae Jeon" <namjae.jeon@samsung.com> | |
| Description: Controls the minimum sleep time for gc_thread. Time | |
| is in milliseconds. | |
| What: /sys/fs/f2fs/<disk>/gc_no_gc_sleep_time | |
| Date: July 2013 | |
| Contact: "Namjae Jeon" <namjae.jeon@samsung.com> | |
| Description: Controls the default sleep time for gc_thread. Time | |
| is in milliseconds. | |
| What: /sys/fs/f2fs/<disk>/gc_idle | |
| Date: July 2013 | |
| Contact: "Namjae Jeon" <namjae.jeon@samsung.com> | |
| Description: Controls the victim selection policy for garbage collection. | |
| Setting gc_idle = 0(default) will disable this option. Setting: | |
| =========== =============================================== | |
| gc_idle = 1 will select the Cost Benefit approach & setting | |
| gc_idle = 2 will select the greedy approach & setting | |
| gc_idle = 3 will select the age-threshold based approach. | |
| =========== =============================================== | |
| What: /sys/fs/f2fs/<disk>/reclaim_segments | |
| Date: October 2013 | |
| Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com> | |
| Description: This parameter controls the number of prefree segments to be | |
| reclaimed. If the number of prefree segments is larger than | |
| the number of segments in the proportion to the percentage | |
| over total volume size, f2fs tries to conduct checkpoint to | |
| reclaim the prefree segments to free segments. | |
| By default, 5% over total # of segments. | |
| What: /sys/fs/f2fs/<disk>/main_blkaddr | |
| Date: November 2019 | |
| Contact: "Ramon Pantin" <pantin@google.com> | |
| Description: Shows first block address of MAIN area. | |
| What: /sys/fs/f2fs/<disk>/ipu_policy | |
| Date: November 2013 | |
| Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com> | |
| Description: Controls the in-place-update policy. | |
| updates in f2fs. User can set: | |
| ===== =============== =================================================== | |
| value policy description | |
| 0x00 DISABLE disable IPU(=default option in LFS mode) | |
| 0x01 FORCE all the time | |
| 0x02 SSR if SSR mode is activated | |
| 0x04 UTIL if FS utilization is over threshold | |
| 0x08 SSR_UTIL if SSR mode is activated and FS utilization is over | |
| threshold | |
| 0x10 FSYNC activated in fsync path only for high performance | |
| flash storages. IPU will be triggered only if the | |
| # of dirty pages over min_fsync_blocks. | |
| (=default option) | |
| 0x20 ASYNC do IPU given by asynchronous write requests | |
| 0x40 NOCACHE disable IPU bio cache | |
| 0x80 HONOR_OPU_WRITE use OPU write prior to IPU write if inode has | |
| FI_OPU_WRITE flag | |
| ===== =============== =================================================== | |
| Refer segment.h for details. | |
| What: /sys/fs/f2fs/<disk>/min_ipu_util | |
| Date: November 2013 | |
| Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com> | |
| Description: Controls the FS utilization condition for the in-place-update | |
| policies. It is used by F2FS_IPU_UTIL and F2FS_IPU_SSR_UTIL policies. | |
| What: /sys/fs/f2fs/<disk>/min_fsync_blocks | |
| Date: September 2014 | |
| Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> | |
| Description: Controls the dirty page count condition for the in-place-update | |
| policies. | |
| What: /sys/fs/f2fs/<disk>/min_seq_blocks | |
| Date: August 2018 | |
| Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> | |
| Description: Controls the dirty page count condition for batched sequential | |
| writes in writepages. | |
| What: /sys/fs/f2fs/<disk>/min_hot_blocks | |
| Date: March 2017 | |
| Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> | |
| Description: Controls the dirty page count condition for redefining hot data. | |
| What: /sys/fs/f2fs/<disk>/min_ssr_sections | |
| Date: October 2017 | |
| Contact: "Chao Yu" <yuchao0@huawei.com> | |
| Description: Controls the free section threshold to trigger SSR allocation. | |
| If this is large, SSR mode will be enabled early. | |
| What: /sys/fs/f2fs/<disk>/max_small_discards | |
| Date: November 2013 | |
| Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com> | |
| Description: Controls the issue rate of discard commands that consist of small | |
| blocks less than 2MB. The candidates to be discarded are cached during | |
| checkpoint, and issued by issue_discard thread after checkpoint. | |
| It is enabled by default. | |
| What: /sys/fs/f2fs/<disk>/max_ordered_discard | |
| Date: October 2022 | |
| Contact: "Yangtao Li" <frank.li@vivo.com> | |
| Description: Controls the maximum ordered discard, the unit size is one block(4KB). | |
| Set it to 16 by default. | |
| What: /sys/fs/f2fs/<disk>/max_discard_request | |
| Date: December 2021 | |
| Contact: "Konstantin Vyshetsky" <vkon@google.com> | |
| Description: Controls the number of discards a thread will issue at a time. | |
| Higher number will allow the discard thread to finish its work | |
| faster, at the cost of higher latency for incoming I/O. | |
| What: /sys/fs/f2fs/<disk>/min_discard_issue_time | |
| Date: December 2021 | |
| Contact: "Konstantin Vyshetsky" <vkon@google.com> | |
| Description: Controls the interval the discard thread will wait between | |
| issuing discard requests when there are discards to be issued and | |
| no I/O aware interruptions occur. | |
| What: /sys/fs/f2fs/<disk>/mid_discard_issue_time | |
| Date: December 2021 | |
| Contact: "Konstantin Vyshetsky" <vkon@google.com> | |
| Description: Controls the interval the discard thread will wait between | |
| issuing discard requests when there are discards to be issued and | |
| an I/O aware interruption occurs. | |
| What: /sys/fs/f2fs/<disk>/max_discard_issue_time | |
| Date: December 2021 | |
| Contact: "Konstantin Vyshetsky" <vkon@google.com> | |
| Description: Controls the interval the discard thread will wait when there are | |
| no discard operations to be issued. | |
| What: /sys/fs/f2fs/<disk>/discard_granularity | |
| Date: July 2017 | |
| Contact: "Chao Yu" <yuchao0@huawei.com> | |
| Description: Controls discard granularity of inner discard thread. Inner thread | |
| will not issue discards with size that is smaller than granularity. | |
| The unit size is one block(4KB), now only support configuring | |
| in range of [1, 512]. Default value is 16. | |
| For small devices, default value is 1. | |
| What: /sys/fs/f2fs/<disk>/umount_discard_timeout | |
| Date: January 2019 | |
| Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> | |
| Description: Set timeout to issue discard commands during umount. | |
| Default: 5 secs | |
| What: /sys/fs/f2fs/<disk>/pending_discard | |
| Date: November 2021 | |
| Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> | |
| Description: Shows the number of pending discard commands in the queue. | |
| What: /sys/fs/f2fs/<disk>/max_victim_search | |
| Date: January 2014 | |
| Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com> | |
| Description: Controls the number of trials to find a victim segment | |
| when conducting SSR and cleaning operations. The default value | |
| is 4096 which covers 8GB block address range. | |
| What: /sys/fs/f2fs/<disk>/migration_granularity | |
| Date: October 2018 | |
| Contact: "Chao Yu" <yuchao0@huawei.com> | |
| Description: Controls migration granularity of garbage collection on large | |
| section, it can let GC move partial segment{s} of one section | |
| in one GC cycle, so that dispersing heavy overhead GC to | |
| multiple lightweight one. | |
| What: /sys/fs/f2fs/<disk>/dir_level | |
| Date: March 2014 | |
| Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com> | |
| Description: Controls the directory level for large directory. If a | |
| directory has a number of files, it can reduce the file lookup | |
| latency by increasing this dir_level value. Otherwise, it | |
| needs to decrease this value to reduce the space overhead. | |
| The default value is 0. | |
| What: /sys/fs/f2fs/<disk>/ram_thresh | |
| Date: March 2014 | |
| Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com> | |
| Description: Controls the memory footprint used by free nids and cached | |
| nat entries. By default, 1 is set, which indicates | |
| 10 MB / 1 GB RAM. | |
| What: /sys/fs/f2fs/<disk>/cp_interval | |
| Date: October 2015 | |
| Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> | |
| Description: Controls the checkpoint timing, set to 60 seconds by default. | |
| What: /sys/fs/f2fs/<disk>/idle_interval | |
| Date: January 2016 | |
| Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> | |
| Description: Controls the idle timing of system, if there is no FS operation | |
| during given interval. | |
| Set to 5 seconds by default. | |
| What: /sys/fs/f2fs/<disk>/discard_idle_interval | |
| Date: September 2018 | |
| Contact: "Chao Yu" <yuchao0@huawei.com> | |
| Contact: "Sahitya Tummala" <quic_stummala@quicinc.com> | |
| Description: Controls the idle timing of discard thread given | |
| this time interval. | |
| Default is 5 secs. | |
| What: /sys/fs/f2fs/<disk>/gc_idle_interval | |
| Date: September 2018 | |
| Contact: "Chao Yu" <yuchao0@huawei.com> | |
| Contact: "Sahitya Tummala" <quic_stummala@quicinc.com> | |
| Description: Controls the idle timing for gc path. Set to 5 seconds by default. | |
| What: /sys/fs/f2fs/<disk>/iostat_enable | |
| Date: August 2017 | |
| Contact: "Chao Yu" <yuchao0@huawei.com> | |
| Description: Controls to enable/disable IO stat. | |
| What: /sys/fs/f2fs/<disk>/ra_nid_pages | |
| Date: October 2015 | |
| Contact: "Chao Yu" <chao2.yu@samsung.com> | |
| Description: Controls the count of nid pages to be readaheaded. | |
| When building free nids, F2FS reads NAT blocks ahead for | |
| speed up. Default is 0. | |
| What: /sys/fs/f2fs/<disk>/dirty_nats_ratio | |
| Date: January 2016 | |
| Contact: "Chao Yu" <chao2.yu@samsung.com> | |
| Description: Controls dirty nat entries ratio threshold, if current | |
| ratio exceeds configured threshold, checkpoint will | |
| be triggered for flushing dirty nat entries. | |
| What: /sys/fs/f2fs/<disk>/lifetime_write_kbytes | |
| Date: January 2016 | |
| Contact: "Shuoran Liu" <liushuoran@huawei.com> | |
| Description: Shows total written kbytes issued to disk. | |
| What: /sys/fs/f2fs/<disk>/features | |
| Date: July 2017 | |
| Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> | |
| Description: <deprecated: should use /sys/fs/f2fs/<disk>/feature_list/> | |
| Shows all enabled features in current device. | |
| Supported features: | |
| encryption, blkzoned, extra_attr, projquota, inode_checksum, | |
| flexible_inline_xattr, quota_ino, inode_crtime, lost_found, | |
| verity, sb_checksum, casefold, readonly, compression, pin_file. | |
| What: /sys/fs/f2fs/<disk>/feature_list/ | |
| Date: June 2021 | |
| Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> | |
| Description: Expand /sys/fs/f2fs/<disk>/features to meet sysfs rule. | |
| Supported on-disk features: | |
| encryption, block_zoned (aka blkzoned), extra_attr, | |
| project_quota (aka projquota), inode_checksum, | |
| flexible_inline_xattr, quota_ino, inode_crtime, lost_found, | |
| verity, sb_checksum, casefold, readonly, compression. | |
| Note that, pin_file is moved into /sys/fs/f2fs/features/. | |
| What: /sys/fs/f2fs/features/ | |
| Date: July 2017 | |
| Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> | |
| Description: Shows all enabled kernel features. | |
| Supported features: | |
| encryption, block_zoned, extra_attr, project_quota, | |
| inode_checksum, flexible_inline_xattr, quota_ino, | |
| inode_crtime, lost_found, verity, sb_checksum, | |
| casefold, readonly, compression, test_dummy_encryption_v2, | |
| atomic_write, pin_file, encrypted_casefold, linear_lookup, | |
| fserror. | |
| What: /sys/fs/f2fs/<disk>/inject_rate | |
| Date: May 2016 | |
| Contact: "Sheng Yong" <shengyong1@huawei.com> | |
| Description: Controls the injection rate of arbitrary faults. | |
| What: /sys/fs/f2fs/<disk>/inject_type | |
| Date: May 2016 | |
| Contact: "Sheng Yong" <shengyong1@huawei.com> | |
| Description: Controls the injection type of arbitrary faults. | |
| What: /sys/fs/f2fs/<disk>/dirty_segments | |
| Date: October 2017 | |
| Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> | |
| Description: Shows the number of dirty segments. | |
| What: /sys/fs/f2fs/<disk>/reserved_blocks | |
| Date: June 2017 | |
| Contact: "Chao Yu" <yuchao0@huawei.com> | |
| Description: Controls target reserved blocks in system, the threshold | |
| is soft, it could exceed current available user space. | |
| What: /sys/fs/f2fs/<disk>/current_reserved_blocks | |
| Date: October 2017 | |
| Contact: "Yunlong Song" <yunlong.song@huawei.com> | |
| Contact: "Chao Yu" <yuchao0@huawei.com> | |
| Description: Shows current reserved blocks in system, it may be temporarily | |
| smaller than target_reserved_blocks, but will gradually | |
| increase to target_reserved_blocks when more free blocks are | |
| freed by user later. | |
| What: /sys/fs/f2fs/<disk>/gc_urgent | |
| Date: August 2017 | |
| Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> | |
| Description: Do background GC aggressively when set. Set to 0 by default. | |
| gc urgent high(1): does GC forcibly in a period of given | |
| gc_urgent_sleep_time and ignores I/O idling check. uses greedy | |
| GC approach and turns SSR mode on. | |
| gc urgent low(2): lowers the bar of checking I/O idling in | |
| order to process outstanding discard commands and GC a | |
| little bit aggressively. always uses cost benefit GC approach, | |
| and will override age-threshold GC approach if ATGC is enabled | |
| at the same time. | |
| gc urgent mid(3): does GC forcibly in a period of given | |
| gc_urgent_sleep_time and executes a mid level of I/O idling check. | |
| always uses cost benefit GC approach, and will override | |
| age-threshold GC approach if ATGC is enabled at the same time. | |
| What: /sys/fs/f2fs/<disk>/gc_urgent_sleep_time | |
| Date: August 2017 | |
| Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> | |
| Description: Controls sleep time of GC urgent mode. Set to 500ms by default. | |
| What: /sys/fs/f2fs/<disk>/readdir_ra | |
| Date: November 2017 | |
| Contact: "Sheng Yong" <shengyong1@huawei.com> | |
| Description: Controls readahead inode block in readdir. Enabled by default. | |
| What: /sys/fs/f2fs/<disk>/gc_pin_file_thresh | |
| Date: January 2018 | |
| Contact: Jaegeuk Kim <jaegeuk@kernel.org> | |
| Description: This indicates how many GC can be failed for the pinned | |
| file. If it exceeds this, F2FS doesn't guarantee its pinning | |
| state. 2048 trials is set by default, and 65535 as maximum. | |
| What: /sys/fs/f2fs/<disk>/extension_list | |
| Date: February 2018 | |
| Contact: "Chao Yu" <yuchao0@huawei.com> | |
| Description: Used to control configure extension list: | |
| - Query: cat /sys/fs/f2fs/<disk>/extension_list | |
| - Add: echo '[h/c]extension' > /sys/fs/f2fs/<disk>/extension_list | |
| - Del: echo '[h/c]!extension' > /sys/fs/f2fs/<disk>/extension_list | |
| - [h] means add/del hot file extension | |
| - [c] means add/del cold file extension | |
| What: /sys/fs/f2fs/<disk>/unusable | |
| Date: April 2019 | |
| Contact: "Daniel Rosenberg" <drosen@google.com> | |
| Description: If checkpoint=disable, it displays the number of blocks that | |
| are unusable. | |
| If checkpoint=enable it displays the number of blocks that | |
| would be unusable if checkpoint=disable were to be set. | |
| What: /sys/fs/f2fs/<disk>/encoding | |
| Date: July 2019 | |
| Contact: "Daniel Rosenberg" <drosen@google.com> | |
| Description: Displays name and version of the encoding set for the filesystem. | |
| If no encoding is set, displays (none) | |
| What: /sys/fs/f2fs/<disk>/free_segments | |
| Date: September 2019 | |
| Contact: "Hridya Valsaraju" <hridya@google.com> | |
| Description: Number of free segments in disk. | |
| What: /sys/fs/f2fs/<disk>/cp_foreground_calls | |
| Date: September 2019 | |
| Contact: "Hridya Valsaraju" <hridya@google.com> | |
| Description: Number of checkpoint operations performed on demand. Available when | |
| CONFIG_F2FS_STAT_FS=y. | |
| What: /sys/fs/f2fs/<disk>/cp_background_calls | |
| Date: September 2019 | |
| Contact: "Hridya Valsaraju" <hridya@google.com> | |
| Description: Number of checkpoint operations performed in the background to | |
| free segments. Available when CONFIG_F2FS_STAT_FS=y. | |
| What: /sys/fs/f2fs/<disk>/gc_foreground_calls | |
| Date: September 2019 | |
| Contact: "Hridya Valsaraju" <hridya@google.com> | |
| Description: Number of garbage collection operations performed on demand. | |
| Available when CONFIG_F2FS_STAT_FS=y. | |
| What: /sys/fs/f2fs/<disk>/gc_background_calls | |
| Date: September 2019 | |
| Contact: "Hridya Valsaraju" <hridya@google.com> | |
| Description: Number of garbage collection operations triggered in background. | |
| Available when CONFIG_F2FS_STAT_FS=y. | |
| What: /sys/fs/f2fs/<disk>/moved_blocks_foreground | |
| Date: September 2019 | |
| Contact: "Hridya Valsaraju" <hridya@google.com> | |
| Description: Number of blocks moved by garbage collection in foreground. | |
| Available when CONFIG_F2FS_STAT_FS=y. | |
| What: /sys/fs/f2fs/<disk>/moved_blocks_background | |
| Date: September 2019 | |
| Contact: "Hridya Valsaraju" <hridya@google.com> | |
| Description: Number of blocks moved by garbage collection in background. | |
| Available when CONFIG_F2FS_STAT_FS=y. | |
| What: /sys/fs/f2fs/<disk>/avg_vblocks | |
| Date: September 2019 | |
| Contact: "Hridya Valsaraju" <hridya@google.com> | |
| Description: Average number of valid blocks. | |
| Available when CONFIG_F2FS_STAT_FS=y. | |
| What: /sys/fs/f2fs/<disk>/defrag_blocks | |
| Date: February 2026 | |
| Contact: "Jinbao Liu" <liujinbao1@xiaomi.com> | |
| Description: Number of blocks moved by defragment. | |
| Available when CONFIG_F2FS_STAT_FS=y. | |
| What: /sys/fs/f2fs/<disk>/mounted_time_sec | |
| Date: February 2020 | |
| Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> | |
| Description: Show the mounted time in secs of this partition. | |
| What: /sys/fs/f2fs/<disk>/data_io_flag | |
| Date: April 2020 | |
| Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> | |
| Description: Give a way to attach REQ_META|FUA to data writes | |
| given temperature-based bits. Now the bits indicate: | |
| +-------------------+-------------------+ | |
| | REQ_META | REQ_FUA | | |
| +------+------+-----+------+------+-----+ | |
| | 5 | 4 | 3 | 2 | 1 | 0 | | |
| +------+------+-----+------+------+-----+ | |
| | Cold | Warm | Hot | Cold | Warm | Hot | | |
| +------+------+-----+------+------+-----+ | |
| What: /sys/fs/f2fs/<disk>/node_io_flag | |
| Date: June 2020 | |
| Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> | |
| Description: Give a way to attach REQ_META|FUA to node writes | |
| given temperature-based bits. Now the bits indicate: | |
| +-------------------+-------------------+ | |
| | REQ_META | REQ_FUA | | |
| +------+------+-----+------+------+-----+ | |
| | 5 | 4 | 3 | 2 | 1 | 0 | | |
| +------+------+-----+------+------+-----+ | |
| | Cold | Warm | Hot | Cold | Warm | Hot | | |
| +------+------+-----+------+------+-----+ | |
| What: /sys/fs/f2fs/<disk>/iostat_period_ms | |
| Date: April 2020 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: Give a way to change iostat_period time. 3secs by default. | |
| The new iostat trace gives stats gap given the period. | |
| What: /sys/fs/f2fs/<disk>/max_io_bytes | |
| Date: December 2020 | |
| Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> | |
| Description: This gives a control to limit the bio size in f2fs. | |
| Default is zero, which will follow underlying block layer limit, | |
| whereas, if it has a certain bytes value, f2fs won't submit a | |
| bio larger than that size. | |
| What: /sys/fs/f2fs/<disk>/stat/sb_status | |
| Date: December 2020 | |
| Contact: "Chao Yu" <yuchao0@huawei.com> | |
| Description: Show status of f2fs superblock in real time. | |
| ====== ===================== ================================= | |
| value sb status macro description | |
| 0x1 SBI_IS_DIRTY dirty flag for checkpoint | |
| 0x2 SBI_IS_CLOSE specify unmounting | |
| 0x4 SBI_NEED_FSCK need fsck.f2fs to fix | |
| 0x8 SBI_POR_DOING recovery is doing or not | |
| 0x10 SBI_NEED_SB_WRITE need to recover superblock | |
| 0x20 SBI_NEED_CP need to checkpoint | |
| 0x40 SBI_IS_SHUTDOWN shutdown by ioctl | |
| 0x80 SBI_IS_RECOVERED recovered orphan/data | |
| 0x100 SBI_CP_DISABLED CP was disabled last mount | |
| 0x200 SBI_CP_DISABLED_QUICK CP was disabled quickly | |
| 0x400 SBI_QUOTA_NEED_FLUSH need to flush quota info in CP | |
| 0x800 SBI_QUOTA_SKIP_FLUSH skip flushing quota in current CP | |
| 0x1000 SBI_QUOTA_NEED_REPAIR quota file may be corrupted | |
| 0x2000 SBI_IS_RESIZEFS resizefs is in process | |
| 0x4000 SBI_IS_FREEZING freefs is in process | |
| ====== ===================== ================================= | |
| What: /sys/fs/f2fs/<disk>/stat/cp_status | |
| Date: September 2022 | |
| Contact: "Chao Yu" <chao.yu@oppo.com> | |
| Description: Show status of f2fs checkpoint in real time. | |
| =============================== ============================== | |
| cp flag value | |
| CP_UMOUNT_FLAG 0x00000001 | |
| CP_ORPHAN_PRESENT_FLAG 0x00000002 | |
| CP_COMPACT_SUM_FLAG 0x00000004 | |
| CP_ERROR_FLAG 0x00000008 | |
| CP_FSCK_FLAG 0x00000010 | |
| CP_FASTBOOT_FLAG 0x00000020 | |
| CP_CRC_RECOVERY_FLAG 0x00000040 | |
| CP_NAT_BITS_FLAG 0x00000080 | |
| CP_TRIMMED_FLAG 0x00000100 | |
| CP_NOCRC_RECOVERY_FLAG 0x00000200 | |
| CP_LARGE_NAT_BITMAP_FLAG 0x00000400 | |
| CP_QUOTA_NEED_FSCK_FLAG 0x00000800 | |
| CP_DISABLED_FLAG 0x00001000 | |
| CP_DISABLED_QUICK_FLAG 0x00002000 | |
| CP_RESIZEFS_FLAG 0x00004000 | |
| =============================== ============================== | |
| What: /sys/fs/f2fs/<disk>/stat/issued_discard | |
| Date: December 2023 | |
| Contact: "Zhiguo Niu" <zhiguo.niu@unisoc.com> | |
| Description: Shows the number of issued discard. | |
| What: /sys/fs/f2fs/<disk>/stat/queued_discard | |
| Date: December 2023 | |
| Contact: "Zhiguo Niu" <zhiguo.niu@unisoc.com> | |
| Description: Shows the number of queued discard. | |
| What: /sys/fs/f2fs/<disk>/stat/undiscard_blks | |
| Date: December 2023 | |
| Contact: "Zhiguo Niu" <zhiguo.niu@unisoc.com> | |
| Description: Shows the total number of undiscard blocks. | |
| What: /sys/fs/f2fs/<disk>/ckpt_thread_ioprio | |
| Date: January 2021 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: Give a way to change checkpoint merge daemon's io priority. | |
| Its default value is "rt,3", which means "RT" I/O class and | |
| I/O priority "3". We can select the class between "rt" and "be", | |
| and set the I/O priority within valid range of it. "," delimiter | |
| is necessary in between I/O class and priority number. | |
| What: /sys/fs/f2fs/<disk>/ovp_segments | |
| Date: March 2021 | |
| Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> | |
| Description: Shows the number of overprovision segments. | |
| What: /sys/fs/f2fs/<disk>/compr_written_block | |
| Date: March 2021 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: Show the block count written after compression since mount. Note | |
| that when the compressed blocks are deleted, this count doesn't | |
| decrease. If you write "0" here, you can initialize | |
| compr_written_block and compr_saved_block to "0". | |
| What: /sys/fs/f2fs/<disk>/compr_saved_block | |
| Date: March 2021 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: Show the saved block count with compression since mount. Note | |
| that when the compressed blocks are deleted, this count doesn't | |
| decrease. If you write "0" here, you can initialize | |
| compr_written_block and compr_saved_block to "0". | |
| What: /sys/fs/f2fs/<disk>/compr_new_inode | |
| Date: March 2021 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: Show the count of inode newly enabled for compression since mount. | |
| Note that when the compression is disabled for the files, this count | |
| doesn't decrease. If you write "0" here, you can initialize | |
| compr_new_inode to "0". | |
| What: /sys/fs/f2fs/<disk>/atgc_candidate_ratio | |
| Date: May 2021 | |
| Contact: "Chao Yu" <yuchao0@huawei.com> | |
| Description: When ATGC is on, it controls candidate ratio in order to limit total | |
| number of potential victim in all candidates, the value should be in | |
| range of [0, 100], by default it was initialized as 20(%). | |
| What: /sys/fs/f2fs/<disk>/atgc_candidate_count | |
| Date: May 2021 | |
| Contact: "Chao Yu" <yuchao0@huawei.com> | |
| Description: When ATGC is on, it controls candidate count in order to limit total | |
| number of potential victim in all candidates, by default it was | |
| initialized as 10 (sections). | |
| What: /sys/fs/f2fs/<disk>/atgc_age_weight | |
| Date: May 2021 | |
| Contact: "Chao Yu" <yuchao0@huawei.com> | |
| Description: When ATGC is on, it controls age weight to balance weight proportion | |
| in between aging and valid blocks, the value should be in range of | |
| [0, 100], by default it was initialized as 60(%). | |
| What: /sys/fs/f2fs/<disk>/atgc_age_threshold | |
| Date: May 2021 | |
| Contact: "Chao Yu" <yuchao0@huawei.com> | |
| Description: When ATGC is on, it controls age threshold to bypass GCing young | |
| candidates whose age is not beyond the threshold, by default it was | |
| initialized as 604800 seconds (equals to 7 days). | |
| What: /sys/fs/f2fs/<disk>/atgc_enabled | |
| Date: Feb 2024 | |
| Contact: "Jinbao Liu" <liujinbao1@xiaomi.com> | |
| Description: It represents whether ATGC is on or off. The value is 1 which | |
| indicates that ATGC is on, and 0 indicates that it is off. | |
| What: /sys/fs/f2fs/<disk>/gc_reclaimed_segments | |
| Date: July 2021 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: Show how many segments have been reclaimed by GC during a specific | |
| GC mode (0: GC normal, 1: GC idle CB, 2: GC idle greedy, | |
| 3: GC idle AT, 4: GC urgent high, 5: GC urgent low 6: GC urgent mid) | |
| You can re-initialize this value to "0". | |
| What: /sys/fs/f2fs/<disk>/gc_segment_mode | |
| Date: July 2021 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: You can control for which gc mode the "gc_reclaimed_segments" node shows. | |
| Refer to the description of the modes in "gc_reclaimed_segments". | |
| What: /sys/fs/f2fs/<disk>/seq_file_ra_mul | |
| Date: July 2021 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: You can control the multiplier value of bdi device readahead window size | |
| between 2 (default) and 256 for POSIX_FADV_SEQUENTIAL advise option. | |
| What: /sys/fs/f2fs/<disk>/max_fragment_chunk | |
| Date: August 2021 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: With "mode=fragment:block" mount options, we can scatter block allocation. | |
| f2fs will allocate 1..<max_fragment_chunk> blocks in a chunk and make a hole | |
| in the length of 1..<max_fragment_hole> by turns. This value can be set | |
| between 1..512 and the default value is 4. | |
| What: /sys/fs/f2fs/<disk>/max_fragment_hole | |
| Date: August 2021 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: With "mode=fragment:block" mount options, we can scatter block allocation. | |
| f2fs will allocate 1..<max_fragment_chunk> blocks in a chunk and make a hole | |
| in the length of 1..<max_fragment_hole> by turns. This value can be set | |
| between 1..512 and the default value is 4. | |
| What: /sys/fs/f2fs/<disk>/gc_remaining_trials | |
| Date: October 2022 | |
| Contact: "Yangtao Li" <frank.li@vivo.com> | |
| Description: You can set the trial count limit for GC urgent and idle mode with this value. | |
| If GC thread gets to the limit, the mode will turn back to GC normal mode. | |
| By default, the value is zero, which means there is no limit like before. | |
| What: /sys/fs/f2fs/<disk>/max_roll_forward_node_blocks | |
| Date: January 2022 | |
| Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> | |
| Description: Controls max # of node block writes to be used for roll forward | |
| recovery. This can limit the roll forward recovery time. | |
| What: /sys/fs/f2fs/<disk>/unusable_blocks_per_sec | |
| Date: June 2022 | |
| Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> | |
| Description: Shows the number of unusable blocks in a section which was defined by | |
| the zone capacity reported by underlying zoned device. | |
| What: /sys/fs/f2fs/<disk>/max_open_zones | |
| Date: November 2025 | |
| Contact: "Yongpeng Yang" <yangyongpeng@xiaomi.com> | |
| Description: Shows the max number of zones that F2FS can write concurrently when a zoned | |
| device is mounted. | |
| What: /sys/fs/f2fs/<disk>/current_atomic_write | |
| Date: July 2022 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: Show the total current atomic write block count, which is not committed yet. | |
| This is a read-only entry. | |
| What: /sys/fs/f2fs/<disk>/peak_atomic_write | |
| Date: July 2022 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: Show the peak value of total current atomic write block count after boot. | |
| If you write "0" here, you can initialize to "0". | |
| What: /sys/fs/f2fs/<disk>/committed_atomic_block | |
| Date: July 2022 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: Show the accumulated total committed atomic write block count after boot. | |
| If you write "0" here, you can initialize to "0". | |
| What: /sys/fs/f2fs/<disk>/revoked_atomic_block | |
| Date: July 2022 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: Show the accumulated total revoked atomic write block count after boot. | |
| If you write "0" here, you can initialize to "0". | |
| What: /sys/fs/f2fs/<disk>/gc_mode | |
| Date: October 2022 | |
| Contact: "Yangtao Li" <frank.li@vivo.com> | |
| Description: Show the current gc_mode as a string. | |
| This is a read-only entry. | |
| What: /sys/fs/f2fs/<disk>/discard_urgent_util | |
| Date: November 2022 | |
| Contact: "Yangtao Li" <frank.li@vivo.com> | |
| Description: When space utilization exceeds this, do background DISCARD aggressively. | |
| Does DISCARD forcibly in a period of given min_discard_issue_time when the number | |
| of discards is not 0 and set discard granularity to 1. | |
| Default: 80 | |
| What: /sys/fs/f2fs/<disk>/hot_data_age_threshold | |
| Date: November 2022 | |
| Contact: "Ping Xiong" <xiongping1@xiaomi.com> | |
| Description: When DATA SEPARATION is on, it controls the age threshold to indicate | |
| the data blocks as hot. By default it was initialized as 262144 blocks | |
| (equals to 1GB). | |
| What: /sys/fs/f2fs/<disk>/warm_data_age_threshold | |
| Date: November 2022 | |
| Contact: "Ping Xiong" <xiongping1@xiaomi.com> | |
| Description: When DATA SEPARATION is on, it controls the age threshold to indicate | |
| the data blocks as warm. By default it was initialized as 2621440 blocks | |
| (equals to 10GB). | |
| What: /sys/fs/f2fs/<disk>/fault_rate | |
| Date: May 2016 | |
| Contact: "Sheng Yong" <shengyong@oppo.com> | |
| Contact: "Chao Yu" <chao@kernel.org> | |
| Description: Enable fault injection in all supported types with | |
| specified injection rate. | |
| What: /sys/fs/f2fs/<disk>/fault_type | |
| Date: May 2016 | |
| Contact: "Sheng Yong" <shengyong@oppo.com> | |
| Contact: "Chao Yu" <chao@kernel.org> | |
| Description: Support configuring fault injection type, should be | |
| enabled with fault_injection option, fault type value | |
| is shown below, it supports single or combined type. | |
| =========================== ========== | |
| Type_Name Type_Value | |
| =========================== ========== | |
| FAULT_KMALLOC 0x00000001 | |
| FAULT_KVMALLOC 0x00000002 | |
| FAULT_PAGE_ALLOC 0x00000004 | |
| FAULT_PAGE_GET 0x00000008 | |
| FAULT_ALLOC_BIO 0x00000010 (obsolete) | |
| FAULT_ALLOC_NID 0x00000020 | |
| FAULT_ORPHAN 0x00000040 | |
| FAULT_BLOCK 0x00000080 | |
| FAULT_DIR_DEPTH 0x00000100 | |
| FAULT_EVICT_INODE 0x00000200 | |
| FAULT_TRUNCATE 0x00000400 | |
| FAULT_READ_IO 0x00000800 | |
| FAULT_CHECKPOINT 0x00001000 | |
| FAULT_DISCARD 0x00002000 (obsolete) | |
| FAULT_WRITE_IO 0x00004000 | |
| FAULT_SLAB_ALLOC 0x00008000 | |
| FAULT_DQUOT_INIT 0x00010000 | |
| FAULT_LOCK_OP 0x00020000 | |
| FAULT_BLKADDR_VALIDITY 0x00040000 | |
| FAULT_BLKADDR_CONSISTENCE 0x00080000 | |
| FAULT_NO_SEGMENT 0x00100000 | |
| FAULT_INCONSISTENT_FOOTER 0x00200000 | |
| FAULT_ATOMIC_TIMEOUT 0x00400000 (1000ms) | |
| FAULT_VMALLOC 0x00800000 | |
| FAULT_LOCK_TIMEOUT 0x01000000 (1000ms) | |
| FAULT_SKIP_WRITE 0x02000000 | |
| =========================== ========== | |
| What: /sys/fs/f2fs/<disk>/discard_io_aware_gran | |
| Date: January 2023 | |
| Contact: "Yangtao Li" <frank.li@vivo.com> | |
| Description: Controls background discard granularity of inner discard thread | |
| when is not in idle. Inner thread will not issue discards with size that | |
| is smaller than granularity. The unit size is one block(4KB), now only | |
| support configuring in range of [0, 512]. | |
| Default: 512 | |
| What: /sys/fs/f2fs/<disk>/last_age_weight | |
| Date: January 2023 | |
| Contact: "Ping Xiong" <xiongping1@xiaomi.com> | |
| Description: When DATA SEPARATION is on, it controls the weight of last data block age. | |
| What: /sys/fs/f2fs/<disk>/compress_watermark | |
| Date: February 2023 | |
| Contact: "Yangtao Li" <frank.li@vivo.com> | |
| Description: When compress cache is on, it controls free memory watermark | |
| in order to limit caching compress page. If free memory is lower | |
| than watermark, then deny caching compress page. The value should be in | |
| range of (0, 100], by default it was initialized as 20(%). | |
| What: /sys/fs/f2fs/<disk>/compress_percent | |
| Date: February 2023 | |
| Contact: "Yangtao Li" <frank.li@vivo.com> | |
| Description: When compress cache is on, it controls cached page | |
| percent(compress pages / free_ram) in order to limit caching compress page. | |
| If cached page percent exceed threshold, then deny caching compress page. | |
| The value should be in range of (0, 100], by default it was initialized | |
| as 20(%). | |
| What: /sys/fs/f2fs/<disk>/discard_io_aware | |
| Date: November 2023 | |
| Contact: "Chao Yu" <chao@kernel.org> | |
| Description: It controls to enable/disable IO aware feature for background discard. | |
| By default, the value is 1 which indicates IO aware is on. | |
| What: /sys/fs/f2fs/<disk>/blkzone_alloc_policy | |
| Date: July 2024 | |
| Contact: "Yuanhong Liao" <liaoyuanhong@vivo.com> | |
| Description: The zone UFS we are currently using consists of two parts: | |
| conventional zones and sequential zones. It can be used to control which part | |
| to prioritize for writes, with a default value of 0. | |
| ======================== ========================================= | |
| value description | |
| blkzone_alloc_policy = 0 Prioritize writing to sequential zones | |
| blkzone_alloc_policy = 1 Only allow writing to sequential zones | |
| blkzone_alloc_policy = 2 Prioritize writing to conventional zones | |
| ======================== ========================================= | |
| What: /sys/fs/f2fs/<disk>/migration_window_granularity | |
| Date: September 2024 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: Controls migration window granularity of garbage collection on large | |
| section. it can control the scanning window granularity for GC migration | |
| in a unit of segment, while migration_granularity controls the number | |
| of segments which can be migrated at the same turn. | |
| What: /sys/fs/f2fs/<disk>/reserved_segments | |
| Date: September 2024 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: In order to fine tune GC behavior, we can control the number of | |
| reserved segments. | |
| What: /sys/fs/f2fs/<disk>/gc_no_zoned_gc_percent | |
| Date: September 2024 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: If the percentage of free sections over total sections is above this | |
| number, F2FS do not garbage collection for zoned devices through the | |
| background GC thread. the default number is "60". | |
| What: /sys/fs/f2fs/<disk>/gc_boost_zoned_gc_percent | |
| Date: September 2024 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: If the percentage of free sections over total sections is under this | |
| number, F2FS boosts garbage collection for zoned devices through the | |
| background GC thread. the default number is "25". | |
| What: /sys/fs/f2fs/<disk>/gc_valid_thresh_ratio | |
| Date: September 2024 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: It controls the valid block ratio threshold not to trigger excessive GC | |
| for zoned devices. The initial value of it is 95(%). F2FS will stop the | |
| background GC thread from initiating GC for sections having valid blocks | |
| exceeding the ratio. | |
| What: /sys/fs/f2fs/<disk>/max_read_extent_count | |
| Date: November 2024 | |
| Contact: "Chao Yu" <chao@kernel.org> | |
| Description: It controls max read extent count for per-inode, the value of threshold | |
| is 10240 by default. | |
| What: /sys/fs/f2fs/tuning/reclaim_caches_kb | |
| Date: February 2025 | |
| Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> | |
| Description: It reclaims the given KBs of file-backed pages registered by | |
| ioctl(F2FS_IOC_DONATE_RANGE). | |
| For example, writing N tries to drop N KBs spaces in LRU. | |
| What: /sys/fs/f2fs/<disk>/carve_out | |
| Date: March 2025 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: For several zoned storage devices, vendors will provide extra space which | |
| was used for device level GC than specs and F2FS can use this space for | |
| filesystem level GC. To do that, we can reserve the space using | |
| reserved_blocks. However, it is not enough, since this extra space should | |
| not be shown to users. So, with this new sysfs node, we can hide the space | |
| by subtracting reserved_blocks from total bytes. | |
| What: /sys/fs/f2fs/<disk>/encoding_flags | |
| Date: April 2025 | |
| Contact: "Chao Yu" <chao@kernel.org> | |
| Description: This is a read-only entry to show the value of sb.s_encoding_flags, the | |
| value is hexadecimal. | |
| ============================ ========== | |
| Flag_Name Flag_Value | |
| ============================ ========== | |
| SB_ENC_STRICT_MODE_FL 0x00000001 | |
| SB_ENC_NO_COMPAT_FALLBACK_FL 0x00000002 | |
| ============================ ========== | |
| What: /sys/fs/f2fs/<disk>/reserved_pin_section | |
| Date: June 2025 | |
| Contact: "Chao Yu" <chao@kernel.org> | |
| Description: This threshold is used to control triggering garbage collection while | |
| fallocating on pinned file, so, it can guarantee there is enough free | |
| reserved section before preallocating on pinned file. | |
| By default, the value is ovp_sections, especially, for zoned ufs, the | |
| value is 1. | |
| What: /sys/fs/f2fs/<disk>/gc_boost_gc_multiple | |
| Date: June 2025 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: Set a multiplier for the background GC migration window when F2FS GC is | |
| boosted. The range should be from 1 to the segment count in a section. | |
| Default: 5 | |
| What: /sys/fs/f2fs/<disk>/gc_boost_gc_greedy | |
| Date: June 2025 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: Control GC algorithm for boost GC. 0: cost benefit, 1: greedy | |
| Default: 1 | |
| What: /sys/fs/f2fs/<disk>/effective_lookup_mode | |
| Date: August 2025 | |
| Contact: "Daniel Lee" <chullee@google.com> | |
| Description: | |
| This is a read-only entry to show the effective directory lookup mode | |
| F2FS is currently using for casefolded directories. | |
| This considers both the "lookup_mode" mount option and the on-disk | |
| encoding flag, SB_ENC_NO_COMPAT_FALLBACK_FL. | |
| Possible values are: | |
| - "perf": Hash-only lookup. | |
| - "compat": Hash-based lookup with a linear search fallback enabled | |
| - "auto:perf": lookup_mode is auto and fallback is disabled on-disk | |
| - "auto:compat": lookup_mode is auto and fallback is enabled on-disk | |
| What: /sys/fs/f2fs/<disk>/bggc_io_aware | |
| Date: August 2025 | |
| Contact: "Liao Yuanhong" <liaoyuanhong@vivo.com> | |
| Description: Used to adjust the BG_GC priority when pending IO, with a default value | |
| of 0. Specifically, for ZUFS, the default value is 1. | |
| ================== ====================================================== | |
| value description | |
| bggc_io_aware = 0 skip background GC if there is any kind of pending IO | |
| bggc_io_aware = 1 skip background GC if there is pending read IO | |
| bggc_io_aware = 2 don't aware IO for background GC | |
| ================== ====================================================== | |
| What: /sys/fs/f2fs/<disk>/allocate_section_hint | |
| Date: August 2025 | |
| Contact: "Liao Yuanhong" <liaoyuanhong@vivo.com> | |
| Description: Indicates the hint section between the first device and others in multi-devices | |
| setup. It defaults to the end of the first device in sections. For a single storage | |
| device, it defaults to the total number of sections. It can be manually set to match | |
| scenarios where multi-devices are mapped to the same dm device. | |
| What: /sys/fs/f2fs/<disk>/allocate_section_policy | |
| Date: August 2025 | |
| Contact: "Liao Yuanhong" <liaoyuanhong@vivo.com> | |
| Description: Controls write priority in multi-devices setups. A value of 0 means normal writing. | |
| A value of 1 prioritizes writing to devices before the allocate_section_hint. A value of 2 | |
| prioritizes writing to devices after the allocate_section_hint. The default is 0. | |
| =========================== ========================================================== | |
| value description | |
| allocate_section_policy = 0 Normal writing | |
| allocate_section_policy = 1 Prioritize writing to section before allocate_section_hint | |
| allocate_section_policy = 2 Prioritize writing to section after allocate_section_hint | |
| =========================== ========================================================== | |
| What: /sys/fs/f2fs/<disk>/max_lock_elapsed_time | |
| Date: December 2025 | |
| Contact: "Chao Yu" <chao@kernel.org> | |
| Description: This is a threshold, once a thread enters critical region that lock covers, total | |
| elapsed time exceeds this threshold, f2fs will print tracepoint to dump information | |
| of related context. This sysfs entry can be used to control the value of threshold, | |
| by default, the value is 500 ms. | |
| What: /sys/fs/f2fs/<disk>/inject_timeout_type | |
| Date: December 2025 | |
| Contact: "Chao Yu" <chao@kernel.org> | |
| Description: This sysfs entry can be used to change type of injected timeout: | |
| ========== =============================== | |
| Flag_Value Flag_Description | |
| ========== =============================== | |
| 0x00000000 No timeout (default) | |
| 0x00000001 Simulate running time | |
| 0x00000002 Simulate IO type sleep time | |
| 0x00000003 Simulate Non-IO type sleep time | |
| 0x00000004 Simulate runnable time | |
| ========== =============================== | |
| What: /sys/fs/f2fs/<disk>/adjust_lock_priority | |
| Date: January 2026 | |
| Contact: "Chao Yu" <chao@kernel.org> | |
| Description: This sysfs entry can be used to enable/disable to adjust priority for task | |
| which is in critical region covered by lock. | |
| ========== ================== | |
| Flag_Value Flag_Description | |
| ========== ================== | |
| 0x00000000 Disabled (default) | |
| 0x00000001 cp_rwsem | |
| 0x00000002 node_change | |
| 0x00000004 node_write | |
| 0x00000008 gc_lock | |
| 0x00000010 cp_global | |
| 0x00000020 io_rwsem | |
| 0x00000040 nat_tree_lock | |
| ========== ================== | |
| What: /sys/fs/f2fs/<disk>/lock_duration_priority | |
| Date: January 2026 | |
| Contact: "Chao Yu" <chao@kernel.org> | |
| Description: f2fs can tune priority of thread which has entered into critical region covered by | |
| f2fs rwsemphore lock. This sysfs entry can be used to control priority value, the | |
| range is [100,139], by default the value is 120. | |
| What: /sys/fs/f2fs/<disk>/critical_task_priority | |
| Date: February 2026 | |
| Contact: "Chao Yu" <chao@kernel.org> | |
| Description: It can be used to tune priority of f2fs critical task, e.g. f2fs_ckpt, f2fs_gc | |
| threads, limitation as below: | |
| - it requires user has CAP_SYS_NICE capability. | |
| - the range is [100, 139], by default the value is 120. | |
| What: /sys/fs/f2fs/<disk>/max_atc_write_bio_size | |
| Date: June 2026 | |
| Contact: Bart Van Assche <bvanassche@acm.org> | |
| Description: Every time a write operation completes f2fs_write_end_io() is | |
| called. This function may be called from an atomic context, | |
| e.g. from inside an interrupt handler. This attribute controls | |
| the maximum size of a write bio that is completed in atomic | |
| (atc) context. The default value for this attribute is UINT_MAX | |
| which means that this functionality is disabled by default. | |
| What: /sys/fs/f2fs/<disk>/pinned_area_max_secno | |
| Date: August 2026 | |
| Contact: "Daeho Jeong" <daehojeong@google.com> | |
| Description: This is a read-only entry to show the upper bound section number | |
| for pinned files. Pinned files will only be allocated within | |
| sections 0 to pinned_area_max_secno - 1. |