From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751327AbdBXR6b (ORCPT ); Fri, 24 Feb 2017 12:58:31 -0500 Received: from mail.kernel.org ([198.145.29.136]:35886 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751163AbdBXR6Z (ORCPT ); Fri, 24 Feb 2017 12:58:25 -0500 Date: Fri, 24 Feb 2017 09:58:21 -0800 From: Jaegeuk Kim To: Yunlong Song Cc: Chao Yu , chao@kernel.org, sylinux@163.com, miaoxie@huawei.com, bintian.wang@huawei.com, linux-fsdevel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org Subject: Re: [PATCH 3/3] f2fs: provide more chance for node and data to get ssr segment Message-ID: <20170224175821.GB39009@jaegeuk.local> References: <1487767851-819-1-git-send-email-yunlong.song@huawei.com> <1487767851-819-3-git-send-email-yunlong.song@huawei.com> <20170223011754.GH4003@jaegeuk.local> <3d4b064b-817f-402f-3eb5-df3ec7c06b44@huawei.com> <58AFFA91.2030904@huawei.com> <3d5479f0-8b52-97df-707b-816d1a7a1a44@huawei.com> <58B01BCF.1050207@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <58B01BCF.1050207@huawei.com> User-Agent: Mutt/1.7.0 (2016-08-17) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/24, Yunlong Song wrote: > Hi, Chao, > > Not looks good to me, since there is some case your code does not include: > if type is CURSEG_HOT_DATA, and if get_victim also returns 0 for both CURSEG_HOT_DATA and > CURSEG_WARM_DATA, then i will be -1 and pass to get_victim in your code. So I still suggest > my original patch attached below. Why does i become -1? > > On 2017/2/24 18:47, Chao Yu wrote: > > On 2017/2/24 17:19, Yunlong Song wrote: > >> Hi Jaegeuk and Chao, > >> > >> How about the question I pointed out in last mail: > >> Why not take "neighboring temperature" for ssr? For example, if type == CURSEG_COLD_DATA, > >> the new patch selects CURSEG_HOT_DATA first, why not select CURSEG_WARM_DATA first? > >> The patch I sent ensure this "neighboring temperature" for ssr. This is to reduce the influence of > >> mixing different levels of hot/code node types. > > Agreed, I sent one patch for changing the policy of SSR, how do you think of it? > > > > Thanks, > > > >> On 2017/2/24 17:05, Chao Yu wrote: > >>> Hi Jaegeuk, > >>> > >>> Reviewed-by: Chao Yu > >>> > >>> For your attached two patches. > >>> > >>> Thanks, > >>> > >>> On 2017/2/23 9:17, Jaegeuk Kim wrote: > >>>> Hi Yunlong, > >>>> > >>>> I've been testing the similar patches as I attached. > >>>> > >>>> Thanks, > >>>> > >>>> On 02/22, Yunlong Song wrote: > >>>>> Signed-off-by: Yunlong Song > >>>>> --- > >>>>> fs/f2fs/segment.c | 9 +++++++++ > >>>>> 1 file changed, 9 insertions(+) > >>>>> > >>>>> diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c > >>>>> index 9d13743..5fe71b9 100644 > >>>>> --- a/fs/f2fs/segment.c > >>>>> +++ b/fs/f2fs/segment.c > >>>>> @@ -1540,12 +1540,17 @@ static int get_ssr_segment(struct f2fs_sb_info *sbi, int type) > >>>>> { > >>>>> struct curseg_info *curseg = CURSEG_I(sbi, type); > >>>>> const struct victim_selection *v_ops = DIRTY_I(sbi)->v_ops; > >>>>> + int old_type = type; > >>>>> > >>>>> if (IS_NODESEG(type)) { > >>>>> for (; type >= CURSEG_HOT_NODE; type--) > >>>>> if (v_ops->get_victim(sbi, &(curseg)->next_segno, > >>>>> BG_GC, type, SSR)) > >>>>> return 1; > >>>>> + for (type = old_type + 1; type <= CURSEG_COLD_NODE; type++) > >>>>> + if (v_ops->get_victim(sbi, &(curseg)->next_segno, > >>>>> + BG_GC, type, SSR)) > >>>>> + return 1; > >>>>> return 0; > >>>>> } > >>>>> > >>>>> @@ -1554,6 +1559,10 @@ static int get_ssr_segment(struct f2fs_sb_info *sbi, int type) > >>>>> if (v_ops->get_victim(sbi, &(curseg)->next_segno, > >>>>> BG_GC, type, SSR)) > >>>>> return 1; > >>>>> + for (type = old_type + 1; type <= CURSEG_COLD_DATA; type++) > >>>>> + if (v_ops->get_victim(sbi, &(curseg)->next_segno, > >>>>> + BG_GC, type, SSR)) > >>>>> + return 1; > >>>>> return 0; > >>>>> } > >>>>> > >>>>> -- > >>>>> 1.8.5.2 > >>> . > >>> > >> > > > > . > > > > > -- > Thanks, > Yunlong Song >