1What:		/sys/fs/f2fs/<disk>/gc_max_sleep_time
2Date:		July 2013
3Contact:	"Namjae Jeon" <namjae.jeon@samsung.com>
4Description:	Controls the maximum sleep time for gc_thread. Time
5		is in milliseconds.
6
7What:		/sys/fs/f2fs/<disk>/gc_min_sleep_time
8Date:		July 2013
9Contact:	"Namjae Jeon" <namjae.jeon@samsung.com>
10Description:	Controls the minimum sleep time for gc_thread. Time
11		is in milliseconds.
12
13What:		/sys/fs/f2fs/<disk>/gc_no_gc_sleep_time
14Date:		July 2013
15Contact:	"Namjae Jeon" <namjae.jeon@samsung.com>
16Description:	Controls the default sleep time for gc_thread. Time
17		is in milliseconds.
18
19What:		/sys/fs/f2fs/<disk>/gc_idle
20Date:		July 2013
21Contact:	"Namjae Jeon" <namjae.jeon@samsung.com>
22Description:	Controls the victim selection policy for garbage collection.
23		Setting gc_idle = 0(default) will disable this option. Setting:
24
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		===========  ===============================================
30
31What:		/sys/fs/f2fs/<disk>/reclaim_segments
32Date:		October 2013
33Contact:	"Jaegeuk Kim" <jaegeuk.kim@samsung.com>
34Description:	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.
40
41What:		/sys/fs/f2fs/<disk>/main_blkaddr
42Date:		November 2019
43Contact:	"Ramon Pantin" <pantin@google.com>
44Description:
45		 Shows first block address of MAIN area.
46
47What:		/sys/fs/f2fs/<disk>/ipu_policy
48Date:		November 2013
49Contact:	"Jaegeuk Kim" <jaegeuk.kim@samsung.com>
50Description:	Controls the in-place-update policy.
51		updates in f2fs. User can set:
52
53		====  =================
54		0x01  F2FS_IPU_FORCE
55		0x02  F2FS_IPU_SSR
56		0x04  F2FS_IPU_UTIL
57		0x08  F2FS_IPU_SSR_UTIL
58		0x10  F2FS_IPU_FSYNC
59		0x20  F2FS_IPU_ASYNC,
60		0x40  F2FS_IPU_NOCACHE
61		====  =================
62
63		Refer segment.h for details.
64
65What:		/sys/fs/f2fs/<disk>/min_ipu_util
66Date:		November 2013
67Contact:	"Jaegeuk Kim" <jaegeuk.kim@samsung.com>
68Description:	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.
70
71What:		/sys/fs/f2fs/<disk>/min_fsync_blocks
72Date:		September 2014
73Contact:	"Jaegeuk Kim" <jaegeuk@kernel.org>
74Description:	Controls the dirty page count condition for the in-place-update
75		policies.
76
77What:		/sys/fs/f2fs/<disk>/min_seq_blocks
78Date:		August 2018
79Contact:	"Jaegeuk Kim" <jaegeuk@kernel.org>
80Description:	Controls the dirty page count condition for batched sequential
81		writes in writepages.
82
83What:		/sys/fs/f2fs/<disk>/min_hot_blocks
84Date:		March 2017
85Contact:	"Jaegeuk Kim" <jaegeuk@kernel.org>
86Description:	Controls the dirty page count condition for redefining hot data.
87
88What:		/sys/fs/f2fs/<disk>/min_ssr_sections
89Date:		October 2017
90Contact:	"Chao Yu" <yuchao0@huawei.com>
91Description:	Controls the free section threshold to trigger SSR allocation.
92		If this is large, SSR mode will be enabled early.
93
94What:		/sys/fs/f2fs/<disk>/max_small_discards
95Date:		November 2013
96Contact:	"Jaegeuk Kim" <jaegeuk.kim@samsung.com>
97Description:	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.
101
102What:		/sys/fs/f2fs/<disk>/discard_granularity
103Date:		July 2017
104Contact:	"Chao Yu" <yuchao0@huawei.com>
105Description:	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).
109
110What:		/sys/fs/f2fs/<disk>/umount_discard_timeout
111Date:		January 2019
112Contact:	"Jaegeuk Kim" <jaegeuk@kernel.org>
113Description:	Set timeout to issue discard commands during umount.
114	        Default: 5 secs
115
116What:		/sys/fs/f2fs/<disk>/max_victim_search
117Date:		January 2014
118Contact:	"Jaegeuk Kim" <jaegeuk.kim@samsung.com>
119Description:	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.
122
123What:		/sys/fs/f2fs/<disk>/migration_granularity
124Date:		October 2018
125Contact:	"Chao Yu" <yuchao0@huawei.com>
126Description:	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.
130
131What:		/sys/fs/f2fs/<disk>/dir_level
132Date:		March 2014
133Contact:	"Jaegeuk Kim" <jaegeuk.kim@samsung.com>
134Description:	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.
139
140What:		/sys/fs/f2fs/<disk>/ram_thresh
141Date:		March 2014
142Contact:	"Jaegeuk Kim" <jaegeuk.kim@samsung.com>
143Description:	Controls the memory footprint used by free nids and cached
144		nat entries. By default, 1 is set, which indicates
145		10 MB / 1 GB RAM.
146
147What:		/sys/fs/f2fs/<disk>/batched_trim_sections
148Date:		February 2015
149Contact:	"Jaegeuk Kim" <jaegeuk@kernel.org>
150Description:	Controls the trimming rate in batch mode.
151		<deprecated>
152
153What:		/sys/fs/f2fs/<disk>/cp_interval
154Date:		October 2015
155Contact:	"Jaegeuk Kim" <jaegeuk@kernel.org>
156Description:	Controls the checkpoint timing, set to 60 seconds by default.
157
158What:		/sys/fs/f2fs/<disk>/idle_interval
159Date:		January 2016
160Contact:	"Jaegeuk Kim" <jaegeuk@kernel.org>
161Description:	Controls the idle timing of system, if there is no FS operation
162		during given interval.
163		Set to 5 seconds by default.
164
165What:		/sys/fs/f2fs/<disk>/discard_idle_interval
166Date:		September 2018
167Contact:	"Chao Yu" <yuchao0@huawei.com>
168Contact:	"Sahitya Tummala" <stummala@codeaurora.org>
169Description:	Controls the idle timing of discard thread given
170		this time interval.
171		Default is 5 secs.
172
173What:		/sys/fs/f2fs/<disk>/gc_idle_interval
174Date:		September 2018
175Contact:	"Chao Yu" <yuchao0@huawei.com>
176Contact:	"Sahitya Tummala" <stummala@codeaurora.org>
177Description:    Controls the idle timing for gc path. Set to 5 seconds by default.
178
179What:		/sys/fs/f2fs/<disk>/iostat_enable
180Date:		August 2017
181Contact:	"Chao Yu" <yuchao0@huawei.com>
182Description:	Controls to enable/disable IO stat.
183
184What:		/sys/fs/f2fs/<disk>/ra_nid_pages
185Date:		October 2015
186Contact:	"Chao Yu" <chao2.yu@samsung.com>
187Description:	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.
190
191What:		/sys/fs/f2fs/<disk>/dirty_nats_ratio
192Date:		January 2016
193Contact:	"Chao Yu" <chao2.yu@samsung.com>
194Description:	Controls dirty nat entries ratio threshold, if current
195		ratio exceeds configured threshold, checkpoint will
196		be triggered for flushing dirty nat entries.
197
198What:		/sys/fs/f2fs/<disk>/lifetime_write_kbytes
199Date:		January 2016
200Contact:	"Shuoran Liu" <liushuoran@huawei.com>
201Description:	Shows total written kbytes issued to disk.
202
203What:		/sys/fs/f2fs/<disk>/features
204Date:		July 2017
205Contact:	"Jaegeuk Kim" <jaegeuk@kernel.org>
206Description:	Shows all enabled features in current device.
207
208What:		/sys/fs/f2fs/<disk>/inject_rate
209Date:		May 2016
210Contact:	"Sheng Yong" <shengyong1@huawei.com>
211Description:	Controls the injection rate of arbitrary faults.
212
213What:		/sys/fs/f2fs/<disk>/inject_type
214Date:		May 2016
215Contact:	"Sheng Yong" <shengyong1@huawei.com>
216Description:	Controls the injection type of arbitrary faults.
217
218What:		/sys/fs/f2fs/<disk>/dirty_segments
219Date:		October 2017
220Contact:	"Jaegeuk Kim" <jaegeuk@kernel.org>
221Description:	Shows the number of dirty segments.
222
223What:		/sys/fs/f2fs/<disk>/reserved_blocks
224Date:		June 2017
225Contact:	"Chao Yu" <yuchao0@huawei.com>
226Description:	Controls target reserved blocks in system, the threshold
227		is soft, it could exceed current available user space.
228
229What:		/sys/fs/f2fs/<disk>/current_reserved_blocks
230Date:		October 2017
231Contact:	"Yunlong Song" <yunlong.song@huawei.com>
232Contact:	"Chao Yu" <yuchao0@huawei.com>
233Description:	Shows current reserved blocks in system, it may be temporarily
234		smaller than target_reserved_blocks, but will gradually
235		increase to target_reserved_blocks when more free blocks are
236		freed by user later.
237
238What:		/sys/fs/f2fs/<disk>/gc_urgent
239Date:		August 2017
240Contact:	"Jaegeuk Kim" <jaegeuk@kernel.org>
241Description:	Do background GC agressively when set. When gc_urgent = 1,
242		background thread starts to do GC by given gc_urgent_sleep_time
243		interval. When gc_urgent = 2, F2FS will lower the bar of
244		checking idle in order to process outstanding discard commands
245		and GC a little bit aggressively. It is set to 0 by default.
246
247What:		/sys/fs/f2fs/<disk>/gc_urgent_sleep_time
248Date:		August 2017
249Contact:	"Jaegeuk Kim" <jaegeuk@kernel.org>
250Description:	Controls sleep time of GC urgent mode. Set to 500ms by default.
251
252What:		/sys/fs/f2fs/<disk>/readdir_ra
253Date:		November 2017
254Contact:	"Sheng Yong" <shengyong1@huawei.com>
255Description:	Controls readahead inode block in readdir. Enabled by default.
256
257What:		/sys/fs/f2fs/<disk>/gc_pin_file_thresh
258Date:		January 2018
259Contact:	Jaegeuk Kim <jaegeuk@kernel.org>
260Description:	This indicates how many GC can be failed for the pinned
261		file. If it exceeds this, F2FS doesn't guarantee its pinning
262		state. 2048 trials is set by default.
263
264What:		/sys/fs/f2fs/<disk>/extension_list
265Date:		Feburary 2018
266Contact:	"Chao Yu" <yuchao0@huawei.com>
267Description:	Used to control configure extension list:
268		- Query: cat /sys/fs/f2fs/<disk>/extension_list
269		- Add: echo '[h/c]extension' > /sys/fs/f2fs/<disk>/extension_list
270		- Del: echo '[h/c]!extension' > /sys/fs/f2fs/<disk>/extension_list
271		- [h] means add/del hot file extension
272		- [c] means add/del cold file extension
273
274What:		/sys/fs/f2fs/<disk>/unusable
275Date		April 2019
276Contact:	"Daniel Rosenberg" <drosen@google.com>
277Description:	If checkpoint=disable, it displays the number of blocks that
278		are unusable.
279		If checkpoint=enable it displays the enumber of blocks that
280		would be unusable if checkpoint=disable were to be set.
281
282What:		/sys/fs/f2fs/<disk>/encoding
283Date		July 2019
284Contact:	"Daniel Rosenberg" <drosen@google.com>
285Description:	Displays name and version of the encoding set for the filesystem.
286		If no encoding is set, displays (none)
287
288What:		/sys/fs/f2fs/<disk>/free_segments
289Date:		September 2019
290Contact:	"Hridya Valsaraju" <hridya@google.com>
291Description:	Number of free segments in disk.
292
293What:		/sys/fs/f2fs/<disk>/cp_foreground_calls
294Date:		September 2019
295Contact:	"Hridya Valsaraju" <hridya@google.com>
296Description:	Number of checkpoint operations performed on demand. Available when
297		CONFIG_F2FS_STAT_FS=y.
298
299What:		/sys/fs/f2fs/<disk>/cp_background_calls
300Date:		September 2019
301Contact:	"Hridya Valsaraju" <hridya@google.com>
302Description:	Number of checkpoint operations performed in the background to
303		free segments. Available when CONFIG_F2FS_STAT_FS=y.
304
305What:		/sys/fs/f2fs/<disk>/gc_foreground_calls
306Date:		September 2019
307Contact:	"Hridya Valsaraju" <hridya@google.com>
308Description:	Number of garbage collection operations performed on demand.
309		Available when CONFIG_F2FS_STAT_FS=y.
310
311What:		/sys/fs/f2fs/<disk>/gc_background_calls
312Date:		September 2019
313Contact:	"Hridya Valsaraju" <hridya@google.com>
314Description:	Number of garbage collection operations triggered in background.
315		Available when CONFIG_F2FS_STAT_FS=y.
316
317What:		/sys/fs/f2fs/<disk>/moved_blocks_foreground
318Date:		September 2019
319Contact:	"Hridya Valsaraju" <hridya@google.com>
320Description:	Number of blocks moved by garbage collection in foreground.
321		Available when CONFIG_F2FS_STAT_FS=y.
322
323What:		/sys/fs/f2fs/<disk>/moved_blocks_background
324Date:		September 2019
325Contact:	"Hridya Valsaraju" <hridya@google.com>
326Description:	Number of blocks moved by garbage collection in background.
327		Available when CONFIG_F2FS_STAT_FS=y.
328
329What:		/sys/fs/f2fs/<disk>/avg_vblocks
330Date:		September 2019
331Contact:	"Hridya Valsaraju" <hridya@google.com>
332Description:	Average number of valid blocks.
333		Available when CONFIG_F2FS_STAT_FS=y.
334
335What:		/sys/fs/f2fs/<disk>/mounted_time_sec
336Date:		February 2020
337Contact:	"Jaegeuk Kim" <jaegeuk@kernel.org>
338Description:	Show the mounted time in secs of this partition.
339
340What:		/sys/fs/f2fs/<disk>/data_io_flag
341Date:		April 2020
342Contact:	"Jaegeuk Kim" <jaegeuk@kernel.org>
343Description:	Give a way to attach REQ_META|FUA to data writes
344		given temperature-based bits. Now the bits indicate:
345
346		+-------------------+-------------------+
347		|      REQ_META     |      REQ_FUA      |
348		+------+------+-----+------+------+-----+
349		|    5 |    4 |   3 |    2 |    1 |   0 |
350		+------+------+-----+------+------+-----+
351		| Cold | Warm | Hot | Cold | Warm | Hot |
352		+------+------+-----+------+------+-----+
353
354What:		/sys/fs/f2fs/<disk>/node_io_flag
355Date:		June 2020
356Contact:	"Jaegeuk Kim" <jaegeuk@kernel.org>
357Description:	Give a way to attach REQ_META|FUA to node writes
358		given temperature-based bits. Now the bits indicate:
359
360		+-------------------+-------------------+
361		|      REQ_META     |      REQ_FUA      |
362		+------+------+-----+------+------+-----+
363		|    5 |    4 |   3 |    2 |    1 |   0 |
364		+------+------+-----+------+------+-----+
365		| Cold | Warm | Hot | Cold | Warm | Hot |
366		+------+------+-----+------+------+-----+
367
368What:		/sys/fs/f2fs/<disk>/iostat_period_ms
369Date:		April 2020
370Contact:	"Daeho Jeong" <daehojeong@google.com>
371Description:	Give a way to change iostat_period time. 3secs by default.
372		The new iostat trace gives stats gap given the period.
373What:		/sys/fs/f2fs/<disk>/max_io_bytes
374Date:		December 2020
375Contact:	"Jaegeuk Kim" <jaegeuk@kernel.org>
376Description:	This gives a control to limit the bio size in f2fs.
377		Default is zero, which will follow underlying block layer limit,
378		whereas, if it has a certain bytes value, f2fs won't submit a
379		bio larger than that size.
380
381What:		/sys/fs/f2fs/<disk>/stat/sb_status
382Date:		December 2020
383Contact:	"Chao Yu" <yuchao0@huawei.com>
384Description:	Show status of f2fs superblock in real time.
385
386		====== ===================== =================================
387		value  sb status macro       description
388		0x1    SBI_IS_DIRTY          dirty flag for checkpoint
389		0x2    SBI_IS_CLOSE          specify unmounting
390		0x4    SBI_NEED_FSCK         need fsck.f2fs to fix
391		0x8    SBI_POR_DOING         recovery is doing or not
392		0x10   SBI_NEED_SB_WRITE     need to recover superblock
393		0x20   SBI_NEED_CP           need to checkpoint
394		0x40   SBI_IS_SHUTDOWN       shutdown by ioctl
395		0x80   SBI_IS_RECOVERED      recovered orphan/data
396		0x100  SBI_CP_DISABLED       CP was disabled last mount
397		0x200  SBI_CP_DISABLED_QUICK CP was disabled quickly
398		0x400  SBI_QUOTA_NEED_FLUSH  need to flush quota info in CP
399		0x800  SBI_QUOTA_SKIP_FLUSH  skip flushing quota in current CP
400		0x1000 SBI_QUOTA_NEED_REPAIR quota file may be corrupted
401		0x2000 SBI_IS_RESIZEFS       resizefs is in process
402		====== ===================== =================================
403
404What:		/sys/fs/f2fs/<disk>/ckpt_thread_ioprio
405Date:		January 2021
406Contact:	"Daeho Jeong" <daehojeong@google.com>
407Description:	Give a way to change checkpoint merge daemon's io priority.
408		Its default value is "be,3", which means "BE" I/O class and
409		I/O priority "3". We can select the class between "rt" and "be",
410		and set the I/O priority within valid range of it. "," delimiter
411		is necessary in between I/O class and priority number.
412