| 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. |
| |
| 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. uses cost benefit GC approach. |
| 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. |
| uses cost benefit GC approach. |
| |
| 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>/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 "be,3", which means "BE" 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>/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 0x000000001 |
| FAULT_KVMALLOC 0x000000002 |
| FAULT_PAGE_ALLOC 0x000000004 |
| FAULT_PAGE_GET 0x000000008 |
| FAULT_ALLOC_BIO 0x000000010 (obsolete) |
| FAULT_ALLOC_NID 0x000000020 |
| FAULT_ORPHAN 0x000000040 |
| FAULT_BLOCK 0x000000080 |
| FAULT_DIR_DEPTH 0x000000100 |
| FAULT_EVICT_INODE 0x000000200 |
| FAULT_TRUNCATE 0x000000400 |
| FAULT_READ_IO 0x000000800 |
| FAULT_CHECKPOINT 0x000001000 |
| FAULT_DISCARD 0x000002000 |
| FAULT_WRITE_IO 0x000004000 |
| FAULT_SLAB_ALLOC 0x000008000 |
| FAULT_DQUOT_INIT 0x000010000 |
| FAULT_LOCK_OP 0x000020000 |
| FAULT_BLKADDR_VALIDITY 0x000040000 |
| FAULT_BLKADDR_CONSISTENCE 0x000080000 |
| FAULT_NO_SEGMENT 0x000100000 |
| =========================== =========== |
| |
| 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 deivces. The initial value of it is 95(%). F2FS will stop the |
| background GC thread from intiating GC for sections having valid blocks |
| exceeding the ratio. |