Received: by 10.223.164.202 with SMTP id h10csp385131wrb; Fri, 17 Nov 2017 02:12:57 -0800 (PST) X-Google-Smtp-Source: AGs4zMbGG6aHYAZuYj5uIiEmPGTQ4eVvF4YYSMzKQV8JGN352i5YIL78GxKLBE/vlP0kx/sk3WYS X-Received: by 10.84.174.1 with SMTP id q1mr4869434plb.220.1510913577089; Fri, 17 Nov 2017 02:12:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1510913577; cv=none; d=google.com; s=arc-20160816; b=mJ3hvDOAvxC21Ql2uwH/0L2tkwGmoheUnYgxfSKTGk8KI142gozWRxKH9aD11yNavb IM1bxCzmithPvsc0XXz662N6GzAYsbluPi88QZbm6+3+z9DVgBIhnvrhIceMPrPiziBI s+IY/R2F83Q0Fa+fRbohZEkOFPKvw+3Qa+RAK12hdebsBbQ2anMe9ggQxYDaKICk2U1J OknJgJDXklpA+IzfpK1QLgxLpGUt+HDPdY9h5vxJ6rQPHUq26rGEUAUeaA/gGRzo8fKZ kiKBeIQNwSs/MPl9kfJeclmioAed2QUjY39F/X62mO0ycQGh3Mac1WutTw5jLK/LPWpj 9jcg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:arc-authentication-results; bh=iJyHsIcr1kTdZOWWxNC67GIxzgVe6ot7Em/mRqxphxM=; b=xG7qbSZpNZ9Blw1QCEjdxOiG3YXvDCqRCNVS8JF3Rji7zkxt1jNXiTUh/xZI/oYNJW FVHIj5JAS2iqxpdUG7bQG3jeUsmMvNgxHGmM/E+PG79WRynuzx5lEXYw0r5vlDK8Etbk euZNwAa9TKK6fi0suIK3d4V0ymFjO24pluHRZHZxNxV/qtCAnVj7VR4g3jLNAcfZavd3 DxtSlTub7+fXVobVWVWa7G5GvQ5vUuusyH6Tz+5oHAfdFINFzBpduqILkFD86seB9Kqb sn3V/LLfZlHk6/6U7S7eKzv5M+nj+Ch2Da/4LBpomMqRarFP1N+QkIrY55hB6k9pbpwL orfQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a87si2776597pfe.222.2017.11.17.02.12.39; Fri, 17 Nov 2017 02:12:57 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755957AbdKQCuY (ORCPT + 91 others); Thu, 16 Nov 2017 21:50:24 -0500 Received: from szxga04-in.huawei.com ([45.249.212.190]:10937 "EHLO szxga04-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755539AbdKQCuP (ORCPT ); Thu, 16 Nov 2017 21:50:15 -0500 Received: from 172.30.72.60 (EHLO DGGEMS408-HUB.china.huawei.com) ([172.30.72.60]) by dggrg04-dlp.huawei.com (MOS 4.4.6-GA FastPath queued) with ESMTP id DKZ64349; Fri, 17 Nov 2017 10:49:55 +0800 (CST) Received: from [127.0.0.1] (10.134.22.195) by DGGEMS408-HUB.china.huawei.com (10.3.19.208) with Microsoft SMTP Server id 14.3.361.1; Fri, 17 Nov 2017 10:49:45 +0800 Subject: Re: [PATCH] f2fs: let f2fs also gc atomic file to avoid loop gc To: Yunlong Song , , , CC: , , , , References: <1510108497-58331-1-git-send-email-yunlong.song@huawei.com> <239f770e-53f0-69c6-fc1d-67aeb9a1065a@huawei.com> From: Chao Yu Message-ID: Date: Fri, 17 Nov 2017 10:49:48 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="windows-1252" Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [10.134.22.195] X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A090201.5A0E4E53.0062,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0, ip=0.0.0.0, so=2014-11-16 11:51:01, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: 98205335c7ba22f4eaa5a6bd33a4556d Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2017/11/17 8:58, Yunlong Song wrote: > Is there any problem if just deleting the judgement condition in this patch? IIRC, dirty node comes from data segment GC can be writebacked & flushed during atomic commit, but related data will still be in inner bio cache, after later SPOR, data would be inconsistent. Thanks, > > On 2017/11/8 17:28, Chao Yu wrote: >> On 2017/11/8 10:34, Yunlong Song wrote: >>> If some files are opened with atomic flag and have not commited yet, at >>> the same time, if all the target victim segments have at least one page >>> of these atomic files, then f2fs gc will fail to do gc and hangs in the >>> process of go to gc_more, since gc_date_segment will not move any data >>> and get_valid_blocks will never be 0, then do_garbage_collect will >>> always return 0. >> Oh, I added this judgment condition to avoid ruining atomic write by data >> GC, could we find another way to solve this issue? BTW, if there is direct >> IO, we will also skip data segment GC. >> >> Thanks, >> >>> Signed-off-by: Yunlong Song >>> --- >>> fs/f2fs/gc.c | 6 ------ >>> 1 file changed, 6 deletions(-) >>> >>> diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c >>> index 5d5bba4..3fdcd04 100644 >>> --- a/fs/f2fs/gc.c >>> +++ b/fs/f2fs/gc.c >>> @@ -621,9 +621,6 @@ static void move_data_block(struct inode *inode, block_t bidx, >>> if (!check_valid_map(F2FS_I_SB(inode), segno, off)) >>> goto out; >>> >>> - if (f2fs_is_atomic_file(inode)) >>> - goto out; >>> - >>> set_new_dnode(&dn, inode, NULL, NULL, 0); >>> err = get_dnode_of_data(&dn, bidx, LOOKUP_NODE); >>> if (err) >>> @@ -718,9 +715,6 @@ static void move_data_page(struct inode *inode, block_t bidx, int gc_type, >>> if (!check_valid_map(F2FS_I_SB(inode), segno, off)) >>> goto out; >>> >>> - if (f2fs_is_atomic_file(inode)) >>> - goto out; >>> - >>> if (gc_type == BG_GC) { >>> if (PageWriteback(page)) >>> goto out; >>> >> >> . >> > From 1583489735868398248@xxx Wed Nov 08 09:31:31 +0000 2017 X-GM-THRID: 1583469797370502209 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread