2019-05-21 18:08:46

by Jaegeuk Kim

[permalink] [raw]
Subject: [PATCH] f2fs: add missing sysfs entries in documentation

This patch cleans up documentation to cover missing sysfs entries.

Signed-off-by: Jaegeuk Kim <[email protected]>
---
Documentation/filesystems/f2fs.txt | 88 +++++++++++++++++++++++++++---
1 file changed, 79 insertions(+), 9 deletions(-)

diff --git a/Documentation/filesystems/f2fs.txt b/Documentation/filesystems/f2fs.txt
index f7b5e4ff0de3..0a0820d10d61 100644
--- a/Documentation/filesystems/f2fs.txt
+++ b/Documentation/filesystems/f2fs.txt
@@ -246,11 +246,14 @@ Files in /sys/fs/f2fs/<devname>
..............................................................................
File Content

- gc_max_sleep_time This tuning parameter controls the maximum sleep
+ gc_urgent_sleep_time This parameter controls sleep time for gc_urgent.
+ 500 ms is set by default. See above gc_urgent.
+
+ gc_min_sleep_time This tuning parameter controls the minimum sleep
time for the garbage collection thread. Time is
in milliseconds.

- gc_min_sleep_time This tuning parameter controls the minimum sleep
+ gc_max_sleep_time This tuning parameter controls the maximum sleep
time for the garbage collection thread. Time is
in milliseconds.

@@ -270,9 +273,6 @@ Files in /sys/fs/f2fs/<devname>
to 1, background thread starts to do GC by given
gc_urgent_sleep_time interval.

- gc_urgent_sleep_time This parameter controls sleep time for gc_urgent.
- 500 ms is set by default. See above gc_urgent.
-
reclaim_segments This parameter controls the number of prefree
segments to be reclaimed. If the number of prefree
segments is larger than the number of segments
@@ -287,7 +287,15 @@ Files in /sys/fs/f2fs/<devname>
checkpoint is triggered, and issued during the
checkpoint. By default, it is disabled with 0.

- trim_sections This parameter controls the number of sections
+ discard_granularity This parameter controls the granularity of discard
+ command size. It will issue discard commands iif
+ the size is larger than given granularity.
+ By default, 16KB.
+
+ reserved_blocks This parameter indicates the number of blocks that
+ f2fs reserves internally for root.
+
+ batched_trim_sections This parameter controls the number of sections
to be trimmed out in batch mode when FITRIM
conducts. 32 sections is set by default.

@@ -309,11 +317,35 @@ Files in /sys/fs/f2fs/<devname>
the number is less than this value, it triggers
in-place-updates.

+ min_seq_blocks This parameter controls the threshold to serialize
+ write IOs issued by multiple threads in parallel.
+
+ min_hot_blocks This parameter controls the threshold to allocate
+ a hot data log for pending data blocks to write.
+
+ min_ssr_section This parameter adds the threshold when deciding
+ SSR block allocation. If this is large, SSR mode
+ will be enabled early.
+
+ ram_thresh This parameter controls the memory footprint used
+ by free nids and cached nat entries. By default,
+ 10 is set, which indicates 10 MB / 1 GB RAM.
+
+ ra_nid_pges When building free nids, F2FS reads NAT blocks
+ ahead for speed up. Default is 0.
+
+ dirty_nats_ratio Given dirty ratio of cached nat entries, F2FS
+ determines flushing them in background.
+
max_victim_search This parameter 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.

+ migration_granularity For large-sized sections, F2FS can stop GC given
+ this granularity instead of reclaiming entire
+ section.
+
dir_level This parameter controls the directory level to
support large directory. If a directory has a
number of files, it can reduce the file lookup
@@ -321,9 +353,47 @@ Files in /sys/fs/f2fs/<devname>
Otherwise, it needs to decrease this value to
reduce the space overhead. The default value is 0.

