Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp1155004pxu; Wed, 6 Jan 2021 14:01:39 -0800 (PST) X-Google-Smtp-Source: ABdhPJxTdYtcwTTW6trLLAFvP5Hq3g6TmJ7l+B4aiGhR4/z67oYXx2KeiLzapcjtskurkAbYb+eb X-Received: by 2002:a17:906:144e:: with SMTP id q14mr4168450ejc.150.1609970499389; Wed, 06 Jan 2021 14:01:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1609970499; cv=none; d=google.com; s=arc-20160816; b=0CcEPBt07KiDjXJQp0ywVfdQ6RAPmBi9mbzSsaqvRRijKkAjO0CysNTkCX+aIBUiGs 3nUB4fc90ANEWn7ZK/z/ucQCgUq8T+AcBTF1Ly2HrhmTXD4DDgzcM7JH4Xvo2SXz8E2R MwiU7dXrBkFbXqtqp7PjpFHeK6BZpJ+/rFzlFfZ8guySOjeG/2skF47bKhgf02hSnN/j ELkWKQNmrwcAQ+xilX3N3lgsc+OZPPB66wsmhf8oWPQD3WdQHWGGxzJOSXW0s/MnRMT2 J0D8hd6s12/28FMbVbBEeZiiAOmUZTXzgGsoamlfZq9co9joUATLE3cMMvwEfKs7nWzh fgHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=P+NJQyB4dJl3kE78FgPWzygB5svv50HkNremhOQCqaE=; b=lxRx/dY+nYYzMgmIzfp5oybES2GzdbSL4+z8gD7V5DdWw7XPX13yomPnazgdHpGpvn X3GBH+IY9TarAwPpgzKpNzPu99mhWZDiMlLyIHO2W2n+s1vwfvKBOS74Ra9qsT1BQ4Yi OihDsZav8FTw+6cqi6VXGD1wf26YO5Ti+qKjkXDGAyNP5M6NGETwaFaBuBjSjzQcaK3/ wQ7+VoJFcyXbg99550E7uz3pIyd/SrPf2JghkXMwz5Z1EDrU4mg2Tjck+LC4/4nmABzL pfTLNXvjas8rQYsesUnPG/bObnzgPD3m9V5F1OWibDyT2WWT3xMzIayZ+kCWVaLYGMsP uW4Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=vKg9vME9; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n22si1419493edb.427.2021.01.06.14.01.10; Wed, 06 Jan 2021 14:01:39 -0800 (PST) Received-SPF: pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=vKg9vME9; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726706AbhAFV7o (ORCPT + 99 others); Wed, 6 Jan 2021 16:59:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42630 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726674AbhAFV7o (ORCPT ); Wed, 6 Jan 2021 16:59:44 -0500 Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com [IPv6:2a00:1450:4864:20::52c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D0E4DC061575; Wed, 6 Jan 2021 13:58:40 -0800 (PST) Received: by mail-ed1-x52c.google.com with SMTP id b73so5721248edf.13; Wed, 06 Jan 2021 13:58:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=P+NJQyB4dJl3kE78FgPWzygB5svv50HkNremhOQCqaE=; b=vKg9vME9/2B9JoXXrm+0O4A5rHrVIwnY59vLD/ZyJ2GuV+UblYbykqJ8HqEorRDXOq LQb6hCgR8xqbggbsAmCFZuGh5/2agW8QV1q8/Vuzy9U5xX/srPG4YCpHUqkqRc5pMaoF Z7pzrRPa+9Y4eRBN26+qDVYlj7eS/FP6MxaCeUhGXvu8ZwCdfU1Y0FJLceJmJsSMqBm8 0HEq7bcFRRxkcCwlKSlJh2eLOhuWKSHFW4nggTRIrsjICwbpPwjuS0YwvkVwiE9k/fC/ akEBgoYhCPUo6c4lvdlB1SEaDHwl1sVmsN7d05gLOy+F0UIpEsw26GynMrlP1a9qamiW M16g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=P+NJQyB4dJl3kE78FgPWzygB5svv50HkNremhOQCqaE=; b=XLw9sxVEFaYe9rV4QosmTAtHF0Nm3Coluo5k7L6fzy/pGVdDYRcrnwKmBSIlOW52+l hxDMmao8Fe7fK57GOtiFOXHGi6rmcA+WhSYiHDe3SMkiTxXQhnmC6W2aAvg7gdUAqs3O 9PtvKTojaKRg9qknqJN+tkfAT0Hi8G0iNQtQa8YPbEMGBbqqvpriVf/rsRMnwlXbkyXa svOgC0BolpLLGZT2/zDNhlAlayBoBxo11fbl9nnPB9n/fjSocnjdWb5ARZIhq42L1CmM SNLPDuHDd5y8H+2Xz8Zv0OhyUX31TuyLkhYM5i/kLgFBNQQcVB9tSH+Ca9e2O0kRzJoJ ztmQ== X-Gm-Message-State: AOAM531DAWaSmQh1rmgrnDpjrSldy9HloHBbpcOQ2fyeCSJ/zKaWKWGH J9spcdD/Btgwo08v9+jAXduhHfsOOFechHBrJcU= X-Received: by 2002:aa7:cf85:: with SMTP id z5mr5341394edx.274.1609970319592; Wed, 06 Jan 2021 13:58:39 -0800 (PST) MIME-Version: 1.0 References: <20210106013242epcms2p5b6b4ed8ca86f29456fdf56aa580e74b4@epcms2p5> In-Reply-To: <20210106013242epcms2p5b6b4ed8ca86f29456fdf56aa580e74b4@epcms2p5> From: harshad shirwadkar Date: Wed, 6 Jan 2021 13:58:28 -0800 Message-ID: Subject: Re: [PATCH] ext4: Remove expensive flush on fast commit To: daejun7.park@samsung.com Cc: "tytso@mit.edu" , "adilger.kernel@dilger.ca" , "linux-ext4@vger.kernel.org" , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org Thanks Daejun! This looks good. Reviewed-by: Harshad Shirwadkar On Tue, Jan 5, 2021 at 5:32 PM Daejun Park wrote: > > In the fast commit, it adds REQ_FUA and REQ_PREFLUSH on each fast commit > block when barrier is enabled. However, in recovery phase, ext4 compares > CRC value in the tail. So it is sufficient adds REQ_FUA and REQ_PREFLUSH > on the block that has tail. > > Signed-off-by: Daejun Park > --- > fs/ext4/fast_commit.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/fs/ext4/fast_commit.c b/fs/ext4/fast_commit.c > index 4fcc21c25e79..e66507be334c 100644 > --- a/fs/ext4/fast_commit.c > +++ b/fs/ext4/fast_commit.c > @@ -604,13 +604,13 @@ void ext4_fc_track_range(handle_t *handle, struct inode *inode, ext4_lblk_t star > trace_ext4_fc_track_range(inode, start, end, ret); > } > > -static void ext4_fc_submit_bh(struct super_block *sb) > +static void ext4_fc_submit_bh(struct super_block *sb, bool is_tail) > { > int write_flags = REQ_SYNC; > struct buffer_head *bh = EXT4_SB(sb)->s_fc_bh; > > - /* TODO: REQ_FUA | REQ_PREFLUSH is unnecessarily expensive. */ > - if (test_opt(sb, BARRIER)) > + /* Add REQ_FUA | REQ_PREFLUSH only its tail */ > + if (test_opt(sb, BARRIER) && is_tail) > write_flags |= REQ_FUA | REQ_PREFLUSH; > lock_buffer(bh); > set_buffer_dirty(bh); > @@ -684,7 +684,7 @@ static u8 *ext4_fc_reserve_space(struct super_block *sb, int len, u32 *crc) > *crc = ext4_chksum(sbi, *crc, tl, sizeof(*tl)); > if (pad_len > 0) > ext4_fc_memzero(sb, tl + 1, pad_len, crc); > - ext4_fc_submit_bh(sb); > + ext4_fc_submit_bh(sb, false); > > ret = jbd2_fc_get_buf(EXT4_SB(sb)->s_journal, &bh); > if (ret) > @@ -741,7 +741,7 @@ static int ext4_fc_write_tail(struct super_block *sb, u32 crc) > tail.fc_crc = cpu_to_le32(crc); > ext4_fc_memcpy(sb, dst, &tail.fc_crc, sizeof(tail.fc_crc), NULL); > > - ext4_fc_submit_bh(sb); > + ext4_fc_submit_bh(sb, true); > > return 0; > } > -- > 2.25.1 >