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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 63477C28D13 for ; Mon, 22 Aug 2022 18:32:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EDED18D0002; Mon, 22 Aug 2022 14:32:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E8E0C8D0001; Mon, 22 Aug 2022 14:32:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D7CEB8D0002; Mon, 22 Aug 2022 14:32:57 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id C4C2E8D0001 for ; Mon, 22 Aug 2022 14:32:57 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 9E5AD40EE1 for ; Mon, 22 Aug 2022 18:32:57 +0000 (UTC) X-FDA: 79828075194.04.2A75980 Received: from mail-oi1-f180.google.com (mail-oi1-f180.google.com [209.85.167.180]) by imf01.hostedemail.com (Postfix) with ESMTP id 599A540241 for ; Mon, 22 Aug 2022 18:32:57 +0000 (UTC) Received: by mail-oi1-f180.google.com with SMTP id w196so13167148oiw.10 for ; Mon, 22 Aug 2022 11:32:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc; bh=1xmFogWnIvNdwdlTrmK1SuS0i1HcmsumGSpd55c4S+w=; b=CDJxFqDsz6m7yWC8X5zRoIOEGYNzekCGsaOVwkt6QczVj+STJ1R922UNcn3Oq9GUkY 2UlYqMlLOAaZibfiiSSqAZslrtE/X+Ec3Ym9+QXTwJIP2ToNlqpq3TeR5JEm8ieo+Kub SjufC2NY3OMN791+w34Co01GCTlYi6rcaQHkLizmBqr9kOJs1OpwMiM94mGRtnjkEQIN 0SBLacC2QHAblNrceey4IaD4tM/7stLpiRRtQ3/ColisGrPXJr5ojJn78dA8/Vs/Sc3Q r+k2MESQINePiU2imFYlSc4vkr4xHmOiDaY1yx5OlnD5e2y7zq9uxdUX7cFsmZHXC+N0 gOXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=1xmFogWnIvNdwdlTrmK1SuS0i1HcmsumGSpd55c4S+w=; b=8KEHPjYWtEatsNa3QDB4+oAcpqUEwuzuANU5/dQck8qlpy1k6uQ0ejAR987jK5qkU8 UXd0ED+HDWvlbveoG7JGJb3zgSK85fJRMZ2QoVgvOHU4qe75d8Cmt2erjfbyfhUiqmHG Dc95fzXz3TqwRq6DTEg2fOHQUGOemfRRHZ173yZSNmvHDd3joi1zdpC+wWudsq7l86l2 /N5/4kF7Tpp8/e1dET7/F5M1RRSwQeegjV3T2RWl+ahNaYb9ceUBswwr8jJOgjIXgOuh Fkb1P43+4SwUmpz97lviupAJfVvGSG7WLFwBZp9BNnwV1SFGrlfyR7GUdlTDEYfFxJTw KdQw== X-Gm-Message-State: ACgBeo0wg0Pq6/kTT8t1yC/SFBSGn8kXCfZfNnsNCchSuS4TRnvZ4n3j PP2v0LPwpSqgUpuElYI4WTmCQav5DhzsVijHHCE= X-Google-Smtp-Source: AA6agR4vtM0FyDcPYwh7ADQGjGUQShqkGdAo04DYUDZFMQVDgFU+/mrcQsSqoiz3gGxDcd0r/01ksxOHm3ktF3jWSE8= X-Received: by 2002:a05:6808:1c03:b0:345:20f7:926d with SMTP id ch3-20020a0568081c0300b0034520f7926dmr8709061oib.47.1661193176554; Mon, 22 Aug 2022 11:32:56 -0700 (PDT) MIME-Version: 1.0 References: <20220816175246.42401-1-vishal.moola@gmail.com> <20220816175246.42401-3-vishal.moola@gmail.com> In-Reply-To: <20220816175246.42401-3-vishal.moola@gmail.com> From: Vishal Moola Date: Mon, 22 Aug 2022 11:32:45 -0700 Message-ID: Subject: Re: [PATCH v2 2/7] btrfs: Convert __process_pages_contig() to use filemap_get_folios_contig() To: linux-fsdevel@vger.kernel.org Cc: linux-btrfs@vger.kernel.org, linux-nilfs@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1661193177; a=rsa-sha256; cv=none; b=7D85fjKPRMm8847MEU31xItOalBGbVxX6GeMThC28koJbyo/xPxfMu9qAIam2sUk1HwMOp +XejFFLneQG68K7Cy8y3M+FdG1muekkCMmtgmcfpd/qj2PLfDK1NlQ4oZyq2X0FauEki29 1WZ/s4AekhTyD43B1xgz29oFVMMY7PI= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=CDJxFqDs; spf=pass (imf01.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.167.180 as permitted sender) smtp.mailfrom=vishal.moola@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1661193177; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=1xmFogWnIvNdwdlTrmK1SuS0i1HcmsumGSpd55c4S+w=; b=LjIbv4wQXCRlqRqEDsTnFDVGqoBEDuJvQglCtY1yy8Awg6Hq7vWj3w3bQ+06BfV6kmhnJ1 WAwHmYPA8tV79n0dx5s/wQMDQbZaItQoLTNsHcQ9ySfyvF0QVLQe98vsXvGY3U+lUhzyBJ lyerRVVu8ecBQ27S3PAwIwvSdodtEtE= X-Rspamd-Queue-Id: 599A540241 X-Rspam-User: Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=CDJxFqDs; spf=pass (imf01.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.167.180 as permitted sender) smtp.mailfrom=vishal.moola@gmail.com; dmarc=pass (policy=none) header.from=gmail.com X-Rspamd-Server: rspam01 X-Stat-Signature: nuy4mosr3rceu6igexr8skr5a87kfhcg X-HE-Tag: 1661193177-731099 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 Tue, Aug 16, 2022 at 10:53 AM Vishal Moola (Oracle) wrote: > > Convert to use folios throughout. This is in preparation for the removal of > find_get_pages_contig(). Now also supports large folios. > > Since we may receive more than nr_pages pages, nr_pages may underflow. > Since nr_pages > 0 is equivalent to index <= end_index, we replaced it > with this check instead. > > Signed-off-by: Vishal Moola (Oracle) > --- > fs/btrfs/extent_io.c | 33 +++++++++++++++------------------ > 1 file changed, 15 insertions(+), 18 deletions(-) > > diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c > index 8f6b544ae616..f16929bc531b 100644 > --- a/fs/btrfs/extent_io.c > +++ b/fs/btrfs/extent_io.c > @@ -1882,9 +1882,8 @@ static int __process_pages_contig(struct address_space *mapping, > pgoff_t start_index = start >> PAGE_SHIFT; > pgoff_t end_index = end >> PAGE_SHIFT; > pgoff_t index = start_index; > - unsigned long nr_pages = end_index - start_index + 1; > unsigned long pages_processed = 0; > - struct page *pages[16]; > + struct folio_batch fbatch; > int err = 0; > int i; > > @@ -1893,16 +1892,17 @@ static int __process_pages_contig(struct address_space *mapping, > ASSERT(processed_end && *processed_end == start); > } > > - if ((page_ops & PAGE_SET_ERROR) && nr_pages > 0) > + if ((page_ops & PAGE_SET_ERROR) && start_index <= end_index) > mapping_set_error(mapping, -EIO); > > - while (nr_pages > 0) { > - int found_pages; > + folio_batch_init(&fbatch); > + while (index <= end_index) { > + int found_folios; > + > + found_folios = filemap_get_folios_contig(mapping, &index, > + end_index, &fbatch); > > - found_pages = find_get_pages_contig(mapping, index, > - min_t(unsigned long, > - nr_pages, ARRAY_SIZE(pages)), pages); > - if (found_pages == 0) { > + if (found_folios == 0) { > /* > * Only if we're going to lock these pages, we can find > * nothing at @index. > @@ -1912,23 +1912,20 @@ static int __process_pages_contig(struct address_space *mapping, > goto out; > } > > - for (i = 0; i < found_pages; i++) { > + for (i = 0; i < found_folios; i++) { > int process_ret; > - > + struct folio *folio = fbatch.folios[i]; > process_ret = process_one_page(fs_info, mapping, > - pages[i], locked_page, page_ops, > + &folio->page, locked_page, page_ops, > start, end); > if (process_ret < 0) { > - for (; i < found_pages; i++) > - put_page(pages[i]); > err = -EAGAIN; > + folio_batch_release(&fbatch); > goto out; > } > - put_page(pages[i]); > - pages_processed++; > + pages_processed += folio_nr_pages(folio); > } > - nr_pages -= found_pages; > - index += found_pages; > + folio_batch_release(&fbatch); > cond_resched(); > } > out: > -- > 2.36.1 > Just following up on these btrfs patches (2/7, 3/7, 4/7). Does anyone have time to review them this week? Feedback would be appreciated.