- ram_thresh This parameter controls the memory footprint used
- by free nids and cached nat entries. By default,
- 10 is set, which indicates 10 MB / 1 GB RAM.
+ cp_interval F2FS tries to do checkpoint periodically, 60 secs
+ by default.
+
+ idle_interval F2FS detects system is idle, if there's no F2FS
+ operations during given interval, 5 secs by
+ default.
+
+ discard_idle_interval F2FS detects the discard thread is idle, given
+ time interval. Default is 5 secs.
+
+ gc_idle_interval F2FS detects the GC thread is idle, given time
+ interval. Default is 5 secs.
+
+ umount_discard_timeout When unmounting the disk, F2FS waits for finishing
+ queued discard commands which can take huge time.
+ This gives time out for it, 5 secs by default.
+
+ iostat_enable This controls to enable/disable iostat in F2FS.
+
+ readdir_ra This enables/disabled readahead in readdir, and
+ default is enabled.
+
+ gc_pin_file_thresh 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.
+
+ extension_list This enables to change extension_list for hot/cold
+ files in runtime.
+
+ inject_rate This controls injection rate of arbitrary faults.
+
+ inject_type This controls injection type of arbitrary faults.
+
+ dirty_segments This shows # of dirty segments.
+
+ lifetime_write_kbytes This shows # of data written to the disk.
+
+ features This shows current features enabled on F2FS.
+
+ current_reserved_blocks This shows # of blocks currently reserved.

================================================================================
USAGE
--
2.19.0.605.g01d371f741-goog



2019-05-22 12:28:33

by Chao Yu

[permalink] [raw]
Subject: Re: [f2fs-dev] [PATCH] f2fs: add missing sysfs entries in documentation

On 2019-5-22 2:06, Jaegeuk Kim wrote:
> This patch cleans up documentation to cover missing sysfs entries.
>
> Signed-off-by: Jaegeuk Kim <[email protected]>
> ---
> Documentation/filesystems/f2fs.txt | 88 +++++++++++++++++++++++++++---
> 1 file changed, 79 insertions(+), 9 deletions(-)
>
> diff --git a/Documentation/filesystems/f2fs.txt b/Documentation/filesystems/f2fs.txt
> index f7b5e4ff0de3..0a0820d10d61 100644
> --- a/Documentation/filesystems/f2fs.txt
> +++ b/Documentation/filesystems/f2fs.txt
> @@ -246,11 +246,14 @@ Files in /sys/fs/f2fs/<devname>
> ..............................................................................
> File Content
>
> - gc_max_sleep_time This tuning parameter controls the maximum sleep
> + gc_urgent_sleep_time This parameter controls sleep time for gc_urgent.
> + 500 ms is set by default. See above gc_urgent.
> +
> + gc_min_sleep_time This tuning parameter controls the minimum sleep
> time for the garbage collection thread. Time is
> in milliseconds.
>
> - gc_min_sleep_time This tuning parameter controls the minimum sleep
> + gc_max_sleep_time This tuning parameter controls the maximum sleep
> time for the garbage collection thread. Time is
> in milliseconds.
>
> @@ -270,9 +273,6 @@ Files in /sys/fs/f2fs/<devname>
> to 1, background thread starts to do GC by given
> gc_urgent_sleep_time interval.
>
> - gc_urgent_sleep_time This parameter controls sleep time for gc_urgent.
> - 500 ms is set by default. See above gc_urgent.
> -
> reclaim_segments This parameter controls the number of prefree
> segments to be reclaimed. If the number of prefree
> segments is larger than the number of segments
> @@ -287,7 +287,15 @@ Files in /sys/fs/f2fs/<devname>
> checkpoint is triggered, and issued during the
> checkpoint. By default, it is disabled with 0.
>
> - trim_sections This parameter controls the number of sections
> + discard_granularity This parameter controls the granularity of discard
> + command size. It will issue discard commands iif
> + the size is larger than given granularity.
> + By default, 16KB.

