| 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: |
| |
| ==== ================= |
| 0x01 F2FS_IPU_FORCE |
| 0x02 F2FS_IPU_SSR |
| 0x04 F2FS_IPU_UTIL |
| 0x08 F2FS_IPU_SSR_UTIL |
| 0x10 F2FS_IPU_FSYNC |
| 0x20 F2FS_IPU_ASYNC, |
| 0x40 F2FS_IPU_NOCACHE |
| ==== ================= |
| |
| 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 until |
| checkpoint is triggered, and issued during the checkpoint. |
| By default, it is disabled with 0. |
| |
| 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 4(=16KB). |
| |
| 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>/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>/batched_trim_sections |
| Date: February 2015 |
| Contact: "Jaegeuk Kim" <jaegeuk@kernel.org> |
| Description: Controls the trimming rate in batch mode. |
| <deprecated> |
| |
| 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" <stummala@codeaurora.org> |
| 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" <stummala@codeaurora.org> |
| 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. When gc_urgent = 1, |
| background thread starts to do GC by given gc_urgent_sleep_time |
| interval. When gc_urgent = 2, F2FS will lower the bar of |
| checking idle in order to process outstanding discard commands |
| and GC a little bit aggressively. It is set to 0 by default. |
| |
| 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. |
| |
| What: /sys/fs/f2fs/<disk>/extension_list |
| Date: Feburary 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 |
| ====== ===================== ================================= |
| |
| 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). |