Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp373777pxf; Wed, 7 Apr 2021 01:25:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzE9o9fIM+TAtkR/mc9yzgSlI8zW41P/gM/DqpWqlDh8R35p+27G8pjWfZTO3yq07ctwFZz X-Received: by 2002:a5d:8b09:: with SMTP id k9mr1622183ion.185.1617783900783; Wed, 07 Apr 2021 01:25:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617783900; cv=none; d=google.com; s=arc-20160816; b=q+egeheau0bEhPlmY+DWpIDT9crmhhRsIgzxeqzVVNWWbxaihGbPqdCmxogr5KpFaD 4H4l0Y3kCMg4JgGVl7Rv7MRrRytcs2Lkpfi/FEZq9UCsERzBhEPSBowJ3lanl94a0IHm 6mLDGgtkvJTeIGQq/6qiKBLEjYHJOl0fMXkhIBEQ6AORB5KRFqYImxEkRFtuVALUeiKL aOi5ztGFbkpgJoiAhVAScprZ1HefTrIoFKQcC9D8RvKLYvX2/iEDC4r5uzBrp74Pja2R 6ViQT1ArBXh9DUAArHlE1Xzz+fco2Ki8+ron7zr5sXrDZwKDj3jO2rohZgzfSxVZKw6Y MObg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:mail-followup-to:reply-to:message-id :subject:cc:to:from:date; bh=UOv7WpW8fKebvWV3UiZ5Cn9TzwpxYJasr9tfFnquwGE=; b=TVDyhAGT4Iz6bNq4o54cGztg2jXoCrXUCE9ca+8XJZnfZHgLh/ZRDWMOJ6tbKlsEsE ALMauYFn2m3Btg1ebI7RGM0uzJKUrMES8FuYpM82R/Tq6SlwUFSVuFaK9wqR0yBmDS52 cbqJGNPIx6zKQh4JcLfuTX6gV16h6LjbvfWS96ftQFwNnpH6MCEwDuiG8Adx1T1wLDlL i49N8W2IZ37L5YEfAcppC9f6qG52FufgJB/SH71A7az1ViOkTEJNn/3BXOUAJ3fbK55v CLNeXN/cAH0+MRXfxk/HTFRL2YtBXQk7YdNqNnXM+52kLyxbfv+aEEKRkx8IdgqBW7P6 muIA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id u22si21805804jat.108.2021.04.07.01.24.48; Wed, 07 Apr 2021 01:25:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245012AbhDFToo (ORCPT + 99 others); Tue, 6 Apr 2021 15:44:44 -0400 Received: from mx2.suse.de ([195.135.220.15]:43156 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229890AbhDFToj (ORCPT ); Tue, 6 Apr 2021 15:44:39 -0400 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) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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) >> --