From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2A61EC433B4 for ; Tue, 6 Apr 2021 19:44:32 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id BA01461284 for ; Tue, 6 Apr 2021 19:44:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BA01461284 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 4AFAA6B007E; Tue, 6 Apr 2021 15:44:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4860D6B0080; Tue, 6 Apr 2021 15:44:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 326876B0081; Tue, 6 Apr 2021 15:44:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0027.hostedemail.com [216.40.44.27]) by kanga.kvack.org (Postfix) with ESMTP id 1457B6B007E for ; Tue, 6 Apr 2021 15:44:31 -0400 (EDT) Received: from smtpin16.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id C4A992C9D for ; Tue, 6 Apr 2021 19:44:30 +0000 (UTC) X-FDA: 78002969100.16.2A94C20 Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by imf24.hostedemail.com (Postfix) with ESMTP id DB2FEA00038C for ; Tue, 6 Apr 2021 19:44:26 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id D7061B317; Tue, 6 Apr 2021 19:44:28 +0000 (UTC) Received: by ds.suse.cz (Postfix, from userid 10065) id F0482DA732; Tue, 6 Apr 2021 21:42:16 +0200 (CEST) Date: Tue, 6 Apr 2021 21:42:16 +0200 From: David Sterba To: "Matthew Wilcox (Oracle)" Cc: Chris Mason , Josef Bacik , David Sterba , linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH] btrfs: Use readahead_batch_length Message-ID: <20210406194216.GP7604@twin.jikos.cz> Reply-To: dsterba@suse.cz Mail-Followup-To: dsterba@suse.cz, "Matthew Wilcox (Oracle)" , Chris Mason , Josef Bacik , David Sterba , linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org References: <20210321210311.1803954-1-willy@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210321210311.1803954-1-willy@infradead.org> User-Agent: Mutt/1.5.23.1-rc1 (2014-03-12) X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: DB2FEA00038C X-Stat-Signature: zi96btdb81rxeomwrfi1j8rg7t3yc6fj Received-SPF: none (suse.cz>: No applicable sender policy available) receiver=imf24; identity=mailfrom; envelope-from=""; helo=mx2.suse.de; client-ip=195.135.220.15 X-HE-DKIM-Result: none/none X-HE-Tag: 1617738266-198414 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Sun, Mar 21, 2021 at 09:03:11PM +0000, Matthew Wilcox (Oracle) wrote: > Implement readahead_batch_length() to determine the number of bytes in > the current batch of readahead pages and use it in btrfs. > > Signed-off-by: Matthew Wilcox (Oracle) Thanks, I'll take it through my tree as btrfs is probably the only user of the new helper. The MM list hasn't been CCed, I've added it now but I think the patch is trivial enough and does not need another ack, so it's just for the record. > --- > fs/btrfs/extent_io.c | 6 ++---- > include/linux/pagemap.h | 9 +++++++++ > 2 files changed, 11 insertions(+), 4 deletions(-) > > diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c > index e9837562f7d6..97ac4ddb2857 100644 > --- a/fs/btrfs/extent_io.c > +++ b/fs/btrfs/extent_io.c > @@ -4875,10 +4875,8 @@ void extent_readahead(struct readahead_control *rac) > int nr; > > while ((nr = readahead_page_batch(rac, pagepool))) { > - u64 contig_start = page_offset(pagepool[0]); > - u64 contig_end = page_offset(pagepool[nr - 1]) + PAGE_SIZE - 1; > - > - ASSERT(contig_start + nr * PAGE_SIZE - 1 == contig_end); > + u64 contig_start = readahead_pos(rac); > + u64 contig_end = contig_start + readahead_batch_length(rac) - 1; > > contiguous_readpages(pagepool, nr, contig_start, contig_end, > &em_cached, &bio, &bio_flags, &prev_em_start); > diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h > index 2cbfd4c36026..92939afd4944 100644 > --- a/include/linux/pagemap.h > +++ b/include/linux/pagemap.h > @@ -1174,6 +1174,15 @@ static inline unsigned int readahead_count(struct readahead_control *rac) > return rac->_nr_pages; > } > > +/** > + * readahead_batch_length - The number of bytes in the current batch. > + * @rac: The readahead request. > + */ > +static inline loff_t readahead_batch_length(struct readahead_control *rac) > +{ > + return rac->_batch_count * PAGE_SIZE; > +} > + > static inline unsigned long dir_pages(struct inode *inode) > { > return (unsigned long)(inode->i_size + PAGE_SIZE - 1) >> --