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>
45 Shows first block address of MAIN area.
47 What: /sys/fs/f2fs/<disk>/ipu_policy
49 Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>
50 Description: Controls the in-place-update policy.
51 updates in f2fs. User can set:
53 ==== =================
57 0x08 F2FS_IPU_SSR_UTIL
61 ==== =================
63 Refer segment.h for details.
65 What: /sys/fs/f2fs/<disk>/min_ipu_util
67 Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>
68 Description: Controls the FS utilization condition for the in-place-update
69 policies. It is used by F2FS_IPU_UTIL and F2FS_IPU_SSR_UTIL policies.
71 What: /sys/fs/f2fs/<disk>/min_fsync_blocks
73 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
74 Description: Controls the dirty page count condition for the in-place-update
77 What: /sys/fs/f2fs/<disk>/min_seq_blocks
79 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
80 Description: Controls the dirty page count condition for batched sequential
83 What: /sys/fs/f2fs/<disk>/min_hot_blocks
85 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
86 Description: Controls the dirty page count condition for redefining hot data.
88 What: /sys/fs/f2fs/<disk>/min_ssr_sections
90 Contact: "Chao Yu" <yuchao0@huawei.com>
91 Description: Controls the free section threshold to trigger SSR allocation.
92 If this is large, SSR mode will be enabled early.
94 What: /sys/fs/f2fs/<disk>/max_small_discards
96 Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>
97 Description: Controls the issue rate of discard commands that consist of small
98 blocks less than 2MB. The candidates to be discarded are cached until
99 checkpoint is triggered, and issued during the checkpoint.
100 By default, it is disabled with 0.
102 What: /sys/fs/f2fs/<disk>/discard_granularity
104 Contact: "Chao Yu" <yuchao0@huawei.com>
105 Description: Controls discard granularity of inner discard thread. Inner thread
106 will not issue discards with size that is smaller than granularity.
107 The unit size is one block(4KB), now only support configuring
108 in range of [1, 512]. Default value is 4(=16KB).
110 What: /sys/fs/f2fs/<disk>/umount_discard_timeout
112 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
113 Description: Set timeout to issue discard commands during umount.
116 What: /sys/fs/f2fs/<disk>/max_victim_search
118 Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>
119 Description: Controls the number of trials to find a victim segment
120 when conducting SSR and cleaning operations. The default value
121 is 4096 which covers 8GB block address range.
123 What: /sys/fs/f2fs/<disk>/migration_granularity
125 Contact: "Chao Yu" <yuchao0@huawei.com>
126 Description: Controls migration granularity of garbage collection on large
127 section, it can let GC move partial segment{s} of one section
128 in one GC cycle, so that dispersing heavy overhead GC to
129 multiple lightweight one.
131 What: /sys/fs/f2fs/<disk>/dir_level
133 Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>
134 Description: Controls the directory level for large directory. If a
135 directory has a number of files, it can reduce the file lookup
136 latency by increasing this dir_level value. Otherwise, it
137 needs to decrease this value to reduce the space overhead.
138 The default value is 0.
140 What: /sys/fs/f2fs/<disk>/ram_thresh
142 Contact: "Jaegeuk Kim" <jaegeuk.kim@samsung.com>
143 Description: Controls the memory footprint used by free nids and cached
144 nat entries. By default, 1 is set, which indicates
147 What: /sys/fs/f2fs/<disk>/batched_trim_sections
149 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
150 Description: Controls the trimming rate in batch mode.
153 What: /sys/fs/f2fs/<disk>/cp_interval
155 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
156 Description: Controls the checkpoint timing, set to 60 seconds by default.
158 What: /sys/fs/f2fs/<disk>/idle_interval
160 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
161 Description: Controls the idle timing of system, if there is no FS operation
162 during given interval.
163 Set to 5 seconds by default.
165 What: /sys/fs/f2fs/<disk>/discard_idle_interval
167 Contact: "Chao Yu" <yuchao0@huawei.com>
168 Contact: "Sahitya Tummala" <stummala@codeaurora.org>
169 Description: Controls the idle timing of discard thread given
173 What: /sys/fs/f2fs/<disk>/gc_idle_interval
175 Contact: "Chao Yu" <yuchao0@huawei.com>
176 Contact: "Sahitya Tummala" <stummala@codeaurora.org>
177 Description: Controls the idle timing for gc path. Set to 5 seconds by default.
179 What: /sys/fs/f2fs/<disk>/iostat_enable
181 Contact: "Chao Yu" <yuchao0@huawei.com>
182 Description: Controls to enable/disable IO stat.
184 What: /sys/fs/f2fs/<disk>/ra_nid_pages
186 Contact: "Chao Yu" <chao2.yu@samsung.com>
187 Description: Controls the count of nid pages to be readaheaded.
188 When building free nids, F2FS reads NAT blocks ahead for
189 speed up. Default is 0.
191 What: /sys/fs/f2fs/<disk>/dirty_nats_ratio
193 Contact: "Chao Yu" <chao2.yu@samsung.com>
194 Description: Controls dirty nat entries ratio threshold, if current
195 ratio exceeds configured threshold, checkpoint will
196 be triggered for flushing dirty nat entries.
198 What: /sys/fs/f2fs/<disk>/lifetime_write_kbytes
200 Contact: "Shuoran Liu" <liushuoran@huawei.com>
201 Description: Shows total written kbytes issued to disk.
203 What: /sys/fs/f2fs/<disk>/features
205 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
206 Description: <deprecated: should use /sys/fs/f2fs/<disk>/feature_list/
207 Shows all enabled features in current device.
209 encryption, blkzoned, extra_attr, projquota, inode_checksum,
210 flexible_inline_xattr, quota_ino, inode_crtime, lost_found,
211 verity, sb_checksum, casefold, readonly, compression, pin_file.
213 What: /sys/fs/f2fs/<disk>/feature_list/
215 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
216 Description: Expand /sys/fs/f2fs/<disk>/features to meet sysfs rule.
217 Supported on-disk features:
218 encryption, block_zoned (aka blkzoned), extra_attr,
219 project_quota (aka projquota), inode_checksum,
220 flexible_inline_xattr, quota_ino, inode_crtime, lost_found,
221 verity, sb_checksum, casefold, readonly, compression.
222 Note that, pin_file is moved into /sys/fs/f2fs/features/.
224 What: /sys/fs/f2fs/features/
226 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
227 Description: Shows all enabled kernel features.
229 encryption, block_zoned, extra_attr, project_quota,
230 inode_checksum, flexible_inline_xattr, quota_ino,
231 inode_crtime, lost_found, verity, sb_checksum,
232 casefold, readonly, compression, test_dummy_encryption_v2,
233 atomic_write, pin_file, encrypted_casefold.
235 What: /sys/fs/f2fs/<disk>/inject_rate
237 Contact: "Sheng Yong" <shengyong1@huawei.com>
238 Description: Controls the injection rate of arbitrary faults.
240 What: /sys/fs/f2fs/<disk>/inject_type
242 Contact: "Sheng Yong" <shengyong1@huawei.com>
243 Description: Controls the injection type of arbitrary faults.
245 What: /sys/fs/f2fs/<disk>/dirty_segments
247 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
248 Description: Shows the number of dirty segments.
250 What: /sys/fs/f2fs/<disk>/reserved_blocks
252 Contact: "Chao Yu" <yuchao0@huawei.com>
253 Description: Controls target reserved blocks in system, the threshold
254 is soft, it could exceed current available user space.
256 What: /sys/fs/f2fs/<disk>/current_reserved_blocks
258 Contact: "Yunlong Song" <yunlong.song@huawei.com>
259 Contact: "Chao Yu" <yuchao0@huawei.com>
260 Description: Shows current reserved blocks in system, it may be temporarily
261 smaller than target_reserved_blocks, but will gradually
262 increase to target_reserved_blocks when more free blocks are
265 What: /sys/fs/f2fs/<disk>/gc_urgent
267 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
268 Description: Do background GC aggressively when set. When gc_urgent = 1,
269 background thread starts to do GC by given gc_urgent_sleep_time
270 interval. When gc_urgent = 2, F2FS will lower the bar of
271 checking idle in order to process outstanding discard commands
272 and GC a little bit aggressively. It is set to 0 by default.
274 What: /sys/fs/f2fs/<disk>/gc_urgent_sleep_time
276 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
277 Description: Controls sleep time of GC urgent mode. Set to 500ms by default.
279 What: /sys/fs/f2fs/<disk>/readdir_ra
281 Contact: "Sheng Yong" <shengyong1@huawei.com>
282 Description: Controls readahead inode block in readdir. Enabled by default.
284 What: /sys/fs/f2fs/<disk>/gc_pin_file_thresh
286 Contact: Jaegeuk Kim <jaegeuk@kernel.org>
287 Description: This indicates how many GC can be failed for the pinned
288 file. If it exceeds this, F2FS doesn't guarantee its pinning
289 state. 2048 trials is set by default.
291 What: /sys/fs/f2fs/<disk>/extension_list
293 Contact: "Chao Yu" <yuchao0@huawei.com>
294 Description: Used to control configure extension list:
295 - Query: cat /sys/fs/f2fs/<disk>/extension_list
296 - Add: echo '[h/c]extension' > /sys/fs/f2fs/<disk>/extension_list
297 - Del: echo '[h/c]!extension' > /sys/fs/f2fs/<disk>/extension_list
298 - [h] means add/del hot file extension
299 - [c] means add/del cold file extension
301 What: /sys/fs/f2fs/<disk>/unusable
303 Contact: "Daniel Rosenberg" <drosen@google.com>
304 Description: If checkpoint=disable, it displays the number of blocks that
306 If checkpoint=enable it displays the number of blocks that
307 would be unusable if checkpoint=disable were to be set.
309 What: /sys/fs/f2fs/<disk>/encoding
311 Contact: "Daniel Rosenberg" <drosen@google.com>
312 Description: Displays name and version of the encoding set for the filesystem.
313 If no encoding is set, displays (none)
315 What: /sys/fs/f2fs/<disk>/free_segments
317 Contact: "Hridya Valsaraju" <hridya@google.com>
318 Description: Number of free segments in disk.
320 What: /sys/fs/f2fs/<disk>/cp_foreground_calls
322 Contact: "Hridya Valsaraju" <hridya@google.com>
323 Description: Number of checkpoint operations performed on demand. Available when
324 CONFIG_F2FS_STAT_FS=y.
326 What: /sys/fs/f2fs/<disk>/cp_background_calls
328 Contact: "Hridya Valsaraju" <hridya@google.com>
329 Description: Number of checkpoint operations performed in the background to
330 free segments. Available when CONFIG_F2FS_STAT_FS=y.
332 What: /sys/fs/f2fs/<disk>/gc_foreground_calls
334 Contact: "Hridya Valsaraju" <hridya@google.com>
335 Description: Number of garbage collection operations performed on demand.
336 Available when CONFIG_F2FS_STAT_FS=y.
338 What: /sys/fs/f2fs/<disk>/gc_background_calls
340 Contact: "Hridya Valsaraju" <hridya@google.com>
341 Description: Number of garbage collection operations triggered in background.
342 Available when CONFIG_F2FS_STAT_FS=y.
344 What: /sys/fs/f2fs/<disk>/moved_blocks_foreground
346 Contact: "Hridya Valsaraju" <hridya@google.com>
347 Description: Number of blocks moved by garbage collection in foreground.
348 Available when CONFIG_F2FS_STAT_FS=y.
350 What: /sys/fs/f2fs/<disk>/moved_blocks_background
352 Contact: "Hridya Valsaraju" <hridya@google.com>
353 Description: Number of blocks moved by garbage collection in background.
354 Available when CONFIG_F2FS_STAT_FS=y.
356 What: /sys/fs/f2fs/<disk>/avg_vblocks
358 Contact: "Hridya Valsaraju" <hridya@google.com>
359 Description: Average number of valid blocks.
360 Available when CONFIG_F2FS_STAT_FS=y.
362 What: /sys/fs/f2fs/<disk>/mounted_time_sec
364 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
365 Description: Show the mounted time in secs of this partition.
367 What: /sys/fs/f2fs/<disk>/data_io_flag
369 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
370 Description: Give a way to attach REQ_META|FUA to data writes
371 given temperature-based bits. Now the bits indicate:
373 +-------------------+-------------------+
374 | REQ_META | REQ_FUA |
375 +------+------+-----+------+------+-----+
376 | 5 | 4 | 3 | 2 | 1 | 0 |
377 +------+------+-----+------+------+-----+
378 | Cold | Warm | Hot | Cold | Warm | Hot |
379 +------+------+-----+------+------+-----+
381 What: /sys/fs/f2fs/<disk>/node_io_flag
383 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
384 Description: Give a way to attach REQ_META|FUA to node writes
385 given temperature-based bits. Now the bits indicate:
387 +-------------------+-------------------+
388 | REQ_META | REQ_FUA |
389 +------+------+-----+------+------+-----+
390 | 5 | 4 | 3 | 2 | 1 | 0 |
391 +------+------+-----+------+------+-----+
392 | Cold | Warm | Hot | Cold | Warm | Hot |
393 +------+------+-----+------+------+-----+
395 What: /sys/fs/f2fs/<disk>/iostat_period_ms
397 Contact: "Daeho Jeong" <daehojeong@google.com>
398 Description: Give a way to change iostat_period time. 3secs by default.
399 The new iostat trace gives stats gap given the period.
400 What: /sys/fs/f2fs/<disk>/max_io_bytes
402 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
403 Description: This gives a control to limit the bio size in f2fs.
404 Default is zero, which will follow underlying block layer limit,
405 whereas, if it has a certain bytes value, f2fs won't submit a
406 bio larger than that size.
408 What: /sys/fs/f2fs/<disk>/stat/sb_status
410 Contact: "Chao Yu" <yuchao0@huawei.com>
411 Description: Show status of f2fs superblock in real time.
413 ====== ===================== =================================
414 value sb status macro description
415 0x1 SBI_IS_DIRTY dirty flag for checkpoint
416 0x2 SBI_IS_CLOSE specify unmounting
417 0x4 SBI_NEED_FSCK need fsck.f2fs to fix
418 0x8 SBI_POR_DOING recovery is doing or not
419 0x10 SBI_NEED_SB_WRITE need to recover superblock
420 0x20 SBI_NEED_CP need to checkpoint
421 0x40 SBI_IS_SHUTDOWN shutdown by ioctl
422 0x80 SBI_IS_RECOVERED recovered orphan/data
423 0x100 SBI_CP_DISABLED CP was disabled last mount
424 0x200 SBI_CP_DISABLED_QUICK CP was disabled quickly
425 0x400 SBI_QUOTA_NEED_FLUSH need to flush quota info in CP
426 0x800 SBI_QUOTA_SKIP_FLUSH skip flushing quota in current CP
427 0x1000 SBI_QUOTA_NEED_REPAIR quota file may be corrupted
428 0x2000 SBI_IS_RESIZEFS resizefs is in process
429 ====== ===================== =================================
431 What: /sys/fs/f2fs/<disk>/ckpt_thread_ioprio
433 Contact: "Daeho Jeong" <daehojeong@google.com>
434 Description: Give a way to change checkpoint merge daemon's io priority.
435 Its default value is "be,3", which means "BE" I/O class and
436 I/O priority "3". We can select the class between "rt" and "be",
437 and set the I/O priority within valid range of it. "," delimiter
438 is necessary in between I/O class and priority number.
440 What: /sys/fs/f2fs/<disk>/ovp_segments
442 Contact: "Jaegeuk Kim" <jaegeuk@kernel.org>
443 Description: Shows the number of overprovision segments.
445 What: /sys/fs/f2fs/<disk>/compr_written_block
447 Contact: "Daeho Jeong" <daehojeong@google.com>
448 Description: Show the block count written after compression since mount. Note
449 that when the compressed blocks are deleted, this count doesn't
450 decrease. If you write "0" here, you can initialize
451 compr_written_block and compr_saved_block to "0".
453 What: /sys/fs/f2fs/<disk>/compr_saved_block
455 Contact: "Daeho Jeong" <daehojeong@google.com>
456 Description: Show the saved block count with compression since mount. Note
457 that when the compressed blocks are deleted, this count doesn't
458 decrease. If you write "0" here, you can initialize
459 compr_written_block and compr_saved_block to "0".
461 What: /sys/fs/f2fs/<disk>/compr_new_inode
463 Contact: "Daeho Jeong" <daehojeong@google.com>
464 Description: Show the count of inode newly enabled for compression since mount.
465 Note that when the compression is disabled for the files, this count
466 doesn't decrease. If you write "0" here, you can initialize
467 compr_new_inode to "0".
469 What: /sys/fs/f2fs/<disk>/atgc_candidate_ratio
471 Contact: "Chao Yu" <yuchao0@huawei.com>
472 Description: When ATGC is on, it controls candidate ratio in order to limit total
473 number of potential victim in all candidates, the value should be in
474 range of [0, 100], by default it was initialized as 20(%).
476 What: /sys/fs/f2fs/<disk>/atgc_candidate_count
478 Contact: "Chao Yu" <yuchao0@huawei.com>
479 Description: When ATGC is on, it controls candidate count in order to limit total
480 number of potential victim in all candidates, by default it was
481 initialized as 10 (sections).
483 What: /sys/fs/f2fs/<disk>/atgc_age_weight
485 Contact: "Chao Yu" <yuchao0@huawei.com>
486 Description: When ATGC is on, it controls age weight to balance weight proportion
487 in between aging and valid blocks, the value should be in range of
488 [0, 100], by default it was initialized as 60(%).
490 What: /sys/fs/f2fs/<disk>/atgc_age_threshold
492 Contact: "Chao Yu" <yuchao0@huawei.com>
493 Description: When ATGC is on, it controls age threshold to bypass GCing young
494 candidates whose age is not beyond the threshold, by default it was
495 initialized as 604800 seconds (equals to 7 days).