Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp1700590ybl; Sat, 31 Aug 2019 00:24:21 -0700 (PDT) X-Google-Smtp-Source: APXvYqyUXbIlDdYtqzSxaBK8nJPHH2KqgGH7wBIaO3nU4LCWQJG2FPa+WWmDyoDWDpMZFxZTE7Nn X-Received: by 2002:aa7:8602:: with SMTP id p2mr22639591pfn.138.1567236261012; Sat, 31 Aug 2019 00:24:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567236261; cv=none; d=google.com; s=arc-20160816; b=UWWIQpuO1EQOMU653q1N/7Asxh3Z1/V+dZ7FWVYE7u2TaxusAI1AhNvzb8qrB2yww1 S0gBQzjB+UVX+KLcWgHlpKZI6JIzTZeuC2+K64ETyRx8OzrZI/J3NpkS5grVKqogQxmI k8esK+2xfBfS7hSscKM7jiB88+LoLhhzQovuVJf6tPv2JS6LwLMmFcK0tyIbmAZFLcJH Yu9GrXmjyHEZg1olMN8CW9O0FmbNBMwv+RrKF3/CQf3aERdJSmcJtzowWIqGyc/xD/SS HF+z6FH9LCQeI39jpdWW1rlg/TlCyH7ZtLoW/zaiguVjIjwiQi3bjfOxg6DQeADe4gVg 2Y8w== 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; bh=qZ5rIxwoUrI8g6hb2zYL9BeV/o0so0xZ0h9Vq6n6Yu4=; b=JoiO8f1TIcaw1bJjSxZJ0rykY8kcXg8dPeSb2vCn6CsH7J+/4kVNfmReAVpFStOBsq ag0O8Sx8ALLmKS7iMGf5MpJQN9emckr9VmBLGi3fBncGKPwCtHglVqpi2y0pM+dr3egF K4MO27WA8EMhxO6FQtauiDEve5hcHYE1xsP/Zon/A2ZhXWKRERspsYd7qeT1cGxBk8ie /5wTZiQd6W/HTFEHrV3BnqItLexmPAjsBcdtwndUcgHkupkpJrSdxrxO9n0hPM45iFec Lt/jQ3ik8WvKpVObx8zgA1TgWho8ILiohDm0OKiN2GvLAiMQwgu9Ac0YfYzw/ycctQ8h ytwQ== 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 70si6784461ple.282.2019.08.31.00.24.04; Sat, 31 Aug 2019 00:24:21 -0700 (PDT) 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 S1726116AbfHaHXP (ORCPT + 99 others); Sat, 31 Aug 2019 03:23:15 -0400 Received: from szxga07-in.huawei.com ([45.249.212.35]:46324 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725899AbfHaHXP (ORCPT ); Sat, 31 Aug 2019 03:23:15 -0400 Received: from DGGEMS408-HUB.china.huawei.com (unknown [172.30.72.60]) by Forcepoint Email with ESMTP id 487D385FE885572E61D9; Sat, 31 Aug 2019 15:23:10 +0800 (CST) Received: from [10.134.22.195] (10.134.22.195) by smtp.huawei.com (10.3.19.208) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sat, 31 Aug 2019 15:23:07 +0800 Subject: Re: [PATCH v4] f2fs: add bio cache for IPU To: CC: , , References: <20190219081529.5106-1-yuchao0@huawei.com> From: Chao Yu Message-ID: Date: Sat, 31 Aug 2019 15:23:06 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <20190219081529.5106-1-yuchao0@huawei.com> 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 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2019/2/19 16:15, Chao Yu wrote: > @@ -1976,10 +2035,13 @@ static int __write_data_page(struct page *page, bool *submitted, > } > > unlock_page(page); > - if (!S_ISDIR(inode->i_mode) && !IS_NOQUOTA(inode)) > + if (!S_ISDIR(inode->i_mode) && !IS_NOQUOTA(inode)) { > + f2fs_submit_ipu_bio(sbi, bio, page); > f2fs_balance_fs(sbi, need_balance_fs); > + } Above bio submission was added to avoid below deadlock: - __write_data_page - f2fs_do_write_data_page - set_page_writeback ---- set writeback flag - f2fs_inplace_write_data - f2fs_balance_fs - f2fs_gc - do_garbage_collect - gc_data_segment - move_data_page - f2fs_wait_on_page_writeback - wait_on_page_writeback --- wait writeback However, it breaks the merge of IPU IOs, to solve this issue, it looks we need to add global bio cache for such IPU merge case, then later f2fs_wait_on_page_writeback can check whether writebacked page is cached or not, and do the submission if necessary. Jaegeuk, any thoughts? Thanks,