By default: 16KB, Unit: 4KB, Maxsize: 512

> +
> + reserved_blocks This parameter indicates the number of blocks that
> + f2fs reserves internally for root.
> +
> + batched_trim_sections This parameter controls the number of sections
> to be trimmed out in batch mode when FITRIM
> conducts. 32 sections is set by default.
>
> @@ -309,11 +317,35 @@ Files in /sys/fs/f2fs/<devname>
> the number is less than this value, it triggers
> in-place-updates.
>
> + min_seq_blocks This parameter controls the threshold to serialize
> + write IOs issued by multiple threads in parallel.
> +
> + min_hot_blocks This parameter controls the threshold to allocate
> + a hot data log for pending data blocks to write.
> +
> + min_ssr_section This parameter adds the threshold when deciding

min_ssr_sections

> + SSR block allocation. If this is large, SSR mode
> + will be enabled early.
> +
> + ram_thresh This parameter controls the memory footprint used
> + by free nids and cached nat entries. By default,
> + 10 is set, which indicates 10 MB / 1 GB RAM.
> +
> + ra_nid_pges When building free nids, F2FS reads NAT blocks

ra_nid_pages

> + ahead for speed up. Default is 0.
> +
> + dirty_nats_ratio Given dirty ratio of cached nat entries, F2FS
> + determines flushing them in background.
> +
> max_victim_search This parameter 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.
>
> + migration_granularity For large-sized sections, F2FS can stop GC given
> + this granularity instead of reclaiming entire
> + section.
> +
> dir_level This parameter controls the directory level to
> support large directory. If a directory has a
> number of files, it can reduce the file lookup
> @@ -321,9 +353,47 @@ Files in /sys/fs/f2fs/<devname>
> Otherwise, it needs to decrease this value to
> reduce the space overhead. The default value is 0.
>
> - ram_thresh This parameter controls the memory footprint used
> - by free nids and cached nat entries. By default,
> - 10 is set, which indicates 10 MB / 1 GB RAM.
> + cp_interval F2FS tries to do checkpoint periodically, 60 secs
> + by default.
> +
> + idle_interval F2FS detects system is idle, if there's no F2FS
> + operations during given interval, 5 secs by
> + default.
> +
> + discard_idle_interval F2FS detects the discard thread is idle, given
> + time interval. Default is 5 secs.
> +
> + gc_idle_interval F2FS detects the GC thread is idle, given time
> + interval. Default is 5 secs.
> +
> + umount_discard_timeout When unmounting the disk, F2FS waits for finishing
> + queued discard commands which can take huge time.
> + This gives time out for it, 5 secs by default.
> +
> + iostat_enable This controls to enable/disable iostat in F2FS.
> +
> + readdir_ra This enables/disabled readahead in readdir, and

readahead of sub-inodes in readdir?

> + default is enabled.
> +
> + gc_pin_file_thresh 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.
> +
> + extension_list This enables to change extension_list for hot/cold
> + files in runtime.
> +
> + inject_rate This controls injection rate of arbitrary faults.
> +
> + inject_type This controls injection type of arbitrary faults.
> +
> + dirty_segments This shows # of dirty segments.
> +
> + lifetime_write_kbytes This shows # of data written to the disk.
> +
> + features This shows current features enabled on F2FS.
> +
> + current_reserved_blocks This shows # of blocks currently reserved.

Will be better to stay with "reserved_blocks".

Thanks,

>
> ================================================================================
> USAGE
>

2019-05-22 17:53:38

by Jaegeuk Kim

[permalink] [raw]
Subject: Re: [PATCH v2] f2fs: add missing sysfs entries in documentation

This patch cleans up documentation to cover missing sysfs entries.

Signed-off-by: Jaegeuk Kim <[email protected]>
---
v2 from v1:
- fix some typos and adjust suggestions

