1 What: /sys/fs/f2fs/<disk>/gc_max_sleep_time
3 Contact: "Namjae Jeon" <namjae.jeon@samsung.com>
4 Description: Controls the maximum sleep time for gc_thread. Time
7 What: /sys/fs/f2fs/<disk>/gc_min_sleep_time
9 Contact: "Namjae Jeon" <namjae.jeon@samsung.com>
10 Description: Controls the minimum sleep time for gc_thread. Time
13 What: /sys/fs/f2fs/<disk>/gc_no_gc_sleep_time
15 Contact: "Namjae Jeon" <namjae.jeon@samsung.com>
16 Description: Controls the default sleep time for gc_thread. Time
19 What: /sys/fs/f2fs/<disk>/gc_idle
21 Contact: "Namjae Jeon" <namjae.jeon@samsung.com>
22 Description: Controls the victim selection policy for garbage collection.
23 Setting gc_idle = 0(default) will disable this option. Setting:
25 =========== ===============================================
26 gc_idle = 1 will select the Cost Benefit approach & setting
27 gc_idle = 2 will select the greedy approach & setting
28 gc_idle = 3 will select the age-threshold based approach.
29 =========== ===============================================
31 What: /sys/fs/f2fs/<disk>/reclaim_segments
33 Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>
34 Description: This parameter controls the number of prefree segments to be
35 reclaimed. If the number of prefree segments is larger than
36 the number of segments in the proportion to the percentage
37 over total volume size, f2fs tries to conduct checkpoint to
38 reclaim the prefree segments to free segments.
39 By default, 5% over total # of segments.
41 What: /sys/fs/f2fs/<disk>/main_blkaddr
43 Contact: "Ramon Pantin" <pantin@google.com>
44 Description: Shows first block address of MAIN area.
46 What: /sys/fs/f2fs/<disk>/ipu_policy
48 Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>
49 Description: Controls the in-place-update policy.
50 updates in f2fs. User can set:
52 ===== =============== ===================================================
53 value policy description
54 0x00 DISABLE disable IPU(=default option in LFS mode)
55 0x01 FORCE all the time
56 0x02 SSR if SSR mode is activated
57 0x04 UTIL if FS utilization is over threshold
58 0x08 SSR_UTIL if SSR mode is activated and FS utilization is over
60 0x10 FSYNC activated in fsync path only for high performance
61 flash storages. IPU will be triggered only if the
62 # of dirty pages over min_fsync_blocks.
64 0x20 ASYNC do IPU given by asynchronous write requests
65 0x40 NOCACHE disable IPU bio cache
66 0x80 HONOR_OPU_WRITE use OPU write prior to IPU write if inode has
68 ===== =============== ===================================================
70 Refer segment.h for details.
72 What: /sys/fs/f2fs/<disk>/min_ipu_util
74 Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>
75 Description: Controls the FS utilization condition for the in-place-update
76 policies. It is used by F2FS_IPU_UTIL and F2FS_IPU_SSR_UTIL policies.
78 What: /sys/fs/f2fs/<disk>/min_fsync_blocks
80 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
81 Description: Controls the dirty page count condition for the in-place-update
84 What: /sys/fs/f2fs/<disk>/min_seq_blocks
86 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
87 Description: Controls the dirty page count condition for batched sequential
90 What: /sys/fs/f2fs/<disk>/min_hot_blocks
92 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
93 Description: Controls the dirty page count condition for redefining hot data.
95 What: /sys/fs/f2fs/<disk>/min_ssr_sections
97 Contact: "Chao Yu" <yuchao0@huawei.com>
98 Description: Controls the free section threshold to trigger SSR allocation.
99 If this is large, SSR mode will be enabled early.
101 What: /sys/fs/f2fs/<disk>/max_small_discards
103 Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>
104 Description: Controls the issue rate of discard commands that consist of small
105 blocks less than 2MB. The candidates to be discarded are cached during
106 checkpoint, and issued by issue_discard thread after checkpoint.
107 It is enabled by default.
109 What: /sys/fs/f2fs/<disk>/max_ordered_discard
111 Contact: "Yangtao Li" <frank.li@vivo.com>
112 Description: Controls the maximum ordered discard, the unit size is one block(4KB).
113 Set it to 16 by default.
115 What: /sys/fs/f2fs/<disk>/max_discard_request
117 Contact: "Konstantin Vyshetsky" <vkon@google.com>
118 Description: Controls the number of discards a thread will issue at a time.
119 Higher number will allow the discard thread to finish its work
120 faster, at the cost of higher latency for incoming I/O.
122 What: /sys/fs/f2fs/<disk>/min_discard_issue_time
124 Contact: "Konstantin Vyshetsky" <vkon@google.com>
125 Description: Controls the interval the discard thread will wait between
126 issuing discard requests when there are discards to be issued and
127 no I/O aware interruptions occur.
129 What: /sys/fs/f2fs/<disk>/mid_discard_issue_time
131 Contact: "Konstantin Vyshetsky" <vkon@google.com>
132 Description: Controls the interval the discard thread will wait between
133 issuing discard requests when there are discards to be issued and
134 an I/O aware interruption occurs.
136 What: /sys/fs/f2fs/<disk>/max_discard_issue_time
138 Contact: "Konstantin Vyshetsky" <vkon@google.com>
139 Description: Controls the interval the discard thread will wait when there are
140 no discard operations to be issued.
142 What: /sys/fs/f2fs/<disk>/discard_granularity
144 Contact: "Chao Yu" <yuchao0@huawei.com>
145 Description: Controls discard granularity of inner discard thread. Inner thread
146 will not issue discards with size that is smaller than granularity.
147 The unit size is one block(4KB), now only support configuring
148 in range of [1, 512]. Default value is 16.
149 For small devices, default value is 1.
151 What: /sys/fs/f2fs/<disk>/umount_discard_timeout
153 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
154 Description: Set timeout to issue discard commands during umount.
157 What: /sys/fs/f2fs/<disk>/pending_discard
159 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
160 Description: Shows the number of pending discard commands in the queue.
162 What: /sys/fs/f2fs/<disk>/max_victim_search
164 Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>
165 Description: Controls the number of trials to find a victim segment
166 when conducting SSR and cleaning operations. The default value
167 is 4096 which covers 8GB block address range.
169 What: /sys/fs/f2fs/<disk>/migration_granularity
171 Contact: "Chao Yu" <yuchao0@huawei.com>
172 Description: Controls migration granularity of garbage collection on large
173 section, it can let GC move partial segment{s} of one section
174 in one GC cycle, so that dispersing heavy overhead GC to
175 multiple lightweight one.
177 What: /sys/fs/f2fs/<disk>/dir_level
179 Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>
180 Description: Controls the directory level for large directory. If a
181 directory has a number of files, it can reduce the file lookup
182 latency by increasing this dir_level value. Otherwise, it
183 needs to decrease this value to reduce the space overhead.
184 The default value is 0.
186 What: /sys/fs/f2fs/<disk>/ram_thresh
188 Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>
189 Description: Controls the memory footprint used by free nids and cached
190 nat entries. By default, 1 is set, which indicates
193 What: /sys/fs/f2fs/<disk>/cp_interval
195 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
196 Description: Controls the checkpoint timing, set to 60 seconds by default.
198 What: /sys/fs/f2fs/<disk>/idle_interval
200 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
201 Description: Controls the idle timing of system, if there is no FS operation
202 during given interval.
203 Set to 5 seconds by default.
205 What: /sys/fs/f2fs/<disk>/discard_idle_interval
207 Contact: "Chao Yu" <yuchao0@huawei.com>
208 Contact: "Sahitya Tummala" <quic_stummala@quicinc.com>
209 Description: Controls the idle timing of discard thread given
213 What: /sys/fs/f2fs/<disk>/gc_idle_interval
215 Contact: "Chao Yu" <yuchao0@huawei.com>
216 Contact: "Sahitya Tummala" <quic_stummala@quicinc.com>
217 Description: Controls the idle timing for gc path. Set to 5 seconds by default.
219 What: /sys/fs/f2fs/<disk>/iostat_enable
221 Contact: "Chao Yu" <yuchao0@huawei.com>
222 Description: Controls to enable/disable IO stat.
224 What: /sys/fs/f2fs/<disk>/ra_nid_pages
226 Contact: "Chao Yu" <chao2.yu@samsung.com>
227 Description: Controls the count of nid pages to be readaheaded.
228 When building free nids, F2FS reads NAT blocks ahead for
229 speed up. Default is 0.
231 What: /sys/fs/f2fs/<disk>/dirty_nats_ratio
233 Contact: "Chao Yu" <chao2.yu@samsung.com>
234 Description: Controls dirty nat entries ratio threshold, if current
235 ratio exceeds configured threshold, checkpoint will
236 be triggered for flushing dirty nat entries.
238 What: /sys/fs/f2fs/<disk>/lifetime_write_kbytes
240 Contact: "Shuoran Liu" <liushuoran@huawei.com>
241 Description: Shows total written kbytes issued to disk.
243 What: /sys/fs/f2fs/<disk>/features
245 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
246 Description: <deprecated: should use /sys/fs/f2fs/<disk>/feature_list/>
247 Shows all enabled features in current device.
249 encryption, blkzoned, extra_attr, projquota, inode_checksum,
250 flexible_inline_xattr, quota_ino, inode_crtime, lost_found,
251 verity, sb_checksum, casefold, readonly, compression, pin_file.
253 What: /sys/fs/f2fs/<disk>/feature_list/
255 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
256 Description: Expand /sys/fs/f2fs/<disk>/features to meet sysfs rule.
257 Supported on-disk features:
258 encryption, block_zoned (aka blkzoned), extra_attr,
259 project_quota (aka projquota), inode_checksum,
260 flexible_inline_xattr, quota_ino, inode_crtime, lost_found,
261 verity, sb_checksum, casefold, readonly, compression.
262 Note that, pin_file is moved into /sys/fs/f2fs/features/.
264 What: /sys/fs/f2fs/features/
266 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
267 Description: Shows all enabled kernel features.
269 encryption, block_zoned, extra_attr, project_quota,
270 inode_checksum, flexible_inline_xattr, quota_ino,
271 inode_crtime, lost_found, verity, sb_checksum,
272 casefold, readonly, compression, test_dummy_encryption_v2,
273 atomic_write, pin_file, encrypted_casefold.
275 What: /sys/fs/f2fs/<disk>/inject_rate
277 Contact: "Sheng Yong" <shengyong1@huawei.com>
278 Description: Controls the injection rate of arbitrary faults.
280 What: /sys/fs/f2fs/<disk>/inject_type
282 Contact: "Sheng Yong" <shengyong1@huawei.com>
283 Description: Controls the injection type of arbitrary faults.
285 What: /sys/fs/f2fs/<disk>/dirty_segments
287 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
288 Description: Shows the number of dirty segments.
290 What: /sys/fs/f2fs/<disk>/reserved_blocks
292 Contact: "Chao Yu" <yuchao0@huawei.com>
293 Description: Controls target reserved blocks in system, the threshold
294 is soft, it could exceed current available user space.
296 What: /sys/fs/f2fs/<disk>/current_reserved_blocks
298 Contact: "Yunlong Song" <yunlong.song@huawei.com>
299 Contact: "Chao Yu" <yuchao0@huawei.com>
300 Description: Shows current reserved blocks in system, it may be temporarily
301 smaller than target_reserved_blocks, but will gradually
302 increase to target_reserved_blocks when more free blocks are
305 What: /sys/fs/f2fs/<disk>/gc_urgent
307 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
308 Description: Do background GC aggressively when set. Set to 0 by default.
309 gc urgent high(1): does GC forcibly in a period of given
310 gc_urgent_sleep_time and ignores I/O idling check. uses greedy
311 GC approach and turns SSR mode on.
312 gc urgent low(2): lowers the bar of checking I/O idling in
313 order to process outstanding discard commands and GC a
314 little bit aggressively. always uses cost benefit GC approach,
315 and will override age-threshold GC approach if ATGC is enabled
317 gc urgent mid(3): does GC forcibly in a period of given
318 gc_urgent_sleep_time and executes a mid level of I/O idling check.
319 always uses cost benefit GC approach, and will override
320 age-threshold GC approach if ATGC is enabled at the same time.
322 What: /sys/fs/f2fs/<disk>/gc_urgent_sleep_time
324 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
325 Description: Controls sleep time of GC urgent mode. Set to 500ms by default.
327 What: /sys/fs/f2fs/<disk>/readdir_ra
329 Contact: "Sheng Yong" <shengyong1@huawei.com>
330 Description: Controls readahead inode block in readdir. Enabled by default.
332 What: /sys/fs/f2fs/<disk>/gc_pin_file_thresh
334 Contact: Jaegeuk Kim <jaegeuk@kernel.org>
335 Description: This indicates how many GC can be failed for the pinned
336 file. If it exceeds this, F2FS doesn't guarantee its pinning
337 state. 2048 trials is set by default, and 65535 as maximum.
339 What: /sys/fs/f2fs/<disk>/extension_list
341 Contact: "Chao Yu" <yuchao0@huawei.com>
342 Description: Used to control configure extension list:
343 - Query: cat /sys/fs/f2fs/<disk>/extension_list
344 - Add: echo '[h/c]extension' > /sys/fs/f2fs/<disk>/extension_list
345 - Del: echo '[h/c]!extension' > /sys/fs/f2fs/<disk>/extension_list
346 - [h] means add/del hot file extension
347 - [c] means add/del cold file extension
349 What: /sys/fs/f2fs/<disk>/unusable
351 Contact: "Daniel Rosenberg" <drosen@google.com>
352 Description: If checkpoint=disable, it displays the number of blocks that
354 If checkpoint=enable it displays the number of blocks that
355 would be unusable if checkpoint=disable were to be set.
357 What: /sys/fs/f2fs/<disk>/encoding
359 Contact: "Daniel Rosenberg" <drosen@google.com>
360 Description: Displays name and version of the encoding set for the filesystem.
361 If no encoding is set, displays (none)
363 What: /sys/fs/f2fs/<disk>/free_segments
365 Contact: "Hridya Valsaraju" <hridya@google.com>
366 Description: Number of free segments in disk.
368 What: /sys/fs/f2fs/<disk>/cp_foreground_calls
370 Contact: "Hridya Valsaraju" <hridya@google.com>
371 Description: Number of checkpoint operations performed on demand. Available when
372 CONFIG_F2FS_STAT_FS=y.
374 What: /sys/fs/f2fs/<disk>/cp_background_calls
376 Contact: "Hridya Valsaraju" <hridya@google.com>
377 Description: Number of checkpoint operations performed in the background to
378 free segments. Available when CONFIG_F2FS_STAT_FS=y.
380 What: /sys/fs/f2fs/<disk>/gc_foreground_calls
382 Contact: "Hridya Valsaraju" <hridya@google.com>
383 Description: Number of garbage collection operations performed on demand.
384 Available when CONFIG_F2FS_STAT_FS=y.
386 What: /sys/fs/f2fs/<disk>/gc_background_calls
388 Contact: "Hridya Valsaraju" <hridya@google.com>
389 Description: Number of garbage collection operations triggered in background.
390 Available when CONFIG_F2FS_STAT_FS=y.
392 What: /sys/fs/f2fs/<disk>/moved_blocks_foreground
394 Contact: "Hridya Valsaraju" <hridya@google.com>
395 Description: Number of blocks moved by garbage collection in foreground.
396 Available when CONFIG_F2FS_STAT_FS=y.
398 What: /sys/fs/f2fs/<disk>/moved_blocks_background
400 Contact: "Hridya Valsaraju" <hridya@google.com>
401 Description: Number of blocks moved by garbage collection in background.
402 Available when CONFIG_F2FS_STAT_FS=y.
404 What: /sys/fs/f2fs/<disk>/avg_vblocks
406 Contact: "Hridya Valsaraju" <hridya@google.com>
407 Description: Average number of valid blocks.
408 Available when CONFIG_F2FS_STAT_FS=y.
410 What: /sys/fs/f2fs/<disk>/mounted_time_sec
412 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
413 Description: Show the mounted time in secs of this partition.
415 What: /sys/fs/f2fs/<disk>/data_io_flag
417 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
418 Description: Give a way to attach REQ_META|FUA to data writes
419 given temperature-based bits. Now the bits indicate:
421 +-------------------+-------------------+
422 | REQ_META | REQ_FUA |
423 +------+------+-----+------+------+-----+
424 | 5 | 4 | 3 | 2 | 1 | 0 |
425 +------+------+-----+------+------+-----+
426 | Cold | Warm | Hot | Cold | Warm | Hot |
427 +------+------+-----+------+------+-----+
429 What: /sys/fs/f2fs/<disk>/node_io_flag
431 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
432 Description: Give a way to attach REQ_META|FUA to node writes
433 given temperature-based bits. Now the bits indicate:
435 +-------------------+-------------------+
436 | REQ_META | REQ_FUA |
437 +------+------+-----+------+------+-----+
438 | 5 | 4 | 3 | 2 | 1 | 0 |
439 +------+------+-----+------+------+-----+
440 | Cold | Warm | Hot | Cold | Warm | Hot |
441 +------+------+-----+------+------+-----+
443 What: /sys/fs/f2fs/<disk>/iostat_period_ms
445 Contact: "Daeho Jeong" <daehojeong@google.com>
446 Description: Give a way to change iostat_period time. 3secs by default.
447 The new iostat trace gives stats gap given the period.
448 What: /sys/fs/f2fs/<disk>/max_io_bytes
450 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
451 Description: This gives a control to limit the bio size in f2fs.
452 Default is zero, which will follow underlying block layer limit,
453 whereas, if it has a certain bytes value, f2fs won't submit a
454 bio larger than that size.
456 What: /sys/fs/f2fs/<disk>/stat/sb_status
458 Contact: "Chao Yu" <yuchao0@huawei.com>
459 Description: Show status of f2fs superblock in real time.
461 ====== ===================== =================================
462 value sb status macro description
463 0x1 SBI_IS_DIRTY dirty flag for checkpoint
464 0x2 SBI_IS_CLOSE specify unmounting
465 0x4 SBI_NEED_FSCK need fsck.f2fs to fix
466 0x8 SBI_POR_DOING recovery is doing or not
467 0x10 SBI_NEED_SB_WRITE need to recover superblock
468 0x20 SBI_NEED_CP need to checkpoint
469 0x40 SBI_IS_SHUTDOWN shutdown by ioctl
470 0x80 SBI_IS_RECOVERED recovered orphan/data
471 0x100 SBI_CP_DISABLED CP was disabled last mount
472 0x200 SBI_CP_DISABLED_QUICK CP was disabled quickly
473 0x400 SBI_QUOTA_NEED_FLUSH need to flush quota info in CP
474 0x800 SBI_QUOTA_SKIP_FLUSH skip flushing quota in current CP
475 0x1000 SBI_QUOTA_NEED_REPAIR quota file may be corrupted
476 0x2000 SBI_IS_RESIZEFS resizefs is in process
477 0x4000 SBI_IS_FREEZING freefs is in process
478 ====== ===================== =================================
480 What: /sys/fs/f2fs/<disk>/stat/cp_status
482 Contact: "Chao Yu" <chao.yu@oppo.com>
483 Description: Show status of f2fs checkpoint in real time.
485 =============================== ==============================
487 CP_UMOUNT_FLAG 0x00000001
488 CP_ORPHAN_PRESENT_FLAG 0x00000002
489 CP_COMPACT_SUM_FLAG 0x00000004
490 CP_ERROR_FLAG 0x00000008
491 CP_FSCK_FLAG 0x00000010
492 CP_FASTBOOT_FLAG 0x00000020
493 CP_CRC_RECOVERY_FLAG 0x00000040
494 CP_NAT_BITS_FLAG 0x00000080
495 CP_TRIMMED_FLAG 0x00000100
496 CP_NOCRC_RECOVERY_FLAG 0x00000200
497 CP_LARGE_NAT_BITMAP_FLAG 0x00000400
498 CP_QUOTA_NEED_FSCK_FLAG 0x00000800
499 CP_DISABLED_FLAG 0x00001000
500 CP_DISABLED_QUICK_FLAG 0x00002000
501 CP_RESIZEFS_FLAG 0x00004000
502 =============================== ==============================
504 What: /sys/fs/f2fs/<disk>/stat/issued_discard
506 Contact: "Zhiguo Niu" <zhiguo.niu@unisoc.com>
507 Description: Shows the number of issued discard.
509 What: /sys/fs/f2fs/<disk>/stat/queued_discard
511 Contact: "Zhiguo Niu" <zhiguo.niu@unisoc.com>
512 Description: Shows the number of queued discard.
514 What: /sys/fs/f2fs/<disk>/stat/undiscard_blks
516 Contact: "Zhiguo Niu" <zhiguo.niu@unisoc.com>
517 Description: Shows the total number of undiscard blocks.
519 What: /sys/fs/f2fs/<disk>/ckpt_thread_ioprio
521 Contact: "Daeho Jeong" <daehojeong@google.com>
522 Description: Give a way to change checkpoint merge daemon's io priority.
523 Its default value is "be,3", which means "BE" I/O class and
524 I/O priority "3". We can select the class between "rt" and "be",
525 and set the I/O priority within valid range of it. "," delimiter
526 is necessary in between I/O class and priority number.
528 What: /sys/fs/f2fs/<disk>/ovp_segments
530 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
531 Description: Shows the number of overprovision segments.
533 What: /sys/fs/f2fs/<disk>/compr_written_block
535 Contact: "Daeho Jeong" <daehojeong@google.com>
536 Description: Show the block count written after compression since mount. Note
537 that when the compressed blocks are deleted, this count doesn't
538 decrease. If you write "0" here, you can initialize
539 compr_written_block and compr_saved_block to "0".
541 What: /sys/fs/f2fs/<disk>/compr_saved_block
543 Contact: "Daeho Jeong" <daehojeong@google.com>
544 Description: Show the saved block count with compression since mount. Note
545 that when the compressed blocks are deleted, this count doesn't
546 decrease. If you write "0" here, you can initialize
547 compr_written_block and compr_saved_block to "0".
549 What: /sys/fs/f2fs/<disk>/compr_new_inode
551 Contact: "Daeho Jeong" <daehojeong@google.com>
552 Description: Show the count of inode newly enabled for compression since mount.
553 Note that when the compression is disabled for the files, this count
554 doesn't decrease. If you write "0" here, you can initialize
555 compr_new_inode to "0".
557 What: /sys/fs/f2fs/<disk>/atgc_candidate_ratio
559 Contact: "Chao Yu" <yuchao0@huawei.com>
560 Description: When ATGC is on, it controls candidate ratio in order to limit total
561 number of potential victim in all candidates, the value should be in
562 range of [0, 100], by default it was initialized as 20(%).
564 What: /sys/fs/f2fs/<disk>/atgc_candidate_count
566 Contact: "Chao Yu" <yuchao0@huawei.com>
567 Description: When ATGC is on, it controls candidate count in order to limit total
568 number of potential victim in all candidates, by default it was
569 initialized as 10 (sections).
571 What: /sys/fs/f2fs/<disk>/atgc_age_weight
573 Contact: "Chao Yu" <yuchao0@huawei.com>
574 Description: When ATGC is on, it controls age weight to balance weight proportion
575 in between aging and valid blocks, the value should be in range of
576 [0, 100], by default it was initialized as 60(%).
578 What: /sys/fs/f2fs/<disk>/atgc_age_threshold
580 Contact: "Chao Yu" <yuchao0@huawei.com>
581 Description: When ATGC is on, it controls age threshold to bypass GCing young
582 candidates whose age is not beyond the threshold, by default it was
583 initialized as 604800 seconds (equals to 7 days).
585 What: /sys/fs/f2fs/<disk>/atgc_enabled
587 Contact: "Jinbao Liu" <liujinbao1@xiaomi.com>
588 Description: It represents whether ATGC is on or off. The value is 1 which
589 indicates that ATGC is on, and 0 indicates that it is off.
591 What: /sys/fs/f2fs/<disk>/gc_reclaimed_segments
593 Contact: "Daeho Jeong" <daehojeong@google.com>
594 Description: Show how many segments have been reclaimed by GC during a specific
595 GC mode (0: GC normal, 1: GC idle CB, 2: GC idle greedy,
596 3: GC idle AT, 4: GC urgent high, 5: GC urgent low 6: GC urgent mid)
597 You can re-initialize this value to "0".
599 What: /sys/fs/f2fs/<disk>/gc_segment_mode
601 Contact: "Daeho Jeong" <daehojeong@google.com>
602 Description: You can control for which gc mode the "gc_reclaimed_segments" node shows.
603 Refer to the description of the modes in "gc_reclaimed_segments".
605 What: /sys/fs/f2fs/<disk>/seq_file_ra_mul
607 Contact: "Daeho Jeong" <daehojeong@google.com>
608 Description: You can control the multiplier value of bdi device readahead window size
609 between 2 (default) and 256 for POSIX_FADV_SEQUENTIAL advise option.
611 What: /sys/fs/f2fs/<disk>/max_fragment_chunk
613 Contact: "Daeho Jeong" <daehojeong@google.com>
614 Description: With "mode=fragment:block" mount options, we can scatter block allocation.
615 f2fs will allocate 1..<max_fragment_chunk> blocks in a chunk and make a hole
616 in the length of 1..<max_fragment_hole> by turns. This value can be set
617 between 1..512 and the default value is 4.
619 What: /sys/fs/f2fs/<disk>/max_fragment_hole
621 Contact: "Daeho Jeong" <daehojeong@google.com>
622 Description: With "mode=fragment:block" mount options, we can scatter block allocation.
623 f2fs will allocate 1..<max_fragment_chunk> blocks in a chunk and make a hole
624 in the length of 1..<max_fragment_hole> by turns. This value can be set
625 between 1..512 and the default value is 4.
627 What: /sys/fs/f2fs/<disk>/gc_remaining_trials
629 Contact: "Yangtao Li" <frank.li@vivo.com>
630 Description: You can set the trial count limit for GC urgent and idle mode with this value.
631 If GC thread gets to the limit, the mode will turn back to GC normal mode.
632 By default, the value is zero, which means there is no limit like before.
634 What: /sys/fs/f2fs/<disk>/max_roll_forward_node_blocks
636 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
637 Description: Controls max # of node block writes to be used for roll forward
638 recovery. This can limit the roll forward recovery time.
640 What: /sys/fs/f2fs/<disk>/unusable_blocks_per_sec
642 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
643 Description: Shows the number of unusable blocks in a section which was defined by
644 the zone capacity reported by underlying zoned device.
646 What: /sys/fs/f2fs/<disk>/current_atomic_write
648 Contact: "Daeho Jeong" <daehojeong@google.com>
649 Description: Show the total current atomic write block count, which is not committed yet.
650 This is a read-only entry.
652 What: /sys/fs/f2fs/<disk>/peak_atomic_write
654 Contact: "Daeho Jeong" <daehojeong@google.com>
655 Description: Show the peak value of total current atomic write block count after boot.
656 If you write "0" here, you can initialize to "0".
658 What: /sys/fs/f2fs/<disk>/committed_atomic_block
660 Contact: "Daeho Jeong" <daehojeong@google.com>
661 Description: Show the accumulated total committed atomic write block count after boot.
662 If you write "0" here, you can initialize to "0".
664 What: /sys/fs/f2fs/<disk>/revoked_atomic_block
666 Contact: "Daeho Jeong" <daehojeong@google.com>
667 Description: Show the accumulated total revoked atomic write block count after boot.
668 If you write "0" here, you can initialize to "0".
670 What: /sys/fs/f2fs/<disk>/gc_mode
672 Contact: "Yangtao Li" <frank.li@vivo.com>
673 Description: Show the current gc_mode as a string.
674 This is a read-only entry.
676 What: /sys/fs/f2fs/<disk>/discard_urgent_util
678 Contact: "Yangtao Li" <frank.li@vivo.com>
679 Description: When space utilization exceeds this, do background DISCARD aggressively.
680 Does DISCARD forcibly in a period of given min_discard_issue_time when the number
681 of discards is not 0 and set discard granularity to 1.
684 What: /sys/fs/f2fs/<disk>/hot_data_age_threshold
686 Contact: "Ping Xiong" <xiongping1@xiaomi.com>
687 Description: When DATA SEPARATION is on, it controls the age threshold to indicate
688 the data blocks as hot. By default it was initialized as 262144 blocks
691 What: /sys/fs/f2fs/<disk>/warm_data_age_threshold
693 Contact: "Ping Xiong" <xiongping1@xiaomi.com>
694 Description: When DATA SEPARATION is on, it controls the age threshold to indicate
695 the data blocks as warm. By default it was initialized as 2621440 blocks
698 What: /sys/fs/f2fs/<disk>/fault_rate
700 Contact: "Sheng Yong" <shengyong@oppo.com>
701 Contact: "Chao Yu" <chao@kernel.org>
702 Description: Enable fault injection in all supported types with
703 specified injection rate.
705 What: /sys/fs/f2fs/<disk>/fault_type
707 Contact: "Sheng Yong" <shengyong@oppo.com>
708 Contact: "Chao Yu" <chao@kernel.org>
709 Description: Support configuring fault injection type, should be
710 enabled with fault_injection option, fault type value
711 is shown below, it supports single or combined type.
713 =========================== ===========
715 =========================== ===========
716 FAULT_KMALLOC 0x000000001
717 FAULT_KVMALLOC 0x000000002
718 FAULT_PAGE_ALLOC 0x000000004
719 FAULT_PAGE_GET 0x000000008
720 FAULT_ALLOC_BIO 0x000000010 (obsolete)
721 FAULT_ALLOC_NID 0x000000020
722 FAULT_ORPHAN 0x000000040
723 FAULT_BLOCK 0x000000080
724 FAULT_DIR_DEPTH 0x000000100
725 FAULT_EVICT_INODE 0x000000200
726 FAULT_TRUNCATE 0x000000400
727 FAULT_READ_IO 0x000000800
728 FAULT_CHECKPOINT 0x000001000
729 FAULT_DISCARD 0x000002000
730 FAULT_WRITE_IO 0x000004000
731 FAULT_SLAB_ALLOC 0x000008000
732 FAULT_DQUOT_INIT 0x000010000
733 FAULT_LOCK_OP 0x000020000
734 FAULT_BLKADDR_VALIDITY 0x000040000
735 FAULT_BLKADDR_CONSISTENCE 0x000080000
736 FAULT_NO_SEGMENT 0x000100000
737 =========================== ===========
739 What: /sys/fs/f2fs/<disk>/discard_io_aware_gran
741 Contact: "Yangtao Li" <frank.li@vivo.com>
742 Description: Controls background discard granularity of inner discard thread
743 when is not in idle. Inner thread will not issue discards with size that
744 is smaller than granularity. The unit size is one block(4KB), now only
745 support configuring in range of [0, 512].
748 What: /sys/fs/f2fs/<disk>/last_age_weight
750 Contact: "Ping Xiong" <xiongping1@xiaomi.com>
751 Description: When DATA SEPARATION is on, it controls the weight of last data block age.
753 What: /sys/fs/f2fs/<disk>/compress_watermark
755 Contact: "Yangtao Li" <frank.li@vivo.com>
756 Description: When compress cache is on, it controls free memory watermark
757 in order to limit caching compress page. If free memory is lower
758 than watermark, then deny caching compress page. The value should be in
759 range of (0, 100], by default it was initialized as 20(%).
761 What: /sys/fs/f2fs/<disk>/compress_percent
763 Contact: "Yangtao Li" <frank.li@vivo.com>
764 Description: When compress cache is on, it controls cached page
765 percent(compress pages / free_ram) in order to limit caching compress page.
766 If cached page percent exceed threshold, then deny caching compress page.
767 The value should be in range of (0, 100], by default it was initialized
770 What: /sys/fs/f2fs/<disk>/discard_io_aware
772 Contact: "Chao Yu" <chao@kernel.org>
773 Description: It controls to enable/disable IO aware feature for background discard.
774 By default, the value is 1 which indicates IO aware is on.
776 What: /sys/fs/f2fs/<disk>/blkzone_alloc_policy
778 Contact: "Yuanhong Liao" <liaoyuanhong@vivo.com>
779 Description: The zone UFS we are currently using consists of two parts:
780 conventional zones and sequential zones. It can be used to control which part
781 to prioritize for writes, with a default value of 0.
783 ======================== =========================================
785 blkzone_alloc_policy = 0 Prioritize writing to sequential zones
786 blkzone_alloc_policy = 1 Only allow writing to sequential zones
787 blkzone_alloc_policy = 2 Prioritize writing to conventional zones
788 ======================== =========================================
790 What: /sys/fs/f2fs/<disk>/migration_window_granularity
792 Contact: "Daeho Jeong" <daehojeong@google.com>
793 Description: Controls migration window granularity of garbage collection on large
794 section. it can control the scanning window granularity for GC migration
795 in a unit of segment, while migration_granularity controls the number
796 of segments which can be migrated at the same turn.
798 What: /sys/fs/f2fs/<disk>/reserved_segments
800 Contact: "Daeho Jeong" <daehojeong@google.com>
801 Description: In order to fine tune GC behavior, we can control the number of
804 What: /sys/fs/f2fs/<disk>/gc_no_zoned_gc_percent
806 Contact: "Daeho Jeong" <daehojeong@google.com>
807 Description: If the percentage of free sections over total sections is above this
808 number, F2FS do not garbage collection for zoned devices through the
809 background GC thread. the default number is "60".
811 What: /sys/fs/f2fs/<disk>/gc_boost_zoned_gc_percent
813 Contact: "Daeho Jeong" <daehojeong@google.com>
814 Description: If the percentage of free sections over total sections is under this
815 number, F2FS boosts garbage collection for zoned devices through the
816 background GC thread. the default number is "25".
818 What: /sys/fs/f2fs/<disk>/gc_valid_thresh_ratio
820 Contact: "Daeho Jeong" <daehojeong@google.com>
821 Description: It controls the valid block ratio threshold not to trigger excessive GC
822 for zoned deivces. The initial value of it is 95(%). F2FS will stop the
823 background GC thread from intiating GC for sections having valid blocks
826 What: /sys/fs/f2fs/<disk>/max_read_extent_count
828 Contact: "Chao Yu" <chao@kernel.org>
829 Description: It controls max read extent count for per-inode, the value of threshold