Hi Pengyang, On 02/22, Hou Pengyang wrote: > When no dirty colde segment for fggc ssr, we do NOT set_cold_data.
The get_ssr_segment() finds a victim segment across all the hot/warm/cold data logs. When does this happen? Thanks, > > Signed-off-by: Hou Pengyang <houpengy...@huawei.com> > --- > fs/f2fs/gc.c | 21 ++++++++++++++++++++- > 1 file changed, 20 insertions(+), 1 deletion(-) > > diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c > index 4ee749f..a0eed23 100644 > --- a/fs/f2fs/gc.c > +++ b/fs/f2fs/gc.c > @@ -666,6 +666,25 @@ static void move_encrypted_block(struct inode *inode, > block_t bidx, > f2fs_put_page(page, 1); > } > > +/* > + * If NOT enough dirty cold data segments for fggc, fggc would consume > + * a valuable free segment, which would slow down the fggc procedure, > + * If there are NO COLD dirty segment, we do not set_cold_page. > + */ > +static void fggc_set_cold_data(struct page *page) > +{ > + struct f2fs_sb_info *sbi = F2FS_P_SB(page); > + struct dirty_seglist_info *dirty_i = DIRTY_I(sbi); > + int nr_cold_dirties; > + > + mutex_lock(&dirty_i->seglist_lock); > + nr_cold_dirties = dirty_i->nr_dirty[DIRTY_COLD_DATA]; > + mutex_unlock(&dirty_i->seglist_lock); > + > + if (nr_cold_dirties) > + set_cold_data(page); > + > +} > static void move_data_page(struct inode *inode, block_t bidx, int gc_type, > unsigned int segno, int > off) > { > @@ -706,7 +725,7 @@ static void move_data_page(struct inode *inode, block_t > bidx, int gc_type, > remove_dirty_inode(inode); > } > > - set_cold_data(page); > + fggc_set_cold_data(page); > > err = do_write_data_page(&fio); > if (err == -ENOMEM && is_dirty) { > -- > 2.10.1 > > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > _______________________________________________ > Linux-f2fs-devel mailing list > Linux-f2fs-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel