요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
Features, accounting and I/O flags
sysfs-fs-f2fs:243-503On-disk·kernel feature discovery, urgent GC, filesystem counters, temperature-based I/O flags와 live superblock·checkpoint status를 제공합니다.
Compression, ATGC and atomic writes
sysfs-fs-f2fs:504-683Discard statistics, checkpoint daemon priority, compression savings, ATGC victim controls, fragmented allocation과 atomic-write counters를 설명합니다.
Fault injection, zoned storage and multi-device policy
sysfs-fs-f2fs:684-935Data-age separation, comprehensive fault-injection bitmasks, compression cache limits, zoned GC·allocation과 multi-device write priority를 다룹니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
What: /sys/fs/f2fs/<disk>/gc_max_sleep_time
Date: July 2013
Contact: "Namjae Jeon" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
Description: Shows first block address of MAIN area.
What: /sys/fs/f2fs/<disk>/ipu_policy
Date: November 2013
Contact: "Jaegeuk Kim" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
Description: Controls the checkpoint timing, set to 60 seconds by default.
What: /sys/fs/f2fs/<disk>/idle_interval
Date: January 2016
Contact: "Jaegeuk Kim" <[email protected]>
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" <[email protected]>
Contact: "Sahitya Tummala" <[email protected]>
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" <[email protected]>
Contact: "Sahitya Tummala" <[email protected]>
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" <[email protected]>
Description: Controls to enable/disable IO stat.
What: /sys/fs/f2fs/<disk>/ra_nid_pages
Date: October 2015
Contact: "Chao Yu" <[email protected]>
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" <[email protected]>
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" <[email protected]>
Description: Shows total written kbytes issued to disk.
What: /sys/fs/f2fs/<disk>/features
Date: July 2017
Contact: "Jaegeuk Kim" <[email protected]>
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" <[email protected]>
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" <[email protected]>
Description: Shows all enabled kernel features.
Supported features:
encryption, block_zoned, extra_attr, project_quota,
inode_checksum, flexible_inline_xattr, quota_ino,
inode_crtime, lost_found, verity, sb_checksum,
casefold, readonly, compression, test_dummy_encryption_v2,
atomic_write, pin_file, encrypted_casefold, linear_lookup.
What: /sys/fs/f2fs/<disk>/inject_rate
Date: May 2016
Contact: "Sheng Yong" <[email protected]>
Description: Controls the injection rate of arbitrary faults.
What: /sys/fs/f2fs/<disk>/inject_type
Date: May 2016
Contact: "Sheng Yong" <[email protected]>
Description: Controls the injection type of arbitrary faults.
What: /sys/fs/f2fs/<disk>/dirty_segments
Date: October 2017
Contact: "Jaegeuk Kim" <[email protected]>
Description: Shows the number of dirty segments.
What: /sys/fs/f2fs/<disk>/reserved_blocks
Date: June 2017
Contact: "Chao Yu" <[email protected]>
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" <[email protected]>
Contact: "Chao Yu" <[email protected]>
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" <[email protected]>
Description: Do background GC aggressively when set. Set to 0 by default.
gc urgent high(1): does GC forcibly in a period of given
gc_urgent_sleep_time and ignores I/O idling check. uses greedy
GC approach and turns SSR mode on.
gc urgent low(2): lowers the bar of checking I/O idling in
order to process outstanding discard commands and GC a
little bit aggressively. always uses cost benefit GC approach,
and will override age-threshold GC approach if ATGC is enabled
at the same time.
gc urgent mid(3): does GC forcibly in a period of given
gc_urgent_sleep_time and executes a mid level of I/O idling check.
always uses cost benefit GC approach, and will override
age-threshold GC approach if ATGC is enabled at the same time.
What: /sys/fs/f2fs/<disk>/gc_urgent_sleep_time
Date: August 2017
Contact: "Jaegeuk Kim" <[email protected]>
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" <[email protected]>
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 <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
Description: Number of free segments in disk.
What: /sys/fs/f2fs/<disk>/cp_foreground_calls
Date: September 2019
Contact: "Hridya Valsaraju" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
Description: Show the mounted time in secs of this partition.
What: /sys/fs/f2fs/<disk>/data_io_flag
Date: April 2020
Contact: "Jaegeuk Kim" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
Description: Shows the number of issued discard.
What: /sys/fs/f2fs/<disk>/stat/queued_discard
Date: December 2023
Contact: "Zhiguo Niu" <[email protected]>
Description: Shows the number of queued discard.
What: /sys/fs/f2fs/<disk>/stat/undiscard_blks
Date: December 2023
Contact: "Zhiguo Niu" <[email protected]>
Description: Shows the total number of undiscard blocks.
What: /sys/fs/f2fs/<disk>/ckpt_thread_ioprio
Date: January 2021
Contact: "Daeho Jeong" <[email protected]>
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" <[email protected]>
Description: Shows the number of overprovision segments.
What: /sys/fs/f2fs/<disk>/compr_written_block
Date: March 2021
Contact: "Daeho Jeong" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
Contact: "Chao Yu" <[email protected]>
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" <[email protected]>
Contact: "Chao Yu" <[email protected]>
Description: Support configuring fault injection type, should be
enabled with fault_injection option, fault type value
is shown below, it supports single or combined type.
=========================== ==========
Type_Name Type_Value
=========================== ==========
FAULT_KMALLOC 0x00000001
FAULT_KVMALLOC 0x00000002
FAULT_PAGE_ALLOC 0x00000004
FAULT_PAGE_GET 0x00000008
FAULT_ALLOC_BIO 0x00000010 (obsolete)
FAULT_ALLOC_NID 0x00000020
FAULT_ORPHAN 0x00000040
FAULT_BLOCK 0x00000080
FAULT_DIR_DEPTH 0x00000100
FAULT_EVICT_INODE 0x00000200
FAULT_TRUNCATE 0x00000400
FAULT_READ_IO 0x00000800
FAULT_CHECKPOINT 0x00001000
FAULT_DISCARD 0x00002000
FAULT_WRITE_IO 0x00004000
FAULT_SLAB_ALLOC 0x00008000
FAULT_DQUOT_INIT 0x00010000
FAULT_LOCK_OP 0x00020000
FAULT_BLKADDR_VALIDITY 0x00040000
FAULT_BLKADDR_CONSISTENCE 0x00080000
FAULT_NO_SEGMENT 0x00100000
FAULT_INCONSISTENT_FOOTER 0x00200000
FAULT_TIMEOUT 0x00400000 (1000ms)
FAULT_VMALLOC 0x00800000
=========================== ==========
What: /sys/fs/f2fs/<disk>/discard_io_aware_gran
Date: January 2023
Contact: "Yangtao Li" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
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" <[email protected]>
Description: It controls the valid block ratio threshold not to trigger excessive GC
for zoned devices. The initial value of it is 95(%). F2FS will stop the
background GC thread from initiating GC for sections having valid blocks
exceeding the ratio.
What: /sys/fs/f2fs/<disk>/max_read_extent_count
Date: November 2024
Contact: "Chao Yu" <[email protected]>
Description: It controls max read extent count for per-inode, the value of threshold
is 10240 by default.
What: /sys/fs/f2fs/tuning/reclaim_caches_kb
Date: February 2025
Contact: "Jaegeuk Kim" <[email protected]>
Description: It reclaims the given KBs of file-backed pages registered by
ioctl(F2FS_IOC_DONATE_RANGE).
For example, writing N tries to drop N KBs spaces in LRU.
What: /sys/fs/f2fs/<disk>/carve_out
Date: March 2025
Contact: "Daeho Jeong" <[email protected]>
Description: For several zoned storage devices, vendors will provide extra space which
was used for device level GC than specs and F2FS can use this space for
filesystem level GC. To do that, we can reserve the space using
reserved_blocks. However, it is not enough, since this extra space should
not be shown to users. So, with this new sysfs node, we can hide the space
by subtracting reserved_blocks from total bytes.
What: /sys/fs/f2fs/<disk>/encoding_flags
Date: April 2025
Contact: "Chao Yu" <[email protected]>
Description: This is a read-only entry to show the value of sb.s_encoding_flags, the
value is hexadecimal.
============================ ==========
Flag_Name Flag_Value
============================ ==========
SB_ENC_STRICT_MODE_FL 0x00000001
SB_ENC_NO_COMPAT_FALLBACK_FL 0x00000002
============================ ==========
What: /sys/fs/f2fs/<disk>/reserved_pin_section
Date: June 2025
Contact: "Chao Yu" <[email protected]>
Description: This threshold is used to control triggering garbage collection while
fallocating on pinned file, so, it can guarantee there is enough free
reserved section before preallocating on pinned file.
By default, the value is ovp_sections, especially, for zoned ufs, the
value is 1.
What: /sys/fs/f2fs/<disk>/gc_boost_gc_multiple
Date: June 2025
Contact: "Daeho Jeong" <[email protected]>
Description: Set a multiplier for the background GC migration window when F2FS GC is
boosted. The range should be from 1 to the segment count in a section.
Default: 5
What: /sys/fs/f2fs/<disk>/gc_boost_gc_greedy
Date: June 2025
Contact: "Daeho Jeong" <[email protected]>
Description: Control GC algorithm for boost GC. 0: cost benefit, 1: greedy
Default: 1
What: /sys/fs/f2fs/<disk>/effective_lookup_mode
Date: August 2025
Contact: "Daniel Lee" <[email protected]>
Description:
This is a read-only entry to show the effective directory lookup mode
F2FS is currently using for casefolded directories.
This considers both the "lookup_mode" mount option and the on-disk
encoding flag, SB_ENC_NO_COMPAT_FALLBACK_FL.
Possible values are:
- "perf": Hash-only lookup.
- "compat": Hash-based lookup with a linear search fallback enabled
- "auto:perf": lookup_mode is auto and fallback is disabled on-disk
- "auto:compat": lookup_mode is auto and fallback is enabled on-disk
What: /sys/fs/f2fs/<disk>/bggc_io_aware
Date: August 2025
Contact: "Liao Yuanhong" <[email protected]>
Description: Used to adjust the BG_GC priority when pending IO, with a default value
of 0. Specifically, for ZUFS, the default value is 1.
================== ======================================================
value description
bggc_io_aware = 0 skip background GC if there is any kind of pending IO
bggc_io_aware = 1 skip background GC if there is pending read IO
bggc_io_aware = 2 don't aware IO for background GC
================== ======================================================
What: /sys/fs/f2fs/<disk>/allocate_section_hint
Date: August 2025
Contact: "Liao Yuanhong" <[email protected]>
Description: Indicates the hint section between the first device and others in multi-devices
setup. It defaults to the end of the first device in sections. For a single storage
device, it defaults to the total number of sections. It can be manually set to match
scenarios where multi-devices are mapped to the same dm device.
What: /sys/fs/f2fs/<disk>/allocate_section_policy
Date: August 2025
Contact: "Liao Yuanhong" <[email protected]>
Description: Controls write priority in multi-devices setups. A value of 0 means normal writing.
A value of 1 prioritizes writing to devices before the allocate_section_hint. A value of 2
prioritizes writing to devices after the allocate_section_hint. The default is 0.
=========================== ==========================================================
value description
allocate_section_policy = 0 Normal writing
allocate_section_policy = 1 Prioritize writing to section before allocate_section_hint
allocate_section_policy = 2 Prioritize writing to section after allocate_section_hint
=========================== ==========================================================
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
F2FS gc max sleep time
1-6| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/gc_max_sleep_time |
| Date | 2013년 7월 |
| Contact | "Namjae Jeon" <[email protected]> |
| Description | GC thread의 최대 sleep time을 제어합니다. 시간 단위는 milliseconds입니다. |
F2FS gc min sleep time
7-12| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/gc_min_sleep_time |
| Date | 2013년 7월 |
| Contact | "Namjae Jeon" <[email protected]> |
| Description | GC thread의 최소 sleep time을 제어합니다. 시간 단위는 milliseconds입니다. |
F2FS gc no gc sleep time
13-18| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/gc_no_gc_sleep_time |
| Date | 2013년 7월 |
| Contact | "Namjae Jeon" <[email protected]> |
| Description | GC할 작업이 없을 때 GC thread가 사용하는 default sleep time을 제어합니다. 시간 단위는 milliseconds입니다. |
F2FS gc idle
19-30| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/gc_idle |
| Date | 2013년 7월 |
| Contact | "Namjae Jeon" <[email protected]> |
| Description | Garbage collection의 victim selection policy를 제어합니다. `0`은 default이며 이 option을 disable합니다. `1`은 Cost Benefit 방식, `2`는 greedy 방식, `3`은 age-threshold 기반 방식을 선택합니다. |
원문의 victim-selection table을 구조화했습니다.
F2FS reclaim segments
31-40| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/reclaim_segments |
| Date | 2013년 10월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | Reclaim할 prefree segments 수를 제어합니다. Prefree segment 수가 전체 volume의 segment 수에 대해 이 percentage가 나타내는 수보다 많으면 F2FS가 checkpoint를 수행해 prefree segments를 free segments로 reclaim하려고 합니다. Default는 전체 segments의 5%입니다. |
F2FS main blkaddr
41-45| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/main_blkaddr |
| Date | 2019년 11월 |
| Contact | "Ramon Pantin" <[email protected]> |
| Description | MAIN area의 첫 block address를 표시합니다. |
F2FS ipu policy
46-71| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/ipu_policy |
| Date | 2013년 11월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | F2FS의 in-place-update(IPU) policy를 제어합니다. `0x00 DISABLE`은 IPU를 끄며 LFS mode의 default, `0x01 FORCE`는 항상 IPU, `0x02 SSR`은 SSR mode에서 IPU, `0x04 UTIL`은 filesystem utilization이 threshold를 넘을 때 IPU, `0x08 SSR_UTIL`은 SSR mode이면서 utilization도 threshold를 넘을 때 IPU를 사용합니다. `0x10 FSYNC`은 high-performance flash storage의 fsync path에서 dirty pages가 `min_fsync_blocks`를 넘을 때만 IPU를 trigger하며 default option입니다. `0x20 ASYNC`은 asynchronous write requests에 IPU를 적용하고, `0x40 NOCACHE`는 IPU bio cache를 disable하며, `0x80 HONOR_OPU_WRITE`는 inode에 `FI_OPU_WRITE` flag가 있으면 IPU보다 OPU write를 우선합니다. 자세한 내용은 `segment.h`를 참조합니다. |
In-place update를 trigger하거나 조정하는 bit values입니다.
F2FS min ipu util
72-77| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/min_ipu_util |
| Date | 2013년 11월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | In-place-update policies의 filesystem utilization 조건을 제어합니다. `F2FS_IPU_UTIL`과 `F2FS_IPU_SSR_UTIL` policies가 이 값을 사용합니다. |
F2FS min fsync blocks
78-83| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/min_fsync_blocks |
| Date | 2014년 9월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | In-place-update policies에 적용하는 dirty page count 조건을 제어합니다. |
F2FS min seq blocks
84-89| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/min_seq_blocks |
| Date | 2018년 8월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | `writepages`에서 batched sequential writes로 처리할 dirty page count 조건을 제어합니다. |
F2FS min hot blocks
90-94| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/min_hot_blocks |
| Date | 2017년 3월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | Data를 hot으로 다시 분류하는 dirty page count 조건을 제어합니다. |
F2FS min ssr sections
95-100| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/min_ssr_sections |
| Date | 2017년 10월 |
| Contact | "Chao Yu" <[email protected]> |
| Description | SSR allocation을 trigger할 free section threshold를 제어합니다. 값을 크게 설정할수록 SSR mode가 더 일찍 enable됩니다. |
F2FS max small discards
101-108| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/max_small_discards |
| Date | 2013년 11월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | 2 MB보다 작은 blocks로 구성된 discard commands의 issue rate를 제어합니다. Discard candidates는 checkpoint 중 cache되고 checkpoint 뒤 `issue_discard` thread가 발행합니다. Default로 enabled입니다. |
F2FS max ordered discard
109-114| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/max_ordered_discard |
| Date | 2022년 10월 |
| Contact | "Yangtao Li" <[email protected]> |
| Description | Ordered discard의 최대 크기를 제어합니다. 단위는 block 하나인 4 KB이고 default는 16입니다. |
F2FS max discard request
115-121| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/max_discard_request |
| Date | 2021년 12월 |
| Contact | "Konstantin Vyshetsky" <[email protected]> |
| Description | Discard thread가 한 번에 발행할 discard 수를 제어합니다. 값을 높이면 discard 작업은 빨리 끝나지만 incoming I/O latency가 커질 수 있습니다. |
F2FS min discard issue time
122-128| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/min_discard_issue_time |
| Date | 2021년 12월 |
| Contact | "Konstantin Vyshetsky" <[email protected]> |
| Description | 발행할 discards가 있고 I/O-aware interruption이 발생하지 않았을 때 discard requests 사이에서 thread가 기다릴 interval을 제어합니다. |
F2FS mid discard issue time
129-135| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/mid_discard_issue_time |
| Date | 2021년 12월 |
| Contact | "Konstantin Vyshetsky" <[email protected]> |
| Description | 발행할 discards가 있고 I/O-aware interruption이 발생했을 때 discard requests 사이에서 thread가 기다릴 interval을 제어합니다. |
F2FS max discard issue time
136-141| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/max_discard_issue_time |
| Date | 2021년 12월 |
| Contact | "Konstantin Vyshetsky" <[email protected]> |
| Description | 발행할 discard operation이 없을 때 discard thread가 기다릴 interval을 제어합니다. |
F2FS discard granularity
142-150| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/discard_granularity |
| Date | 2017년 7월 |
| Contact | "Chao Yu" <[email protected]> |
| Description | 내부 discard thread의 discard granularity를 제어합니다. Thread는 granularity보다 작은 discard를 발행하지 않습니다. 단위는 4 KB block 하나이며 범위는 1부터 512, default는 16입니다. Small devices의 default는 1입니다. |
F2FS umount discard timeout
151-156| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/umount_discard_timeout |
| Date | 2019년 1월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | Unmount 중 discard commands를 발행할 timeout을 설정합니다. Default는 5 seconds입니다. |
F2FS pending discard
157-161| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/pending_discard |
| Date | 2021년 11월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | Queue에 대기 중인 discard commands 수를 표시합니다. |
F2FS max victim search
162-168| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/max_victim_search |
| Date | 2014년 1월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | SSR와 cleaning operations에서 victim segment를 찾기 위한 시도 횟수를 제어합니다. Default 4096은 8 GB block-address range를 포함합니다. |
F2FS migration granularity
169-176| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/migration_granularity |
| Date | 2018년 10월 |
| Contact | "Chao Yu" <[email protected]> |
| Description | Large section에서 garbage collection의 migration granularity를 제어합니다. 한 GC cycle에 section 전체가 아닌 일부 segments만 옮길 수 있게 하여 무거운 GC overhead를 여러 가벼운 cycles로 분산합니다. |
F2FS dir level
177-185| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/dir_level |
| Date | 2014년 3월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | Large directory의 directory level을 제어합니다. Files가 많으면 `dir_level`을 높여 lookup latency를 줄일 수 있고, 그렇지 않으면 값을 낮춰 space overhead를 줄여야 합니다. Default는 0입니다. |
F2FS ram thresh
186-192| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/ram_thresh |
| Date | 2014년 3월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | Free NIDs와 cached NAT entries가 사용하는 memory footprint를 제어합니다. Default 1은 RAM 1 GB당 10 MB를 뜻합니다. |
F2FS cp interval
193-197| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/cp_interval |
| Date | 2015년 10월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | Checkpoint timing을 제어하며 default는 60 seconds입니다. |
F2FS idle interval
198-204| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/idle_interval |
| Date | 2016년 1월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | 주어진 interval 동안 filesystem operation이 없을 때 system을 idle로 판단하는 timing을 제어합니다. Default는 5 seconds입니다. |
F2FS discard idle interval
205-212| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/discard_idle_interval |
| Date | 2018년 9월 |
| Contact | "Chao Yu" <[email protected]>, "Sahitya Tummala" <[email protected]> |
| Description | Discard thread의 idle timing interval을 제어합니다. Default는 5 seconds입니다. |
F2FS gc idle interval
213-218| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/gc_idle_interval |
| Date | 2018년 9월 |
| Contact | "Chao Yu" <[email protected]>, "Sahitya Tummala" <[email protected]> |
| Description | GC path의 idle timing을 제어합니다. Default는 5 seconds입니다. |
F2FS iostat enable
219-223| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/iostat_enable |
| Date | 2017년 8월 |
| Contact | "Chao Yu" <[email protected]> |
| Description | I/O statistics를 enable하거나 disable합니다. |
F2FS ra nid pages
224-230| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/ra_nid_pages |
| Date | 2015년 10월 |
| Contact | "Chao Yu" <[email protected]> |
| Description | Readahead할 NID pages 수를 제어합니다. F2FS는 free NIDs를 만들 때 속도를 높이려고 NAT blocks를 미리 읽습니다. Default는 0입니다. |
F2FS dirty nats ratio
231-237| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/dirty_nats_ratio |
| Date | 2016년 1월 |
| Contact | "Chao Yu" <[email protected]> |
| Description | Dirty NAT entries ratio threshold를 제어합니다. 현재 ratio가 threshold를 넘으면 dirty NAT entries를 flush하기 위해 checkpoint를 trigger합니다. |
F2FS lifetime write kbytes
238-242| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/lifetime_write_kbytes |
| Date | 2016년 1월 |
| Contact | "Shuoran Liu" <[email protected]> |
| Description | Disk에 발행된 전체 write kilobytes를 표시합니다. |
F2FS features
243-252| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/features |
| Date | 2017년 7월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | Deprecated된 current-device feature 목록이며 `/sys/fs/f2fs/<disk>/feature_list/`를 사용해야 합니다. 지원 names는 `encryption`, `blkzoned`, `extra_attr`, `projquota`, `inode_checksum`, `flexible_inline_xattr`, `quota_ino`, `inode_crtime`, `lost_found`, `verity`, `sb_checksum`, `casefold`, `readonly`, `compression`, `pin_file`입니다. |
Legacy feature file에 표시되는 on-disk names입니다.
F2FS feature list
253-263| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/feature_list/ |
| Date | 2021년 6월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | Sysfs 규칙을 충족하도록 `/sys/fs/f2fs/<disk>/features`를 확장한 on-disk feature directory입니다. 지원 names는 `encryption`, `block_zoned`(`blkzoned`), `extra_attr`, `project_quota`(`projquota`), `inode_checksum`, `flexible_inline_xattr`, `quota_ino`, `inode_crtime`, `lost_found`, `verity`, `sb_checksum`, `casefold`, `readonly`, `compression`입니다. `pin_file`은 `/sys/fs/f2fs/features/`로 이동했습니다. |
Sysfs-compliant on-disk feature names와 aliases입니다.
F2FS features
264-274| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/features/ |
| Date | 2017년 7월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | 활성화된 kernel features를 표시합니다. 지원 names는 `encryption`, `block_zoned`, `extra_attr`, `project_quota`, `inode_checksum`, `flexible_inline_xattr`, `quota_ino`, `inode_crtime`, `lost_found`, `verity`, `sb_checksum`, `casefold`, `readonly`, `compression`, `test_dummy_encryption_v2`, `atomic_write`, `pin_file`, `encrypted_casefold`, `linear_lookup`입니다. |
Kernel-level support names입니다.
F2FS inject rate
275-279| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/inject_rate |
| Date | 2016년 5월 |
| Contact | "Sheng Yong" <[email protected]> |
| Description | 임의 fault의 injection rate를 제어합니다. |
F2FS inject type
280-284| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/inject_type |
| Date | 2016년 5월 |
| Contact | "Sheng Yong" <[email protected]> |
| Description | 임의 fault의 injection type을 제어합니다. |
F2FS dirty segments
285-289| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/dirty_segments |
| Date | 2017년 10월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | Dirty segments 수를 표시합니다. |
F2FS reserved blocks
290-295| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/reserved_blocks |
| Date | 2017년 6월 |
| Contact | "Chao Yu" <[email protected]> |
| Description | System의 target reserved blocks를 제어합니다. Threshold는 soft limit이므로 현재 userspace가 사용할 수 있는 공간보다 클 수 있습니다. |
F2FS current reserved blocks
296-304| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/current_reserved_blocks |
| Date | 2017년 10월 |
| Contact | "Yunlong Song" <[email protected]>, "Chao Yu" <[email protected]> |
| Description | System의 current reserved blocks를 표시합니다. 일시적으로 `target_reserved_blocks`보다 작을 수 있지만 user가 나중에 더 많은 free blocks를 만들면 점차 target까지 증가합니다. |
F2FS gc urgent
305-321| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/gc_urgent |
| Date | 2017년 8월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | Background GC의 공격성을 제어하며 default는 0입니다. High mode `1`은 `gc_urgent_sleep_time` 주기마다 GC를 강제로 수행하고 I/O idle 검사를 무시하며 greedy GC와 SSR을 사용합니다. Low mode `2`는 outstanding discard commands와 조금 더 공격적인 GC를 위해 I/O idle 판단 기준을 낮추고 항상 Cost Benefit GC를 사용하며 ATGC가 동시에 enabled여도 age-threshold 방식을 override합니다. Mid mode `3`은 같은 주기로 GC를 강제하되 중간 수준의 I/O idle 검사를 하고 Cost Benefit GC를 사용하며 ATGC를 override합니다. |
I/O-idle handling과 GC algorithm을 비교합니다.
F2FS gc urgent sleep time
322-326| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/gc_urgent_sleep_time |
| Date | 2017년 8월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | GC urgent mode의 sleep time을 제어합니다. Default는 500 ms입니다. |
F2FS readdir ra
327-331| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/readdir_ra |
| Date | 2017년 11월 |
| Contact | "Sheng Yong" <[email protected]> |
| Description | `readdir`에서 inode-block readahead를 제어하며 default로 enabled입니다. |
F2FS gc pin file thresh
332-338| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/gc_pin_file_thresh |
| Date | 2018년 1월 |
| Contact | Jaegeuk Kim <[email protected]> |
| Description | Pinned file에서 허용할 GC failure 횟수를 나타냅니다. 이를 넘으면 F2FS가 pinning state를 보장하지 않습니다. Default는 2048 trials이고 maximum은 65535입니다. |
F2FS extension list
339-348| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/extension_list |
| Date | 2018년 2월 |
| Contact | "Chao Yu" <[email protected]> |
| Description | File extension list를 조회·추가·삭제합니다. 조회는 `cat /sys/fs/f2fs/<disk>/extension_list`, 추가는 `echo '[h/c]extension' > ...`, 삭제는 `echo '[h/c]!extension' > ...` 형식입니다. `[h]`는 hot-file extension, `[c]`는 cold-file extension을 뜻합니다. |
Hot·cold extension query와 mutation syntax입니다.
cat /sys/fs/f2fs/<disk>/extension_list
echo '[h/c]extension' > /sys/fs/f2fs/<disk>/extension_list
echo '[h/c]!extension' > /sys/fs/f2fs/<disk>/extension_list
F2FS unusable
349-356| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/unusable |
| Date | 2019년 4월 |
| Contact | "Daniel Rosenberg" <[email protected]> |
| Description | `checkpoint=disable`이면 실제 unusable blocks 수를 표시합니다. Checkpoint가 enabled이면 이를 disable했을 때 unusable해질 blocks 수를 표시합니다. |
F2FS encoding
357-362| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/encoding |
| Date | 2019년 7월 |
| Contact | "Daniel Rosenberg" <[email protected]> |
| Description | Filesystem에 설정된 encoding의 name과 version을 표시합니다. Encoding이 없으면 `(none)`을 표시합니다. |
F2FS free segments
363-367| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/free_segments |
| Date | 2019년 9월 |
| Contact | "Hridya Valsaraju" <[email protected]> |
| Description | Disk의 free segments 수를 표시합니다. |
F2FS cp foreground calls
368-373| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/cp_foreground_calls |
| Date | 2019년 9월 |
| Contact | "Hridya Valsaraju" <[email protected]> |
| Description | 요청에 따라 수행한 checkpoint operations 수입니다. `CONFIG_F2FS_STAT_FS=y`일 때 사용할 수 있습니다. |
F2FS cp background calls
374-379| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/cp_background_calls |
| Date | 2019년 9월 |
| Contact | "Hridya Valsaraju" <[email protected]> |
| Description | Free segments를 만들기 위해 background에서 수행한 checkpoint operations 수입니다. `CONFIG_F2FS_STAT_FS=y`일 때 사용할 수 있습니다. |
F2FS gc foreground calls
380-385| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/gc_foreground_calls |
| Date | 2019년 9월 |
| Contact | "Hridya Valsaraju" <[email protected]> |
| Description | 요청에 따라 수행한 garbage collection operations 수입니다. `CONFIG_F2FS_STAT_FS=y`일 때 사용할 수 있습니다. |
F2FS gc background calls
386-391| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/gc_background_calls |
| Date | 2019년 9월 |
| Contact | "Hridya Valsaraju" <[email protected]> |
| Description | Background에서 trigger된 garbage collection operations 수입니다. `CONFIG_F2FS_STAT_FS=y`일 때 사용할 수 있습니다. |
F2FS moved blocks foreground
392-397| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/moved_blocks_foreground |
| Date | 2019년 9월 |
| Contact | "Hridya Valsaraju" <[email protected]> |
| Description | Foreground garbage collection이 이동한 blocks 수입니다. `CONFIG_F2FS_STAT_FS=y`일 때 사용할 수 있습니다. |
F2FS moved blocks background
398-403| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/moved_blocks_background |
| Date | 2019년 9월 |
| Contact | "Hridya Valsaraju" <[email protected]> |
| Description | Background garbage collection이 이동한 blocks 수입니다. `CONFIG_F2FS_STAT_FS=y`일 때 사용할 수 있습니다. |
F2FS avg vblocks
404-409| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/avg_vblocks |
| Date | 2019년 9월 |
| Contact | "Hridya Valsaraju" <[email protected]> |
| Description | Average valid-block count를 표시합니다. `CONFIG_F2FS_STAT_FS=y`일 때 사용할 수 있습니다. |
F2FS mounted time sec
410-414| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/mounted_time_sec |
| Date | 2020년 2월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | 이 partition이 mount된 시간을 seconds 단위로 표시합니다. |
F2FS data io flag
415-428| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/data_io_flag |
| Date | 2020년 4월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | Temperature-based bits로 data writes에 `REQ_META` 또는 `REQ_FUA`를 붙입니다. Bits 5·4·3은 각각 Cold·Warm·Hot data의 `REQ_META`, bits 2·1·0은 각각 Cold·Warm·Hot data의 `REQ_FUA`를 제어합니다. |
ASCII bit diagram을 구조화했습니다.
F2FS node io flag
429-442| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/node_io_flag |
| Date | 2020년 6월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | Temperature-based bits로 node writes에 `REQ_META` 또는 `REQ_FUA`를 붙입니다. Bits 5·4·3은 각각 Cold·Warm·Hot node의 `REQ_META`, bits 2·1·0은 각각 Cold·Warm·Hot node의 `REQ_FUA`를 제어합니다. |
Node-write ASCII bit diagram을 구조화했습니다.
F2FS iostat period ms
443-447| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/iostat_period_ms |
| Date | 2020년 4월 |
| Contact | "Daeho Jeong" <[email protected]> |
| Description | I/O statistics period를 변경합니다. Default는 3 seconds이며 새 iostat trace는 이 period에 따른 statistics gap을 제공합니다. |
F2FS max io bytes
448-455| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/max_io_bytes |
| Date | 2020년 12월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | F2FS가 제출하는 bio size를 제한합니다. Default 0은 underlying block-layer limit을 따르고, byte value를 설정하면 그보다 큰 bio를 제출하지 않습니다. |
F2FS sb status
456-479| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/stat/sb_status |
| Date | 2020년 12월 |
| Contact | "Chao Yu" <[email protected]> |
| Description | F2FS superblock status를 실시간 bitmask로 표시합니다. `0x1 SBI_IS_DIRTY`는 checkpoint dirty, `0x2 SBI_IS_CLOSE`는 unmounting, `0x4 SBI_NEED_FSCK`는 `fsck.f2fs` repair 필요, `0x8 SBI_POR_DOING`은 recovery 진행, `0x10 SBI_NEED_SB_WRITE`는 superblock recovery 필요, `0x20 SBI_NEED_CP`는 checkpoint 필요, `0x40 SBI_IS_SHUTDOWN`은 ioctl shutdown, `0x80 SBI_IS_RECOVERED`는 orphan/data recovery를 뜻합니다. `0x100 SBI_CP_DISABLED`와 `0x200 SBI_CP_DISABLED_QUICK`은 이전 mount의 CP disable 상태, `0x400 SBI_QUOTA_NEED_FLUSH`와 `0x800 SBI_QUOTA_SKIP_FLUSH`는 quota flush 정책, `0x1000 SBI_QUOTA_NEED_REPAIR`는 quota corruption 가능성, `0x2000 SBI_IS_RESIZEFS`는 resizefs 진행, `0x4000 SBI_IS_FREEZING`은 freefs 진행을 뜻합니다. |
실시간 `sb_status` bitmask입니다.
F2FS cp status
480-503| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/stat/cp_status |
| Date | 2022년 9월 |
| Contact | "Chao Yu" <[email protected]> |
| Description | F2FS checkpoint status를 실시간 bitmask로 표시합니다. Flags는 `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`입니다. |
실시간 `cp_status` flags와 values입니다.
F2FS issued discard
504-508| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/stat/issued_discard |
| Date | 2023년 12월 |
| Contact | "Zhiguo Niu" <[email protected]> |
| Description | 발행한 discard 수를 표시합니다. |
F2FS queued discard
509-513| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/stat/queued_discard |
| Date | 2023년 12월 |
| Contact | "Zhiguo Niu" <[email protected]> |
| Description | Queue에 넣은 discard 수를 표시합니다. |
F2FS undiscard blks
514-518| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/stat/undiscard_blks |
| Date | 2023년 12월 |
| Contact | "Zhiguo Niu" <[email protected]> |
| Description | 아직 discard하지 않은 blocks의 전체 수를 표시합니다. |
F2FS ckpt thread ioprio
519-527| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/ckpt_thread_ioprio |
| Date | 2021년 1월 |
| Contact | "Daeho Jeong" <[email protected]> |
| Description | Checkpoint merge daemon의 I/O priority를 변경합니다. Default `be,3`은 BE I/O class와 priority 3을 뜻합니다. Class는 `rt` 또는 `be`, priority는 해당 class의 valid range에서 선택하며 class와 number 사이에 comma delimiter가 반드시 필요합니다. |
Class와 priority를 comma로 결합합니다.
F2FS ovp segments
528-532| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/ovp_segments |
| Date | 2021년 3월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | Overprovision segments 수를 표시합니다. |
F2FS compr written block
533-540| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/compr_written_block |
| Date | 2021년 3월 |
| Contact | "Daeho Jeong" <[email protected]> |
| Description | Mount 뒤 compression을 거쳐 write한 block count를 표시합니다. Compressed blocks가 삭제되어도 감소하지 않습니다. `0`을 쓰면 `compr_written_block`과 `compr_saved_block`을 모두 0으로 초기화합니다. |
F2FS compr saved block
541-548| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/compr_saved_block |
| Date | 2021년 3월 |
| Contact | "Daeho Jeong" <[email protected]> |
| Description | Mount 뒤 compression으로 절약한 block count를 표시합니다. Compressed blocks가 삭제되어도 감소하지 않습니다. `0`을 쓰면 `compr_written_block`과 `compr_saved_block`을 모두 0으로 초기화합니다. |
F2FS compr new inode
549-556| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/compr_new_inode |
| Date | 2021년 3월 |
| Contact | "Daeho Jeong" <[email protected]> |
| Description | Mount 뒤 새로 compression이 enabled된 inode 수를 표시합니다. Files에서 compression을 disable해도 감소하지 않습니다. `0`을 쓰면 `compr_new_inode`를 0으로 초기화합니다. |
Mount 이후 누적되며 삭제·disable로 감소하지 않는 counters입니다.
F2FS atgc candidate ratio
557-563| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/atgc_candidate_ratio |
| Date | 2021년 5월 |
| Contact | "Chao Yu" <[email protected]> |
| Description | ATGC가 enabled일 때 전체 candidates 중 potential victims의 총수를 제한하는 candidate ratio입니다. 범위는 0부터 100이고 default는 20%입니다. |
F2FS atgc candidate count
564-570| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/atgc_candidate_count |
| Date | 2021년 5월 |
| Contact | "Chao Yu" <[email protected]> |
| Description | ATGC가 enabled일 때 전체 candidates 중 potential victims의 총수를 제한하는 candidate count입니다. Default는 10 sections입니다. |
F2FS atgc age weight
571-577| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/atgc_age_weight |
| Date | 2021년 5월 |
| Contact | "Chao Yu" <[email protected]> |
| Description | ATGC가 enabled일 때 aging과 valid blocks 사이의 weight 비율을 조정하는 age weight입니다. 범위는 0부터 100이고 default는 60%입니다. |
F2FS atgc age threshold
578-584| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/atgc_age_threshold |
| Date | 2021년 5월 |
| Contact | "Chao Yu" <[email protected]> |
| Description | ATGC가 enabled일 때 threshold를 넘지 않은 young candidates의 GC를 건너뛰는 age threshold입니다. Default는 604800 seconds, 즉 7 days입니다. |
F2FS atgc enabled
585-590| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/atgc_enabled |
| Date | 2024년 2월 |
| Contact | "Jinbao Liu" <[email protected]> |
| Description | ATGC enable 상태를 나타냅니다. `1`은 on, `0`은 off입니다. |
Candidate limiting과 age weighting parameters입니다.
F2FS gc reclaimed segments
591-598| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/gc_reclaimed_segments |
| Date | 2021년 7월 |
| Contact | "Daeho Jeong" <[email protected]> |
| Description | 선택한 GC mode에서 reclaim한 segments 수를 표시합니다. Modes는 `0` normal, `1` idle Cost Benefit, `2` idle greedy, `3` idle age-threshold, `4` urgent high, `5` urgent low, `6` urgent mid입니다. `0`으로 다시 초기화할 수 있습니다. |
Counter가 선택할 수 있는 GC mode IDs입니다.
F2FS gc segment mode
599-604| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/gc_segment_mode |
| Date | 2021년 7월 |
| Contact | "Daeho Jeong" <[email protected]> |
| Description | `gc_reclaimed_segments`가 어느 GC mode의 값을 표시할지 선택합니다. Mode 정의는 `gc_reclaimed_segments` 설명을 따릅니다. |
F2FS seq file ra mul
605-610| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/seq_file_ra_mul |
| Date | 2021년 7월 |
| Contact | "Daeho Jeong" <[email protected]> |
| Description | `POSIX_FADV_SEQUENTIAL` advise에 사용할 BDI device readahead window-size multiplier를 2부터 256 사이로 제어합니다. Default는 2입니다. |
F2FS max fragment chunk
611-618| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/max_fragment_chunk |
| Date | 2021년 8월 |
| Contact | "Daeho Jeong" <[email protected]> |
| Description | `mode=fragment:block` mount option에서 block allocation을 흩뜨리기 위한 chunk 크기입니다. F2FS는 `1..<max_fragment_chunk>` blocks를 할당한 뒤 `1..<max_fragment_hole>` 길이의 hole을 번갈아 만듭니다. 범위는 1부터 512이고 default는 4입니다. |
F2FS max fragment hole
619-626| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/max_fragment_hole |
| Date | 2021년 8월 |
| Contact | "Daeho Jeong" <[email protected]> |
| Description | `mode=fragment:block` mount option에서 block allocation 사이에 만들 hole의 최대 길이입니다. F2FS는 chunk allocation과 `1..<max_fragment_hole>` hole을 번갈아 만듭니다. 범위는 1부터 512이고 default는 4입니다. |
`mode=fragment:block`에서 chunk와 hole을 번갈아 만듭니다.
F2FS gc remaining trials
627-633| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/gc_remaining_trials |
| Date | 2022년 10월 |
| Contact | "Yangtao Li" <[email protected]> |
| Description | GC urgent·idle mode의 trial-count limit를 설정합니다. GC thread가 limit에 도달하면 normal mode로 돌아갑니다. Default 0은 제한이 없음을 뜻합니다. |
F2FS max roll forward node blocks
634-639| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/max_roll_forward_node_blocks |
| Date | 2022년 1월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | Roll-forward recovery에 사용할 node-block writes의 maximum을 제어하여 recovery time을 제한합니다. |
F2FS unusable blocks per sec
640-645| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/unusable_blocks_per_sec |
| Date | 2022년 6월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | Underlying zoned device가 보고한 zone capacity로 정의되는 section당 unusable blocks 수를 표시합니다. |
F2FS current atomic write
646-651| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/current_atomic_write |
| Date | 2022년 7월 |
| Contact | "Daeho Jeong" <[email protected]> |
| Description | 아직 commit되지 않은 current atomic-write blocks의 전체 수를 표시하는 read-only entry입니다. |
F2FS peak atomic write
652-657| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/peak_atomic_write |
| Date | 2022년 7월 |
| Contact | "Daeho Jeong" <[email protected]> |
| Description | Boot 뒤 current atomic-write block count가 기록한 peak를 표시합니다. `0`을 쓰면 0으로 초기화합니다. |
F2FS committed atomic block
658-663| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/committed_atomic_block |
| Date | 2022년 7월 |
| Contact | "Daeho Jeong" <[email protected]> |
| Description | Boot 뒤 commit된 atomic-write blocks의 누적 전체 수를 표시합니다. `0`을 쓰면 0으로 초기화합니다. |
F2FS revoked atomic block
664-669| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/revoked_atomic_block |
| Date | 2022년 7월 |
| Contact | "Daeho Jeong" <[email protected]> |
| Description | Boot 뒤 revoke된 atomic-write blocks의 누적 전체 수를 표시합니다. `0`을 쓰면 0으로 초기화합니다. |
Current, peak, committed와 revoked block counts입니다.
F2FS gc mode
670-675| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/gc_mode |
| Date | 2022년 10월 |
| Contact | "Yangtao Li" <[email protected]> |
| Description | Current `gc_mode`를 string으로 표시하는 read-only entry입니다. |
F2FS discard urgent util
676-683| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/discard_urgent_util |
| Date | 2022년 11월 |
| Contact | "Yangtao Li" <[email protected]> |
| Description | Space utilization이 이 threshold를 넘으면 background DISCARD를 공격적으로 수행합니다. Pending discards가 0이 아니면 `min_discard_issue_time` 주기로 DISCARD를 강제하고 granularity를 1로 설정합니다. Default는 80입니다. |
F2FS hot data age threshold
684-690| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/hot_data_age_threshold |
| Date | 2022년 11월 |
| Contact | "Ping Xiong" <[email protected]> |
| Description | DATA SEPARATION이 enabled일 때 data blocks를 hot으로 표시할 age threshold입니다. Default는 262144 blocks, 즉 1 GB입니다. |
F2FS warm data age threshold
691-697| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/warm_data_age_threshold |
| Date | 2022년 11월 |
| Contact | "Ping Xiong" <[email protected]> |
| Description | DATA SEPARATION이 enabled일 때 data blocks를 warm으로 표시할 age threshold입니다. Default는 2621440 blocks, 즉 10 GB입니다. |
F2FS fault rate
698-704| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/fault_rate |
| Date | 2016년 5월 |
| Contact | "Sheng Yong" <[email protected]>, "Chao Yu" <[email protected]> |
| Description | 지정한 injection rate로 지원하는 모든 fault types의 fault injection을 enable합니다. |
F2FS fault type
705-741| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/fault_type |
| Date | 2016년 5월 |
| Contact | "Sheng Yong" <[email protected]>, "Chao Yu" <[email protected]> |
| Description | `fault_injection` option과 함께 사용할 fault-injection type bitmask를 설정합니다. 단일 type 또는 여러 types의 OR 조합을 지원합니다. Type values는 `FAULT_KMALLOC 0x00000001`, `FAULT_KVMALLOC 0x00000002`, `FAULT_PAGE_ALLOC 0x00000004`, `FAULT_PAGE_GET 0x00000008`, obsolete `FAULT_ALLOC_BIO 0x00000010`, `FAULT_ALLOC_NID 0x00000020`, `FAULT_ORPHAN 0x00000040`, `FAULT_BLOCK 0x00000080`, `FAULT_DIR_DEPTH 0x00000100`, `FAULT_EVICT_INODE 0x00000200`, `FAULT_TRUNCATE 0x00000400`, `FAULT_READ_IO 0x00000800`, `FAULT_CHECKPOINT 0x00001000`, `FAULT_DISCARD 0x00002000`, `FAULT_WRITE_IO 0x00004000`, `FAULT_SLAB_ALLOC 0x00008000`, `FAULT_DQUOT_INIT 0x00010000`, `FAULT_LOCK_OP 0x00020000`, `FAULT_BLKADDR_VALIDITY 0x00040000`, `FAULT_BLKADDR_CONSISTENCE 0x00080000`, `FAULT_NO_SEGMENT 0x00100000`, `FAULT_INCONSISTENT_FOOTER 0x00200000`, `FAULT_TIMEOUT 0x00400000`(1000 ms), `FAULT_VMALLOC 0x00800000`입니다. |
단일 또는 OR-combined fault injection bitmask입니다.
F2FS discard io aware gran
742-750| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/discard_io_aware_gran |
| Date | 2023년 1월 |
| Contact | "Yangtao Li" <[email protected]> |
| Description | Idle 상태가 아닐 때 내부 discard thread의 background discard granularity를 제어합니다. Thread는 이보다 작은 discard를 발행하지 않습니다. 단위는 4 KB block이고 범위는 0부터 512, default는 512입니다. |
F2FS last age weight
751-755| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/last_age_weight |
| Date | 2023년 1월 |
| Contact | "Ping Xiong" <[email protected]> |
| Description | DATA SEPARATION이 enabled일 때 마지막 data block age의 weight를 제어합니다. |
F2FS compress watermark
756-763| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/compress_watermark |
| Date | 2023년 2월 |
| Contact | "Yangtao Li" <[email protected]> |
| Description | Compression cache가 enabled일 때 compressed-page caching을 제한하는 free-memory watermark입니다. Free memory가 watermark보다 낮으면 compressed page를 cache하지 않습니다. 범위는 0 초과 100 이하이고 default는 20%입니다. |
F2FS compress percent
764-772| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/compress_percent |
| Date | 2023년 2월 |
| Contact | "Yangtao Li" <[email protected]> |
| Description | Compression cache가 enabled일 때 `compressed pages / free RAM` 비율을 제한합니다. Cached-page percentage가 threshold를 넘으면 compressed page caching을 거부합니다. 범위는 0 초과 100 이하이고 default는 20%입니다. |
Memory watermark와 cache percentage를 함께 적용합니다.
F2FS discard io aware
773-778| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/discard_io_aware |
| Date | 2023년 11월 |
| Contact | "Chao Yu" <[email protected]> |
| Description | Background discard의 I/O-aware feature를 enable하거나 disable합니다. Default 1은 I/O-aware가 on임을 뜻합니다. |
F2FS blkzone alloc policy
779-792| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/blkzone_alloc_policy |
| Date | 2024년 7월 |
| Contact | "Yuanhong Liao" <[email protected]> |
| Description | Conventional zones와 sequential zones로 구성된 zoned UFS에서 write allocation 우선순위를 정합니다. Default `0`은 sequential zones 우선, `1`은 sequential zones에만 write 허용, `2`는 conventional zones 우선입니다. |
Sequential·conventional zone write priority입니다.
F2FS migration window granularity
793-800| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/migration_window_granularity |
| Date | 2024년 9월 |
| Contact | "Daeho Jeong" <[email protected]> |
| Description | Large section GC의 migration scanning-window granularity를 segments 단위로 제어합니다. `migration_granularity`가 한 번에 옮길 segment 수를 제어하는 것과 달리 이 값은 scan window 크기를 정합니다. |
F2FS reserved segments
801-806| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/reserved_segments |
| Date | 2024년 9월 |
| Contact | "Daeho Jeong" <[email protected]> |
| Description | GC behavior를 세밀하게 조정하기 위한 reserved segments 수를 제어합니다. |
F2FS gc no zoned gc percent
807-813| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/gc_no_zoned_gc_percent |
| Date | 2024년 9월 |
| Contact | "Daeho Jeong" <[email protected]> |
| Description | 전체 sections 중 free sections 비율이 이 값보다 높으면 background GC thread가 zoned devices에 GC를 수행하지 않습니다. Default는 60입니다. |
F2FS gc boost zoned gc percent
814-820| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/gc_boost_zoned_gc_percent |
| Date | 2024년 9월 |
| Contact | "Daeho Jeong" <[email protected]> |
| Description | 전체 sections 중 free sections 비율이 이 값보다 낮으면 background GC thread가 zoned-device GC를 boost합니다. Default는 25입니다. |
F2FS gc valid thresh ratio
821-828| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/gc_valid_thresh_ratio |
| Date | 2024년 9월 |
| Contact | "Daeho Jeong" <[email protected]> |
| Description | Zoned devices에서 excessive GC를 막기 위한 valid-block ratio threshold입니다. Initial value는 95%이며 section의 valid-block ratio가 이를 넘으면 background GC thread가 그 section에 GC를 시작하지 않습니다. |
Free-section과 valid-block ratios에 따른 background behavior입니다.
F2FS max read extent count
829-834| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/max_read_extent_count |
| Date | 2024년 11월 |
| Contact | "Chao Yu" <[email protected]> |
| Description | Inode당 maximum read-extent count를 제어합니다. Default threshold는 10240입니다. |
F2FS reclaim caches kb
835-841| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/tuning/reclaim_caches_kb |
| Date | 2025년 2월 |
| Contact | "Jaegeuk Kim" <[email protected]> |
| Description | `ioctl(F2FS_IOC_DONATE_RANGE)`로 등록한 file-backed pages를 지정한 KB만큼 reclaim합니다. `N`을 쓰면 LRU에서 N KB 공간을 drop하려고 합니다. |
F2FS carve out
842-851| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/carve_out |
| Date | 2025년 3월 |
| Contact | "Daeho Jeong" <[email protected]> |
| Description | 일부 zoned storage vendors가 specification보다 추가로 제공하는 device-level GC 공간을 F2FS filesystem-level GC에 사용하면서 userspace에는 숨깁니다. `reserved_blocks`로 공간을 reserve한 뒤 이 node가 total bytes에서 `reserved_blocks`를 빼 표시합니다. |
F2FS encoding flags
852-864| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/encoding_flags |
| Date | 2025년 4월 |
| Contact | "Chao Yu" <[email protected]> |
| Description | `sb.s_encoding_flags` 값을 hexadecimal로 표시하는 read-only entry입니다. `SB_ENC_STRICT_MODE_FL`은 `0x00000001`, `SB_ENC_NO_COMPAT_FALLBACK_FL`은 `0x00000002`입니다. |
Hexadecimal `sb.s_encoding_flags` values입니다.
F2FS reserved pin section
865-873| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/reserved_pin_section |
| Date | 2025년 6월 |
| Contact | "Chao Yu" <[email protected]> |
| Description | Pinned file에 `fallocate`할 때 GC trigger를 제어하는 threshold로, preallocation 전에 충분한 free reserved sections를 보장합니다. Default는 `ovp_sections`이며 zoned UFS에서는 특히 1입니다. |
F2FS gc boost gc multiple
874-880| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/gc_boost_gc_multiple |
| Date | 2025년 6월 |
| Contact | "Daeho Jeong" <[email protected]> |
| Description | F2FS GC가 boosted일 때 background-GC migration window에 적용할 multiplier입니다. 범위는 1부터 section 안의 segment count까지이고 default는 5입니다. |
F2FS gc boost gc greedy
881-886| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/gc_boost_gc_greedy |
| Date | 2025년 6월 |
| Contact | "Daeho Jeong" <[email protected]> |
| Description | Boost GC algorithm을 제어합니다. `0`은 Cost Benefit, `1`은 greedy이며 default는 1입니다. |
Migration window multiplier와 algorithm입니다.
F2FS effective lookup mode
887-901| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/effective_lookup_mode |
| Date | 2025년 8월 |
| Contact | "Daniel Lee" <[email protected]> |
| Description | Casefolded directories에 F2FS가 현재 사용하는 effective lookup mode를 표시하는 read-only entry입니다. `lookup_mode` mount option과 on-disk `SB_ENC_NO_COMPAT_FALLBACK_FL`을 함께 고려합니다. `perf`는 hash-only, `compat`는 hash lookup 뒤 linear fallback, `auto:perf`는 auto이면서 on-disk fallback disabled, `auto:compat`는 auto이면서 fallback enabled입니다. |
Mount option과 on-disk fallback flag의 effective 결과입니다.
F2FS bggc io aware
902-914| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/bggc_io_aware |
| Date | 2025년 8월 |
| Contact | "Liao Yuanhong" <[email protected]> |
| Description | Pending I/O가 있을 때 BG_GC priority를 조정합니다. General default는 0이고 ZUFS default는 1입니다. `0`은 어떤 pending I/O든 있으면 background GC를 skip하고, `1`은 pending read I/O가 있을 때 skip하며, `2`는 background GC가 I/O를 고려하지 않습니다. |
Pending I/O 종류에 따른 BG_GC skip policy입니다.
F2FS allocate section hint
915-922| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/allocate_section_hint |
| Date | 2025년 8월 |
| Contact | "Liao Yuanhong" <[email protected]> |
| Description | Multi-device setup에서 첫 device와 나머지를 가르는 hint section을 나타냅니다. Default는 section 단위로 첫 device의 끝이며 single device에서는 전체 section 수입니다. 여러 devices가 같은 device-mapper device에 mapping된 경우에 맞게 수동 설정할 수 있습니다. |
F2FS allocate section policy
923-935| 항목 | 한국어 전문 번역 |
|---|---|
| What | /sys/fs/f2fs/<disk>/allocate_section_policy |
| Date | 2025년 8월 |
| Contact | "Liao Yuanhong" <[email protected]> |
| Description | Multi-device setup의 write priority를 제어합니다. Default `0`은 normal write, `1`은 `allocate_section_hint` 앞의 devices를 우선하고, `2`는 hint 뒤의 devices를 우선합니다. |
`allocate_section_hint`를 기준으로 write priority를 정합니다.
Garbage collection and discard
sysfs-fs-f2fs:1-242GC sleep·victim·migration policies와 IPU, discard granularity·batch·timing, checkpoint·NAT memory tuning을 다룹니다.