mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-27 06:04:23 +08:00
e791d00bd0
We need to introduce a valid block ratio threshold not to trigger excessive GC for zoned deivces. The initial value of it is 95%. So, F2FS will stop the thread from intiating GC for sections having valid blocks exceeding the ratio. Signed-off-by: Daeho Jeong <daehojeong@google.com> Reviewed-by: Chao Yu <chao@kernel.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
822 lines
33 KiB
Plaintext
822 lines
33 KiB
Plaintext
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.
|