Documentation/filesystems/f2fs.txt | 89 +++++++++++++++++++++++++++---
1 file changed, 80 insertions(+), 9 deletions(-)

diff --git a/Documentation/filesystems/f2fs.txt b/Documentation/filesystems/f2fs.txt
index f7b5e4ff0de3..e4139af88d78 100644
--- a/Documentation/filesystems/f2fs.txt
+++ b/Documentation/filesystems/f2fs.txt
@@ -246,11 +246,14 @@ Files in /sys/fs/f2fs/<devname>
..............................................................................
File Content

- gc_max_sleep_time This tuning parameter controls the maximum sleep
+ gc_urgent_sleep_time This parameter controls sleep time for gc_urgent.
+ 500 ms is set by default. See above gc_urgent.
+
+ gc_min_sleep_time This tuning parameter controls the minimum sleep
time for the garbage collection thread. Time is
in milliseconds.

- gc_min_sleep_time This tuning parameter controls the minimum sleep
+ gc_max_sleep_time This tuning parameter controls the maximum sleep
time for the garbage collection thread. Time is
in milliseconds.

@@ -270,9 +273,6 @@ Files in /sys/fs/f2fs/<devname>
to 1, background thread starts to do GC by given
gc_urgent_sleep_time interval.

- gc_urgent_sleep_time This parameter controls sleep time for gc_urgent.
- 500 ms is set by default. See above gc_urgent.
-
reclaim_segments This parameter controls the number of prefree
segments to be reclaimed. If the number of prefree
segments is larger than the number of segments
@@ -287,7 +287,16 @@ Files in /sys/fs/f2fs/<devname>
checkpoint is triggered, and issued during the
checkpoint. By default, it is disabled with 0.

- trim_sections This parameter controls the number of sections
+ discard_granularity This parameter controls the granularity of discard
+ command size. It will issue discard commands iif
+ the size is larger than given granularity. Its
+ unit size is 4KB, and 4 (=16KB) is set by default.
+ The maximum value is 128 (=512KB).
+
+ reserved_blocks This parameter indicates the number of blocks that
+ f2fs reserves internally for root.
+
+ batched_trim_sections This parameter controls the number of sections
to be trimmed out in batch mode when FITRIM
conducts. 32 sections is set by default.

@@ -309,11 +318,35 @@ Files in /sys/fs/f2fs/<devname>
the number is less than this value, it triggers
in-place-updates.

+ min_seq_blocks This parameter controls the threshold to serialize
+ write IOs issued by multiple threads in parallel.
+
+ min_hot_blocks This parameter controls the threshold to allocate
+ a hot data log for pending data blocks to write.
+
+ min_ssr_sections This parameter adds the threshold when deciding
+ SSR block allocation. If this is large, SSR mode
+ will be enabled early.
+
+ ram_thresh This parameter controls the memory footprint used
+ by free nids and cached nat entries. By default,
+ 10 is set, which indicates 10 MB / 1 GB RAM.
+
+ ra_nid_pages When building free nids, F2FS reads NAT blocks
+ ahead for speed up. Default is 0.
+
+ dirty_nats_ratio Given dirty ratio of cached nat entries, F2FS
+ determines flushing them in background.
+
max_victim_search This parameter 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.

+ migration_granularity For large-sized sections, F2FS can stop GC given
+ this granularity instead of reclaiming entire
+ section.
+
dir_level This parameter controls the directory level to
support large directory. If a directory has a
number of files, it can reduce the file lookup
@@ -321,9 +354,47 @@ Files in /sys/fs/f2fs/<devname>
Otherwise, it needs to decrease this value to
reduce the space overhead. The default value is 0.

