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 7932FC3600C for ; Thu, 3 Apr 2025 09:37:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 93993280005; Thu, 3 Apr 2025 05:37:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8BE8A280001; Thu, 3 Apr 2025 05:37:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7393A280005; Thu, 3 Apr 2025 05:37:01 -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 52456280001 for ; Thu, 3 Apr 2025 05:37:01 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 6A91F81BAE for ; Thu, 3 Apr 2025 09:37:02 +0000 (UTC) X-FDA: 83292228684.08.814A1C1 Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) by imf14.hostedemail.com (Postfix) with ESMTP id 4684C10000B for ; Thu, 3 Apr 2025 09:37:00 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=gmx.com header.s=s31663417 header.b=JCKANCoH; spf=pass (imf14.hostedemail.com: domain of quwenruo.btrfs@gmx.com designates 212.227.17.21 as permitted sender) smtp.mailfrom=quwenruo.btrfs@gmx.com; dmarc=pass (policy=quarantine) header.from=gmx.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743673020; 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:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=FowseTNKm1Rf50n9OBGGpoUltNQ9BNFQ15Jybp6GZS0=; b=2qwN4UrMbbyI+4gz6ZCqtV7uVXRjnT5jn53xRx0gkA6/4ePESxOj1wmaTLu8jhCFoN7qLo 3NMY5hReHOauLhQgiDfs/9NLxhwQKuc6jMnYbgqiVKMs/kjIgnZcnQIYPCpv9AvNGTPTW3 k1cxyTo0wS3wJ6yFdjFxju8YUxQ63t8= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=gmx.com header.s=s31663417 header.b=JCKANCoH; spf=pass (imf14.hostedemail.com: domain of quwenruo.btrfs@gmx.com designates 212.227.17.21 as permitted sender) smtp.mailfrom=quwenruo.btrfs@gmx.com; dmarc=pass (policy=quarantine) header.from=gmx.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743673020; a=rsa-sha256; cv=none; b=MymbVywerdhi0rtGLT56ForDBE/h3T2DTC2jGE6wW/rlmtlLXsUclF9youJ2FoF20BI7XC U05CuwQxc8Tmy6PyEcvrhcvSfvDT6QHX0d5/8C9oJVxfve5K+eY+46P544IUakgwDmPlGM NBP1j+1LzrKABh7Pl2pv/q5GggjHUpc= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.com; s=s31663417; t=1743673018; x=1744277818; i=quwenruo.btrfs@gmx.com; bh=FowseTNKm1Rf50n9OBGGpoUltNQ9BNFQ15Jybp6GZS0=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:To:From:Subject: Cc:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=JCKANCoHPPLtuiw3G5m5nWQZp4gbMJ4gcyylL6yqdcv73Bz0296zUHH5ZVWSF3LQ kzFIggL+40k2N1c/UuNsnnK0ll0sE3gx3QXeUMC/IIoI18lW4QzUhm7rHIws4XaYH DGtxA10/vHX3z99jPP1B+zu6AUeWuvdlQizYLTwcmo1IfdUMzc5zXLUasWdmYgLX5 sQQLCHk6TZxu36t8qpPW9R6BuTsHvtlo0gYQw/N7NaPohXoGUhXx0Ni3oA9iIfKhM ReHOay+g5Olu5f7JWylnqGgtNxrq5EUvmhW0KnpvuegVwGJVkNx3N2OQE+zNzBHl8 CTgC/NuNiqbW4gmqAg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [172.16.0.191] ([159.196.52.54]) by mail.gmx.net (mrgmx104 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MnJhU-1tHLKf3oGK-00jClG; Thu, 03 Apr 2025 11:36:58 +0200 Message-ID: Date: Thu, 3 Apr 2025 20:06:53 +1030 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: Linux Memory Management List , "linux-fsdevel@vger.kernel.org" , linux-btrfs From: Qu Wenruo Subject: Large folios and filemap_get_folios_contig() Autocrypt: addr=quwenruo.btrfs@gmx.com; keydata= xsBNBFnVga8BCACyhFP3ExcTIuB73jDIBA/vSoYcTyysFQzPvez64TUSCv1SgXEByR7fju3o 8RfaWuHCnkkea5luuTZMqfgTXrun2dqNVYDNOV6RIVrc4YuG20yhC1epnV55fJCThqij0MRL 1NxPKXIlEdHvN0Kov3CtWA+R1iNN0RCeVun7rmOrrjBK573aWC5sgP7YsBOLK79H3tmUtz6b 9Imuj0ZyEsa76Xg9PX9Hn2myKj1hfWGS+5og9Va4hrwQC8ipjXik6NKR5GDV+hOZkktU81G5 gkQtGB9jOAYRs86QG/b7PtIlbd3+pppT0gaS+wvwMs8cuNG+Pu6KO1oC4jgdseFLu7NpABEB AAHNIlF1IFdlbnJ1byA8cXV3ZW5ydW8uYnRyZnNAZ214LmNvbT7CwJQEEwEIAD4CGwMFCwkI BwIGFQgJCgsCBBYCAwECHgECF4AWIQQt33LlpaVbqJ2qQuHCPZHzoSX+qAUCZxF1YAUJEP5a sQAKCRDCPZHzoSX+qF+mB/9gXu9C3BV0omDZBDWevJHxpWpOwQ8DxZEbk9b9LcrQlWdhFhyn xi+l5lRziV9ZGyYXp7N35a9t7GQJndMCFUWYoEa+1NCuxDs6bslfrCaGEGG/+wd6oIPb85xo naxnQ+SQtYLUFbU77WkUPaaIU8hH2BAfn9ZSDX9lIxheQE8ZYGGmo4wYpnN7/hSXALD7+oun tZljjGNT1o+/B8WVZtw/YZuCuHgZeaFdhcV2jsz7+iGb+LsqzHuznrXqbyUQgQT9kn8ZYFNW 7tf+LNxXuwedzRag4fxtR+5GVvJ41Oh/eygp8VqiMAtnFYaSlb9sjia1Mh+m+OBFeuXjgGlG VvQFzsBNBFnVga8BCACqU+th4Esy/c8BnvliFAjAfpzhI1wH76FD1MJPmAhA3DnX5JDORcga CbPEwhLj1xlwTgpeT+QfDmGJ5B5BlrrQFZVE1fChEjiJvyiSAO4yQPkrPVYTI7Xj34FnscPj /IrRUUka68MlHxPtFnAHr25VIuOS41lmYKYNwPNLRz9Ik6DmeTG3WJO2BQRNvXA0pXrJH1fN GSsRb+pKEKHKtL1803x71zQxCwLh+zLP1iXHVM5j8gX9zqupigQR/Cel2XPS44zWcDW8r7B0 q1eW4Jrv0x19p4P923voqn+joIAostyNTUjCeSrUdKth9jcdlam9X2DziA/DHDFfS5eq4fEv ABEBAAHCwHwEGAEIACYCGwwWIQQt33LlpaVbqJ2qQuHCPZHzoSX+qAUCZxF1gQUJEP5a0gAK CRDCPZHzoSX+qHGpB/kB8A7M7KGL5qzat+jBRoLwB0Y3Zax0QWuANVdZM3eJDlKJKJ4HKzjo B2Pcn4JXL2apSan2uJftaMbNQbwotvabLXkE7cPpnppnBq7iovmBw++/d8zQjLQLWInQ5kNq Vmi36kmq8o5c0f97QVjMryHlmSlEZ2Wwc1kURAe4lsRG2dNeAd4CAqmTw0cMIrR6R/Dpt3ma +8oGXJOmwWuDFKNV4G2XLKcghqrtcRf2zAGNogg3KulCykHHripG3kPKsb7fYVcSQtlt5R6v HZStaZBzw4PcDiaAF3pPDBd+0fIKS6BlpeNRSFG94RYrt84Qw77JWDOAZsyNfEIEE0J6LSR/ Cc: vivek.kasireddy@intel.com, Andrew Morton Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:qJB/sKShH+0bNXSIlI6Q/N4tTfHmVL4W2blVYDqEQzW4Radz3W2 eT9K/R5IfOQ+sdXOfteMkFIxJ0+LOsFklarlr1AF7zaAPPfRW5bPKKF/7jVF49sG6Z7tXWh oG330PwyXIbACcTv/iZFI++GNU7lcejr0jvYHhglqNgJTiyXuKaG/vfs7oEC35vBkuNpzWJ 7EFXMGjAX2o7YvpAUVpkw== UI-OutboundReport: notjunk:1;M01:P0:wsaRdeIBf5E=;gv/9/d3G1MuzaZaq7T60G4kXQ68 DNEPKHcsEHH5BhiT/2vykl2TFWp2n/OwKD17axvNOYJxKOYcofKkbxRFBmCCaZdVZuwka773B CgzgJzwXIACl+UydpUq6uYwkDnxoBQ183ixGi8GIeCRoy93yqTdVJuEZxh9VE4eQD1SPxOgXs tepZ9AjCyJmgLPyDvlwrXIe4NE9i0zSPotuDieZ0B20Hc5GihSHnTpWaS5Dd4Or7l9m/E1w+b QmRViSog1xIvtu4hcQFYAcFD9MBe9VXyrJJurLXfoWvESc+YV06u+35CkpEIHg4FaL0L3f06e vSyYN/k45oR9rtXAUmjazlGGr4B6Q/ajR3ougpY6caJi4n2N1jooFJYqIgVbzOachvQWOsWku 1EhGFaLLIN6IR7Rd8967L54cWoOk2ruoTdwn/YI9IaXEsHtzTzR4XudW3VxJzV+VVUjcm7h35 iR3O1SQe9h6ZrsA6vJtr0XxIpVzKhDkUyDSSQEwzfZbmjQkcuLs293VC8NqPGKRmOtuzBzzsH FtknuN3x2xa4i//LoiFDu6YvxSayMdKJtCyz0U4BRYti7+gX/amfqZyIJXHgwSC/XF2dUNaNd LE2HRmYfTXL0LcLiFJJsjNd4ezTFo+M645/BmaixjVEBaQ2hHPFdD0gGn1aqs+GGf6OlUm6GA Cjsj2PGg8g3BTe5RWrVlJT9jSIIXQXXc3rvrSDKm5PkFAberzuactGQv0p9Cm9kFaGC/pN5J7 +Bl07+OhT+lV1fmhC8jxSurWLndYhc68mfuf9A7CJ4+Oys7C7fCw8ESBYkW3z5yzZ5GVnrljS /VrP/RQ72ujKBnDKafY4UHMf7PVCBg8FIVDw17WzJN6Rv+zRINL/uG04Hn+VaAiiwex+KUEYl 5xLRi6tsbKQYKoKiBtXFEWve6h5Tk8nCtss3HJV9o+U/aCUsvk+p+5Bh/layDPwHLnqeCgply U/2YfqRS8N4CzxJVQSgdjsD7N3bpo25CI4hnV0Rr/pdUk0j1WDsR3MzKtItF1TVPJPpWoT7bV j13QbbPQpLpMqykwDlyR3/jXxbSslmtHfsjN0CYlIqDxvW8VLhdQmDZUUT6nSJ0bwBSM7P0FW Lxnd2HETEfvF+VyA988gHgfvH7gglVBhHKGMdq0Xs3Kx3xy0KCeaRnn0caGanAX/63kRdjNBV 7hqSNJ4pR3UbNj87Xj+vJ5Yre/wtO7D07SFZWhMbMzrjAsOx1Krxg6RyVv5ajygRD3uvN9tvM cL9KqAI63qjjzwOOWNCSTohkD9gziXRW48D/IKz+Cg51+SluNCAMSBFulgjvKZBoVm50LtXAN 2Lfxtp0OeNV2wNAFxLYLZ5wQDHXRUMdUKjqCaqjNyb/Ih/ywotWYSVcFoHDM0nPqcKI8r20TY D1bxvonCK+1oPxbzlNINIM7F0OAR3AHh7ZXXAXoXYdyVqYEeIE7nfwttJ4aiH4CwC6pE2hW58 U4FysDKKURRe3okLwh8FqaxPoc0M= X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 4684C10000B X-Stat-Signature: nn4fxdgw1dtbm1b5khyx55np3ma6cjsf X-HE-Tag: 1743673020-670116 X-HE-Meta: U2FsdGVkX1+ADcNrKIPd7OklTcAer4Ys51THRSDctyL60Vy5BHBsp0LluXz4VZrV0xu6wTuRcwhxIg+rm6SS0oJtpGhcwCDFkNw2kh49RuiyJ3bKIk7VXzhLwhRquCePKT36H1vw3oO8pOatTq7QctYmB4nIQW81YJzgXNy8nsRabkS0B4ypaeUERWsY89NgiXwLblns1DJk0CnaAnsvwkV/KqK8WUx14QXLve84Fiw9l68jAotSdQQDhUwgn2F97Zp8tJhL31AFRWoKDJ+h6ozOSxLsgaBsMUlQYTSIiivxLrLdrZg6wW1+dG8F+nhgOWQ+Qa/SwEFK6DB0gMBN52ub2EGLIbvlo84t52UtEaWZpPjUjpMq3jRp6fuYTFPfU14Nx8ZgVeh2w3En5Ez0lT2zEipZazoWJjUVj3sBuvH79lw1CBqvS0zzpPQ/cXFiPppxPtdQoAG3jHj8tu0S91ECH1QCwghsd4/t8ZxAidh19gf42/nN0wBeggTzuaUg3pqtnuGn+xYFhcvgeGTbWwgap9amlRK2gqUfhRZ5bE02B4lLobzDKgiREV8QOHq6eqPIIEPnd4Vz0cTKu2Yc+I9FWp0Pg9dOeLNVUh5SfUGiTj/K9ETl8B519mDXusYHpwv/SdIWVXJUNifQDIFBgUT2fGbyu0Dx2FMKL7/CfxD9dMipm7YoMe5VgUcbq2eCftWhUR+zva0NbAMbi+P85TrBASB+A77G77aVk2cL3t++Jnpr7vPwbGs7K0EAvh0O6hTDWCCQx0IHyO13wFdLKsmIFOp82WGGg451nSf2rfHUqEPvZmYCb3qn7rtYyEUkgiCh0E8niFfbz0vyFHT8tVNxcTiJZT9sFbbMcsH6hhVMuZ8Z/wGmw7GZsAim8kuZqL7ecRoGbX05ZipgQIjpEOqcqKpw22MdJ0xxGzaGfbkBVlOUeGW7Eg0tdvhLvaZg0otxEQRv1KtTRBOeVbS eM9+dvVF V/Apyw47eB3ya7kwoVpGGaAMRFDfbhA6GJVqruTzKmzh2yF4XWoIu1ElLaKJltyE+zCJgEmrjtiWwV3iQRQFyBbtIJ7t4H/EQ9U1ukC1qVBHcII5uYylr3X5OySJ33ey5wUk6OKIgniB1Mk8m1LjchKuZKjL8dS9jOp8g8oKGUqIuA3JRN+pG06JrK+/QvBzvwNwGh8W4IskqqWIUEO8+bK824ieo0loogZ/Pz/LE9Af5VCJoF+A36TYUumGZ2u4N2T7/ihheC3x05aF5sG4WljXGaGxMde3WWdgLaXB4yDHUOxGx20b4INoSiO55WCsnP/umvKTEu9OB9SLhE3O7dC88XaQkdpsIuaX/jYAt9JvH4wPLyx8aYl2Y0DZCbvW1V7QIEZiFCjsucwYiVAcE6Yek2BzWco16hoEKnGOQFnoDS6gz6VX+cXf2LA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.073537, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hi, Recently I hit a bug when developing the large folios support for btrfs. That we call filemap_get_folios_contig(), then lock each returned folio. (We also have a case where we unlock each returned folio) However since a large folio can be returned several times in the batch, this obviously makes a deadlock, as btrfs is trying to lock the same folio more than once. Then I looked into the caller of filemap_get_folios_contig() inside mm/gup, and it indeed does the correct skip. This makes me wonder, since we have large folios, why we still go filemap_get_folios_contig() and skip duplicated large folios? Isn't the purpose of large folios to handle a much large range in just one go, without going through multiple pages? And there are only 3 call sites, two of them are nilfs and ramfs, neither support large folios, the only caller with large folio support is the memfd_pin_folios(), which skip duplicated folios manually. I'm wondering if it's possible to make filemap_get_folios_contig() to avoid filling the batch with duplicated folios completely? Thanks, Qu