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 ==== =================
56 0x08 F2FS_IPU_SSR_UTIL
60 ==== =================
62 Refer segment.h for details.
64 What: /sys/fs/f2fs/<disk>/min_ipu_util
66 Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>
67 Description: Controls the FS utilization condition for the in-place-update
68 policies. It is used by F2FS_IPU_UTIL and F2FS_IPU_SSR_UTIL policies.
70 What: /sys/fs/f2fs/<disk>/min_fsync_blocks
72 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
73 Description: Controls the dirty page count condition for the in-place-update
76 What: /sys/fs/f2fs/<disk>/min_seq_blocks
78 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
79 Description: Controls the dirty page count condition for batched sequential
82 What: /sys/fs/f2fs/<disk>/min_hot_blocks
84 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
85 Description: Controls the dirty page count condition for redefining hot data.
87 What: /sys/fs/f2fs/<disk>/min_ssr_sections
89 Contact: "Chao Yu" <yuchao0@huawei.com>
90 Description: Controls the free section threshold to trigger SSR allocation.
91 If this is large, SSR mode will be enabled early.
93 What: /sys/fs/f2fs/<disk>/max_small_discards
95 Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>
96 Description: Controls the issue rate of discard commands that consist of small
97 blocks less than 2MB. The candidates to be discarded are cached until
98 checkpoint is triggered, and issued during the checkpoint.
99 By default, it is disabled with 0.
101 What: /sys/fs/f2fs/<disk>/discard_granularity
103 Contact: "Chao Yu" <yuchao0@huawei.com>
104 Description: Controls discard granularity of inner discard thread. Inner thread
105 will not issue discards with size that is smaller than granularity.
106 The unit size is one block(4KB), now only support configuring
107 in range of [1, 512]. Default value is 4(=16KB).
109 What: /sys/fs/f2fs/<disk>/umount_discard_timeout
111 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
112 Description: Set timeout to issue discard commands during umount.
115 What: /sys/fs/f2fs/<disk>/max_victim_search
117 Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>
118 Description: Controls the number of trials to find a victim segment
119 when conducting SSR and cleaning operations. The default value
120 is 4096 which covers 8GB block address range.
122 What: /sys/fs/f2fs/<disk>/migration_granularity
124 Contact: "Chao Yu" <yuchao0@huawei.com>
125 Description: Controls migration granularity of garbage collection on large
126 section, it can let GC move partial segment{s} of one section
127 in one GC cycle, so that dispersing heavy overhead GC to
128 multiple lightweight one.
130 What: /sys/fs/f2fs/<disk>/dir_level
132 Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>
133 Description: Controls the directory level for large directory. If a
134 directory has a number of files, it can reduce the file lookup
135 latency by increasing this dir_level value. Otherwise, it
136 needs to decrease this value to reduce the space overhead.
137 The default value is 0.
139 What: /sys/fs/f2fs/<disk>/ram_thresh
141 Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>
142 Description: Controls the memory footprint used by free nids and cached
143 nat entries. By default, 1 is set, which indicates
146 What: /sys/fs/f2fs/<disk>/batched_trim_sections
148 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
149 Description: Controls the trimming rate in batch mode.
152 What: /sys/fs/f2fs/<disk>/cp_interval
154 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
155 Description: Controls the checkpoint timing, set to 60 seconds by default.
157 What: /sys/fs/f2fs/<disk>/idle_interval
159 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
160 Description: Controls the idle timing of system, if there is no FS operation
161 during given interval.
162 Set to 5 seconds by default.
164 What: /sys/fs/f2fs/<disk>/discard_idle_interval
166 Contact: "Chao Yu" <yuchao0@huawei.com>
167 Contact: "Sahitya Tummala" <stummala@codeaurora.org>
168 Description: Controls the idle timing of discard thread given
172 What: /sys/fs/f2fs/<disk>/gc_idle_interval
174 Contact: "Chao Yu" <yuchao0@huawei.com>
175 Contact: "Sahitya Tummala" <stummala@codeaurora.org>
176 Description: Controls the idle timing for gc path. Set to 5 seconds by default.
178 What: /sys/fs/f2fs/<disk>/iostat_enable
180 Contact: "Chao Yu" <yuchao0@huawei.com>
181 Description: Controls to enable/disable IO stat.
183 What: /sys/fs/f2fs/<disk>/ra_nid_pages
185 Contact: "Chao Yu" <chao2.yu@samsung.com>
186 Description: Controls the count of nid pages to be readaheaded.
187 When building free nids, F2FS reads NAT blocks ahead for
188 speed up. Default is 0.
190 What: /sys/fs/f2fs/<disk>/dirty_nats_ratio
192 Contact: "Chao Yu" <chao2.yu@samsung.com>
193 Description: Controls dirty nat entries ratio threshold, if current
194 ratio exceeds configured threshold, checkpoint will
195 be triggered for flushing dirty nat entries.
197 What: /sys/fs/f2fs/<disk>/lifetime_write_kbytes
199 Contact: "Shuoran Liu" <liushuoran@huawei.com>
200 Description: Shows total written kbytes issued to disk.
202 What: /sys/fs/f2fs/<disk>/features
204 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
205 Description: <deprecated: should use /sys/fs/f2fs/<disk>/feature_list/
206 Shows all enabled features in current device.
208 encryption, blkzoned, extra_attr, projquota, inode_checksum,
209 flexible_inline_xattr, quota_ino, inode_crtime, lost_found,
210 verity, sb_checksum, casefold, readonly, compression, pin_file.
212 What: /sys/fs/f2fs/<disk>/feature_list/
214 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
215 Description: Expand /sys/fs/f2fs/<disk>/features to meet sysfs rule.
216 Supported on-disk features:
217 encryption, block_zoned (aka blkzoned), extra_attr,
218 project_quota (aka projquota), inode_checksum,
219 flexible_inline_xattr, quota_ino, inode_crtime, lost_found,
220 verity, sb_checksum, casefold, readonly, compression.
221 Note that, pin_file is moved into /sys/fs/f2fs/features/.
223 What: /sys/fs/f2fs/features/
225 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
226 Description: Shows all enabled kernel features.
228 encryption, block_zoned, extra_attr, project_quota,
229 inode_checksum, flexible_inline_xattr, quota_ino,
230 inode_crtime, lost_found, verity, sb_checksum,
231 casefold, readonly, compression, test_dummy_encryption_v2,
232 atomic_write, pin_file, encrypted_casefold.
234 What: /sys/fs/f2fs/<disk>/inject_rate
236 Contact: "Sheng Yong" <shengyong1@huawei.com>
237 Description: Controls the injection rate of arbitrary faults.
239 What: /sys/fs/f2fs/<disk>/inject_type
241 Contact: "Sheng Yong" <shengyong1@huawei.com>
242 Description: Controls the injection type of arbitrary faults.
244 What: /sys/fs/f2fs/<disk>/dirty_segments
246 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
247 Description: Shows the number of dirty segments.
249 What: /sys/fs/f2fs/<disk>/reserved_blocks
251 Contact: "Chao Yu" <yuchao0@huawei.com>
252 Description: Controls target reserved blocks in system, the threshold
253 is soft, it could exceed current available user space.
255 What: /sys/fs/f2fs/<disk>/current_reserved_blocks
257 Contact: "Yunlong Song" <yunlong.song@huawei.com>
258 Contact: "Chao Yu" <yuchao0@huawei.com>
259 Description: Shows current reserved blocks in system, it may be temporarily
260 smaller than target_reserved_blocks, but will gradually
261 increase to target_reserved_blocks when more free blocks are
264 What: /sys/fs/f2fs/<disk>/gc_urgent
266 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
267 Description: Do background GC aggressively when set. When gc_urgent = 1,
268 background thread starts to do GC by given gc_urgent_sleep_time
269 interval. When gc_urgent = 2, F2FS will lower the bar of
270 checking idle in order to process outstanding discard commands
271 and GC a little bit aggressively. It is set to 0 by default.
273 What: /sys/fs/f2fs/<disk>/gc_urgent_sleep_time
275 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
276 Description: Controls sleep time of GC urgent mode. Set to 500ms by default.
278 What: /sys/fs/f2fs/<disk>/readdir_ra
280 Contact: "Sheng Yong" <shengyong1@huawei.com>
281 Description: Controls readahead inode block in readdir. Enabled by default.
283 What: /sys/fs/f2fs/<disk>/gc_pin_file_thresh
285 Contact: Jaegeuk Kim <jaegeuk@kernel.org>
286 Description: This indicates how many GC can be failed for the pinned
287 file. If it exceeds this, F2FS doesn't guarantee its pinning
288 state. 2048 trials is set by default.
290 What: /sys/fs/f2fs/<disk>/extension_list
292 Contact: "Chao Yu" <yuchao0@huawei.com>
293 Description: Used to control configure extension list:
294 - Query: cat /sys/fs/f2fs/<disk>/extension_list
295 - Add: echo '[h/c]extension' > /sys/fs/f2fs/<disk>/extension_list
296 - Del: echo '[h/c]!extension' > /sys/fs/f2fs/<disk>/extension_list
297 - [h] means add/del hot file extension
298 - [c] means add/del cold file extension
300 What: /sys/fs/f2fs/<disk>/unusable
302 Contact: "Daniel Rosenberg" <drosen@google.com>
303 Description: If checkpoint=disable, it displays the number of blocks that
305 If checkpoint=enable it displays the number of blocks that
306 would be unusable if checkpoint=disable were to be set.
308 What: /sys/fs/f2fs/<disk>/encoding
310 Contact: "Daniel Rosenberg" <drosen@google.com>
311 Description: Displays name and version of the encoding set for the filesystem.
312 If no encoding is set, displays (none)
314 What: /sys/fs/f2fs/<disk>/free_segments
316 Contact: "Hridya Valsaraju" <hridya@google.com>
317 Description: Number of free segments in disk.
319 What: /sys/fs/f2fs/<disk>/cp_foreground_calls
321 Contact: "Hridya Valsaraju" <hridya@google.com>
322 Description: Number of checkpoint operations performed on demand. Available when
323 CONFIG_F2FS_STAT_FS=y.
325 What: /sys/fs/f2fs/<disk>/cp_background_calls
327 Contact: "Hridya Valsaraju" <hridya@google.com>
328 Description: Number of checkpoint operations performed in the background to
329 free segments. Available when CONFIG_F2FS_STAT_FS=y.
331 What: /sys/fs/f2fs/<disk>/gc_foreground_calls
333 Contact: "Hridya Valsaraju" <hridya@google.com>
334 Description: Number of garbage collection operations performed on demand.
335 Available when CONFIG_F2FS_STAT_FS=y.
337 What: /sys/fs/f2fs/<disk>/gc_background_calls
339 Contact: "Hridya Valsaraju" <hridya@google.com>
340 Description: Number of garbage collection operations triggered in background.
341 Available when CONFIG_F2FS_STAT_FS=y.
343 What: /sys/fs/f2fs/<disk>/moved_blocks_foreground
345 Contact: "Hridya Valsaraju" <hridya@google.com>
346 Description: Number of blocks moved by garbage collection in foreground.
347 Available when CONFIG_F2FS_STAT_FS=y.
349 What: /sys/fs/f2fs/<disk>/moved_blocks_background
351 Contact: "Hridya Valsaraju" <hridya@google.com>
352 Description: Number of blocks moved by garbage collection in background.
353 Available when CONFIG_F2FS_STAT_FS=y.
355 What: /sys/fs/f2fs/<disk>/avg_vblocks
357 Contact: "Hridya Valsaraju" <hridya@google.com>
358 Description: Average number of valid blocks.
359 Available when CONFIG_F2FS_STAT_FS=y.
361 What: /sys/fs/f2fs/<disk>/mounted_time_sec
363 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
364 Description: Show the mounted time in secs of this partition.
366 What: /sys/fs/f2fs/<disk>/data_io_flag
368 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
369 Description: Give a way to attach REQ_META|FUA to data writes
370 given temperature-based bits. Now the bits indicate:
372 +-------------------+-------------------+
373 | REQ_META | REQ_FUA |
374 +------+------+-----+------+------+-----+
375 | 5 | 4 | 3 | 2 | 1 | 0 |
376 +------+------+-----+------+------+-----+
377 | Cold | Warm | Hot | Cold | Warm | Hot |
378 +------+------+-----+------+------+-----+
380 What: /sys/fs/f2fs/<disk>/node_io_flag
382 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
383 Description: Give a way to attach REQ_META|FUA to node writes
384 given temperature-based bits. Now the bits indicate:
386 +-------------------+-------------------+
387 | REQ_META | REQ_FUA |
388 +------+------+-----+------+------+-----+
389 | 5 | 4 | 3 | 2 | 1 | 0 |
390 +------+------+-----+------+------+-----+
391 | Cold | Warm | Hot | Cold | Warm | Hot |
392 +------+------+-----+------+------+-----+
394 What: /sys/fs/f2fs/<disk>/iostat_period_ms
396 Contact: "Daeho Jeong" <daehojeong@google.com>
397 Description: Give a way to change iostat_period time. 3secs by default.
398 The new iostat trace gives stats gap given the period.
399 What: /sys/fs/f2fs/<disk>/max_io_bytes
401 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
402 Description: This gives a control to limit the bio size in f2fs.
403 Default is zero, which will follow underlying block layer limit,
404 whereas, if it has a certain bytes value, f2fs won't submit a
405 bio larger than that size.
407 What: /sys/fs/f2fs/<disk>/stat/sb_status
409 Contact: "Chao Yu" <yuchao0@huawei.com>
410 Description: Show status of f2fs superblock in real time.
412 ====== ===================== =================================
413 value sb status macro description
414 0x1 SBI_IS_DIRTY dirty flag for checkpoint
415 0x2 SBI_IS_CLOSE specify unmounting
416 0x4 SBI_NEED_FSCK need fsck.f2fs to fix
417 0x8 SBI_POR_DOING recovery is doing or not
418 0x10 SBI_NEED_SB_WRITE need to recover superblock
419 0x20 SBI_NEED_CP need to checkpoint
420 0x40 SBI_IS_SHUTDOWN shutdown by ioctl
421 0x80 SBI_IS_RECOVERED recovered orphan/data
422 0x100 SBI_CP_DISABLED CP was disabled last mount
423 0x200 SBI_CP_DISABLED_QUICK CP was disabled quickly
424 0x400 SBI_QUOTA_NEED_FLUSH need to flush quota info in CP
425 0x800 SBI_QUOTA_SKIP_FLUSH skip flushing quota in current CP
426 0x1000 SBI_QUOTA_NEED_REPAIR quota file may be corrupted
427 0x2000 SBI_IS_RESIZEFS resizefs is in process
428 ====== ===================== =================================
430 What: /sys/fs/f2fs/<disk>/ckpt_thread_ioprio
432 Contact: "Daeho Jeong" <daehojeong@google.com>
433 Description: Give a way to change checkpoint merge daemon's io priority.
434 Its default value is "be,3", which means "BE" I/O class and
435 I/O priority "3". We can select the class between "rt" and "be",
436 and set the I/O priority within valid range of it. "," delimiter
437 is necessary in between I/O class and priority number.
439 What: /sys/fs/f2fs/<disk>/ovp_segments
441 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
442 Description: Shows the number of overprovision segments.
444 What: /sys/fs/f2fs/<disk>/compr_written_block
446 Contact: "Daeho Jeong" <daehojeong@google.com>
447 Description: Show the block count written after compression since mount. Note
448 that when the compressed blocks are deleted, this count doesn't
449 decrease. If you write "0" here, you can initialize
450 compr_written_block and compr_saved_block to "0".
452 What: /sys/fs/f2fs/<disk>/compr_saved_block
454 Contact: "Daeho Jeong" <daehojeong@google.com>
455 Description: Show the saved block count with compression since mount. Note
456 that when the compressed blocks are deleted, this count doesn't
457 decrease. If you write "0" here, you can initialize
458 compr_written_block and compr_saved_block to "0".
460 What: /sys/fs/f2fs/<disk>/compr_new_inode
462 Contact: "Daeho Jeong" <daehojeong@google.com>
463 Description: Show the count of inode newly enabled for compression since mount.
464 Note that when the compression is disabled for the files, this count
465 doesn't decrease. If you write "0" here, you can initialize
466 compr_new_inode to "0".
468 What: /sys/fs/f2fs/<disk>/atgc_candidate_ratio
470 Contact: "Chao Yu" <yuchao0@huawei.com>
471 Description: When ATGC is on, it controls candidate ratio in order to limit total
472 number of potential victim in all candidates, the value should be in
473 range of [0, 100], by default it was initialized as 20(%).
475 What: /sys/fs/f2fs/<disk>/atgc_candidate_count
477 Contact: "Chao Yu" <yuchao0@huawei.com>
478 Description: When ATGC is on, it controls candidate count in order to limit total
479 number of potential victim in all candidates, by default it was
480 initialized as 10 (sections).
482 What: /sys/fs/f2fs/<disk>/atgc_age_weight
484 Contact: "Chao Yu" <yuchao0@huawei.com>
485 Description: When ATGC is on, it controls age weight to balance weight proportion
486 in between aging and valid blocks, the value should be in range of
487 [0, 100], by default it was initialized as 60(%).
489 What: /sys/fs/f2fs/<disk>/atgc_age_threshold
491 Contact: "Chao Yu" <yuchao0@huawei.com>
492 Description: When ATGC is on, it controls age threshold to bypass GCing young
493 candidates whose age is not beyond the threshold, by default it was
494 initialized as 604800 seconds (equals to 7 days).
496 What: /sys/fs/f2fs/<disk>/gc_reclaimed_segments
498 Contact: "Daeho Jeong" <daehojeong@google.com>
499 Description: Show how many segments have been reclaimed by GC during a specific
500 GC mode (0: GC normal, 1: GC idle CB, 2: GC idle greedy,
501 3: GC idle AT, 4: GC urgent high, 5: GC urgent low)
502 You can re-initialize this value to "0".
504 What: /sys/fs/f2fs/<disk>/gc_segment_mode
506 Contact: "Daeho Jeong" <daehojeong@google.com>
507 Description: You can control for which gc mode the "gc_reclaimed_segments" node shows.
508 Refer to the description of the modes in "gc_reclaimed_segments".
510 What: /sys/fs/f2fs/<disk>/seq_file_ra_mul
512 Contact: "Daeho Jeong" <daehojeong@google.com>
513 Description: You can control the multiplier value of bdi device readahead window size
514 between 2 (default) and 256 for POSIX_FADV_SEQUENTIAL advise option.