- ram_thresh This parameter controls the memory footprint used
- by free nids and cached nat entries. By default,
- 10 is set, which indicates 10 MB / 1 GB RAM.
+ cp_interval F2FS tries to do checkpoint periodically, 60 secs
+ by default.
+
+ idle_interval F2FS detects system is idle, if there's no F2FS
+ operations during given interval, 5 secs by
+ default.
+
+ discard_idle_interval F2FS detects the discard thread is idle, given
+ time interval. Default is 5 secs.
+
+ gc_idle_interval F2FS detects the GC thread is idle, given time
+ interval. Default is 5 secs.
+
+ umount_discard_timeout When unmounting the disk, F2FS waits for finishing
+ queued discard commands which can take huge time.
+ This gives time out for it, 5 secs by default.
+
+ iostat_enable This controls to enable/disable iostat in F2FS.
+
+ readdir_ra This enables/disabled readahead of inode blocks
+ in readdir, and default is enabled.
+
+ gc_pin_file_thresh 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.
+
+ extension_list This enables to change extension_list for hot/cold
+ files in runtime.
+
+ inject_rate This controls injection rate of arbitrary faults.
+
+ inject_type This controls injection type of arbitrary faults.
+
+ dirty_segments This shows # of dirty segments.
+
+ lifetime_write_kbytes This shows # of data written to the disk.
+
+ features This shows current features enabled on F2FS.
+
+ reserved_blocks This shows # of blocks currently reserved.

================================================================================
USAGE
--
2.19.0.605.g01d371f741-goog

2019-05-23 13:23:58

by Chao Yu

[permalink] [raw]
Subject: Re: [f2fs-dev] [PATCH v2] f2fs: add missing sysfs entries in documentation

On 2019-5-23 1:50, Jaegeuk Kim wrote:
> This patch cleans up documentation to cover missing sysfs entries.
>
> Signed-off-by: Jaegeuk Kim <[email protected]>

Reviewed-by: Chao Yu <[email protected]>

> + reserved_blocks This parameter indicates the number of blocks that
> + f2fs reserves internally for root.
> +

I mean we can move below entry here.

current_reserved_blocks This shows # of blocks currently reserved.

> + reserved_blocks This shows # of blocks currently reserved.

Thanks,

2019-05-23 14:09:57

by Jaegeuk Kim

[permalink] [raw]
Subject: Re: [f2fs-dev] [PATCH v2] f2fs: add missing sysfs entries in documentation

On 05/23, Chao Yu wrote:
> On 2019-5-23 1:50, Jaegeuk Kim wrote:
> > This patch cleans up documentation to cover missing sysfs entries.
> >
> > Signed-off-by: Jaegeuk Kim <[email protected]>
>
> Reviewed-by: Chao Yu <[email protected]>
>
> > + reserved_blocks This parameter indicates the number of blocks that
> > + f2fs reserves internally for root.
> > +
>
> I mean we can move below entry here.

Ah, I'd like to keep the order defined in sysfs.c.

>
> current_reserved_blocks This shows # of blocks currently reserved.
>
> > + reserved_blocks This shows # of blocks currently reserved.
>
> Thanks,

2019-05-23 14:17:15

by Chao Yu

[permalink] [raw]
Subject: Re: [f2fs-dev] [PATCH v2] f2fs: add missing sysfs entries in documentation

On 2019-5-23 22:06, Jaegeuk Kim wrote:
> On 05/23, Chao Yu wrote:
>> On 2019-5-23 1:50, Jaegeuk Kim wrote:
>>> This patch cleans up documentation to cover missing sysfs entries.
>>>
>>> Signed-off-by: Jaegeuk Kim <[email protected]>
>>
>> Reviewed-by: Chao Yu <[email protected]>
>>
>>> + reserved_blocks This parameter indicates the number of blocks that
>>> + f2fs reserves internally for root.
>>> +
>>
>> I mean we can move below entry here.
>
> Ah, I'd like to keep the order defined in sysfs.c.

No problem. :)

Thanks,

>
>>
>> current_reserved_blocks This shows # of blocks currently reserved.
>>
>>> + reserved_blocks This shows # of blocks currently reserved.
>>
>> Thanks,