Hi Yunlong, On 2018/1/29 11:37, Yunlong Song wrote: > Commit 7a20b8a61eff81bdb7097a578752a74860e9d142 ("f2fs: allocate node > and hot data in the beginning of partition") introduces another mount > option, heap, to reset it back. But it does not do anything for heap > mode, so fix it.
I think Jaegeuk did three things in that patch: a) add missing heap mount option handling in ->show_options. b) set noheap by default. c) change allocation policy to the one that allocate hotdata & nodes in the front of main are intensively. They could be separated, independent, and I don't see such intention that we can only use c) the new introduced allocation policy in noheap mode. Anyway, I think Jaegeuk can help to double check that. Thanks, > > Signed-off-by: Yunlong Song <yunlong.s...@huawei.com> > --- > fs/f2fs/gc.c | 5 +++-- > fs/f2fs/segment.c | 3 ++- > 2 files changed, 5 insertions(+), 3 deletions(-) > > diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c > index aa720cc..b9d93fd 100644 > --- a/fs/f2fs/gc.c > +++ b/fs/f2fs/gc.c > @@ -191,8 +191,9 @@ static void select_policy(struct f2fs_sb_info *sbi, int > gc_type, > if (gc_type != FG_GC && p->max_search > sbi->max_victim_search) > p->max_search = sbi->max_victim_search; > > - /* let's select beginning hot/small space first */ > - if (type == CURSEG_HOT_DATA || IS_NODESEG(type)) > + /* let's select beginning hot/small space first in no_heap mode*/ > + if (test_opt(sbi, NOHEAP) && > + (type == CURSEG_HOT_DATA || IS_NODESEG(type))) > p->offset = 0; > else > p->offset = SIT_I(sbi)->last_victim[p->gc_mode]; > diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c > index e5739ce..77a48c4 100644 > --- a/fs/f2fs/segment.c > +++ b/fs/f2fs/segment.c > @@ -2167,7 +2167,8 @@ static unsigned int __get_next_segno(struct > f2fs_sb_info *sbi, int type) > if (sbi->segs_per_sec != 1) > return CURSEG_I(sbi, type)->segno; > > - if (type == CURSEG_HOT_DATA || IS_NODESEG(type)) > + if (test_opt(sbi, NOHEAP) && > + (type == CURSEG_HOT_DATA || IS_NODESEG(type))) > return 0; > > if (SIT_I(sbi)->last_victim[ALLOC_NEXT]) >