mirror of https://gitee.com/openkylin/linux.git
f2fs: change reclaim rate in percentage
It is more reasonable to determine the reclaiming rate of prefree segments according to the volume size, which is set to 5% by default. For example, if the volume is 128GB, the prefree segments are reclaimed when the number reaches to 6.4GB. Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
This commit is contained in:
parent
9179682591
commit
58c410351e
|
@ -169,9 +169,11 @@ Files in /sys/fs/f2fs/<devname>
|
|||
|
||||
reclaim_segments This parameter controls the number of prefree
|
||||
segments to be reclaimed. If the number of prefree
|
||||
segments is larger than this number, f2fs tries to
|
||||
conduct checkpoint to reclaim the prefree segments
|
||||
to free segments. By default, 100 segments, 200MB.
|
||||
segments is larger than the number of segments
|
||||
in the proportion to the percentage over total
|
||||
volume size, f2fs tries to conduct checkpoint to
|
||||
reclaim the prefree segments to free segments.
|
||||
By default, 5% over total # of segments.
|
||||
|
||||
max_small_discards This parameter controls the number of discard
|
||||
commands that consist small blocks less than 2MB.
|
||||
|
|
|
@ -1758,7 +1758,8 @@ int build_segment_manager(struct f2fs_sb_info *sbi)
|
|||
sm_info->ovp_segments = le32_to_cpu(ckpt->overprov_segment_count);
|
||||
sm_info->main_segments = le32_to_cpu(raw_super->segment_count_main);
|
||||
sm_info->ssa_blkaddr = le32_to_cpu(raw_super->ssa_blkaddr);
|
||||
sm_info->rec_prefree_segments = DEF_RECLAIM_PREFREE_SEGMENTS;
|
||||
sm_info->rec_prefree_segments = sm_info->main_segments *
|
||||
DEF_RECLAIM_PREFREE_SEGMENTS / 100;
|
||||
sm_info->ipu_policy = F2FS_IPU_DISABLE;
|
||||
sm_info->min_ipu_util = DEF_MIN_IPU_UTIL;
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#define NULL_SEGNO ((unsigned int)(~0))
|
||||
#define NULL_SECNO ((unsigned int)(~0))
|
||||
|
||||
#define DEF_RECLAIM_PREFREE_SEGMENTS 100 /* 200MB of prefree segments */
|
||||
#define DEF_RECLAIM_PREFREE_SEGMENTS 5 /* 5% over total segments */
|
||||
|
||||
/* L: Logical segment # in volume, R: Relative segment # in main area */
|
||||
#define GET_L2R_SEGNO(free_i, segno) (segno - free_i->start_segno)
|
||||
|
|
Loading…
Reference in New Issue