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 F40AAC27C4F for ; Fri, 21 Jun 2024 12:19:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 44DDD8D0169; Fri, 21 Jun 2024 08:19:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 425358D0138; Fri, 21 Jun 2024 08:19:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2C53E8D0169; Fri, 21 Jun 2024 08:19:18 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 09FAE8D0138 for ; Fri, 21 Jun 2024 08:19:18 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id ADE1F14041C for ; Fri, 21 Jun 2024 12:19:17 +0000 (UTC) X-FDA: 82254800754.25.D03C115 Received: from mout-p-103.mailbox.org (mout-p-103.mailbox.org [80.241.56.161]) by imf03.hostedemail.com (Postfix) with ESMTP id 916252001F for ; Fri, 21 Jun 2024 12:19:14 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=pankajraghav.com header.s=MBO0001 header.b=ZRD6OMol; spf=pass (imf03.hostedemail.com: domain of kernel@pankajraghav.com designates 80.241.56.161 as permitted sender) smtp.mailfrom=kernel@pankajraghav.com; dmarc=pass (policy=quarantine) header.from=pankajraghav.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1718972346; 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=+FhklCvUMZIPSHQOWeqSqeXZ11wze5Ce0+xk5qHDK2E=; b=lKtJBCM/Csm9l2xaUyUeHlhvj3mi9XwHSkAWau8RZZ+abZmtHGlwuKnfgmsBPsSUwqqhum f7ffkbuwrpCg3k9h4Jd7c0Rg6KPxDBsiMmdiwg0wZhCEAdymxO3AH9cjK32mxXX3AghoLV sbY9eLu5fzYEBdi/SXsufWmBdsUbf14= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718972346; a=rsa-sha256; cv=none; b=M1Wv4gyxjTG6XTgkRMa0mfQGM+1y3D79sAF8ZnxGf+R9YAMyHIpjXMQ6rPBAXeZ3LOC1At LU1GfXCUi1TKd5Q+tafu454iP7YOMs+D9H4hFnI9eas407SmEt2m/NpEorXBBApS4mapim FacWMZnu4MOcKuOCRYKUHTtc0S48beM= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=pankajraghav.com header.s=MBO0001 header.b=ZRD6OMol; spf=pass (imf03.hostedemail.com: domain of kernel@pankajraghav.com designates 80.241.56.161 as permitted sender) smtp.mailfrom=kernel@pankajraghav.com; dmarc=pass (policy=quarantine) header.from=pankajraghav.com Received: from smtp1.mailbox.org (smtp1.mailbox.org [10.196.197.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-103.mailbox.org (Postfix) with ESMTPS id 4W5GcY4hghz9sRt; Fri, 21 Jun 2024 14:19:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pankajraghav.com; s=MBO0001; t=1718972349; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=+FhklCvUMZIPSHQOWeqSqeXZ11wze5Ce0+xk5qHDK2E=; b=ZRD6OMol1+Im+tzEVQvrGSNx7W/8EBp/UXeyvzTwRIaDEuX+yAFtJ7OyyeW8j+lITVmeE8 r79jDBFXzKdxy5rvedN/lAWp30mZ0N5ZoyGuqK2m8nMlho0Igzyy6kxkK72i3EAY6poxvU vf0aoa4iAQ9dek2h/iPT7f0F2X/udWImBsbumyGB22185XSIXCKdqO10U4tbFRhwOdKp7I uYAKKXPcxPP4o8AKc+3/S1PDQODA5sVQSazLSVW+JBDcRYpGx562gvwxiDz5RrZH43XP7A 8KErXtYeus774GNTp4q+YwJIT+Ad2/zjh25xcTRtYM6RZY/6mJi7Ou5ZRch4JQ== Date: Fri, 21 Jun 2024 12:19:03 +0000 From: "Pankaj Raghav (Samsung)" To: Hannes Reinecke Cc: Matthew Wilcox , david@fromorbit.com, djwong@kernel.org, chandan.babu@oracle.com, brauner@kernel.org, akpm@linux-foundation.org, mcgrof@kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, yang@os.amperecomputing.com, Zi Yan , linux-xfs@vger.kernel.org, p.raghav@samsung.com, linux-fsdevel@vger.kernel.org, hch@lst.de, gost.dev@samsung.com, cl@os.amperecomputing.com, john.g.garry@oracle.com Subject: Re: [PATCH v7 04/11] readahead: allocate folios with mapping_min_order in readahead Message-ID: <20240621121903.xbw4j2ijy4k32owv@quentin> References: <20240607145902.1137853-1-kernel@pankajraghav.com> <20240607145902.1137853-5-kernel@pankajraghav.com> <20240614092602.jc5qeoxy24xj6kl7@quentin> <20240617160420.ifwlqsm5yth4g7eo@quentin> <20240617163931.wvxgqdxdbwsbqtrx@quentin> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 916252001F X-Stat-Signature: 17s79kyma4ucgh87bgenbzid6tmfitfj X-HE-Tag: 1718972354-377354 X-HE-Meta: U2FsdGVkX1/kyc5yFybSGT8969jypMKFdUCYqaZBeftcLU4ra1zFcoDQnEUnX7e+GrixX4t8d/7rf4PvqRl9p6pGAKHS7VnPIgK9aMLldG9hzIyeNQAzVC3tDE0s79LueZNsQWuzCjyOd+bVxx+nJ8IkxFQBHwDWXECuCR2H5CRQGHJp+XhwQTf42GiSoRm0CeWcQ9ct19Sm4XB0MiT0oyQ67ndvxNCsSYkUFnmBqG5M2ZpCnP+x2fYiQ0Gt0qNpeOvjkWbjHbAkeQIeBbtYGGhJzewC/JRhD62rKkplI9eg9fwXqzEZHcq5zFZHtAFBb7yESB94fok93WEExjITdBZO4SGk9XrXjmoa+ENA11DGy+V3SORcNi0q4+X8FZovGng/o6gYrNRG3USS5rpHx9kqVkavKArvGZbdMtTv0ylvQb8TEqfEdzStQSyP71sW1bVIydJWxh6wT61pK6THvg3iwwM9GC8mfrawAbc4QVjIIQJw273F5ZsjqK+jOYKkA9xnxKdgRqtZOCoQiEklighor50cVWL64UlT7L8iNMhmN7p1wwsMLJ4yherXE1wawmX6hqy38l4Fla1FYSONh08qnDQO9W0/rMm4xGCnqVEbsG1ilkmfamyufauWdPTFcE6XmEeGu02uhN4O81WgRL530jbDjGNEqpn5yvdvYGofilpC0hC8TgvaD2IPjV+YnUmizoG2LUo/XkRPdUtwsOXojG6+2KMun4JP4kRHariq/qJxY72ZseAEQM/AaEkLHyCZFNoZdK3RzSdX6zHwlLJ5zBD/kX1nMPoW5MEWGFKe+jsBTn8tnL0WspEvXFtuPXJgbXKP4sMoS0lsdOL9upTunFtP7pm6R0vMAcdOEQDVQHqRiifgTl7w16kq67b7sE6BDEow+JO+GNzsurFGqyk3cEFgsDvbLXPtyQVjSNLXHkIzq3uCVVmJAszSMt35f57hTjrxfVuOEHgT4O2 g7EQgfve tYhmzzh/Sxx8f68HL7TN/c/TywSW3l15eZNdSthe2T0/t6zxOViN27IXe6WBJObwqSVO1JA4ZcnUS3Cy+JpHIcBMqlVMVh9QgHnNdfipDb6apSwnqUg7s9fYYyhG17uW2srgiq4gO8W3nGiYWlYxf/lsOE95yJGvnP/FgXDroG+6XoFtFNyYTMt7lyeUCTI61ImkCeUMp8C7yqs7ujiPt+BIfW1mHun2VOE9O28RALH6kd0jjsq2QL2jUGATwUjscCJBZdpPUVMoZviA2M33aBFHKtg== 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: List-Subscribe: List-Unsubscribe: On Tue, Jun 18, 2024 at 08:56:53AM +0200, Hannes Reinecke wrote: > On 6/17/24 18:39, Pankaj Raghav (Samsung) wrote: > > On Mon, Jun 17, 2024 at 05:10:15PM +0100, Matthew Wilcox wrote: > > > On Mon, Jun 17, 2024 at 04:04:20PM +0000, Pankaj Raghav (Samsung) wrote: > > > > On Mon, Jun 17, 2024 at 01:32:42PM +0100, Matthew Wilcox wrote: > > > > So the following can still be there from Hannes patch as we have a > > > > stable reference: > > > > > > > > ractl->_workingset |= folio_test_workingset(folio); > > > > - ractl->_nr_pages++; > > > > + ractl->_nr_pages += folio_nr_pages(folio); > > > > + i += folio_nr_pages(folio); > > > > } > > > > > > We _can_, but we just allocated it, so we know what size it is already. > > Yes. > > > > > I'm starting to feel that Hannes' patch should be combined with this > > > one. > > > > Fine by me. @Hannes, is that ok with you? > > Sure. I was about to re-send my patchset anyway, so feel free to wrap it in. Is it ok if I add your Co-developed and Signed-off tag? This is what I have combining your patch with mine and making willy's changes: diff --git a/mm/readahead.c b/mm/readahead.c index 389cd802da63..f56da953c130 100644 --- a/mm/readahead.c +++ b/mm/readahead.c @@ -247,9 +247,7 @@ void page_cache_ra_unbounded(struct readahead_control *ractl, struct folio *folio = xa_load(&mapping->i_pages, index + i); int ret; - if (folio && !xa_is_value(folio)) { - long nr_pages = folio_nr_pages(folio); /* * Page already present? Kick off the current batch * of contiguous pages before continuing with the @@ -259,18 +257,7 @@ void page_cache_ra_unbounded(struct readahead_control *ractl, * not worth getting one just for that. */ read_pages(ractl); - - /* - * Move the ractl->_index by at least min_pages - * if the folio got truncated to respect the - * alignment constraint in the page cache. - * - */ - if (mapping != folio->mapping) - nr_pages = min_nrpages; - - VM_BUG_ON_FOLIO(nr_pages < min_nrpages, folio); - ractl->_index += nr_pages; + ractl->_index += min_nrpages; i = ractl->_index + ractl->_nr_pages - index; continue; } @@ -293,8 +280,8 @@ void page_cache_ra_unbounded(struct readahead_control *ractl, if (i == mark) folio_set_readahead(folio); ractl->_workingset |= folio_test_workingset(folio); - ractl->_nr_pages += folio_nr_pages(folio); - i += folio_nr_pages(folio); + ractl->_nr_pages += min_nrpages; + i += min_nrpages; } /*