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 1C0A0C369AB for ; Tue, 15 Apr 2025 23:16:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 33B7C6B01AB; Tue, 15 Apr 2025 19:16:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2EDDE6B01AE; Tue, 15 Apr 2025 19:16:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 173786B01B3; Tue, 15 Apr 2025 19:16:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id EB0476B01AB for ; Tue, 15 Apr 2025 19:16:46 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 990CE14165F for ; Tue, 15 Apr 2025 23:16:47 +0000 (UTC) X-FDA: 83337840054.13.6912BE8 Received: from dog.ash.relay.mailchannels.net (dog.ash.relay.mailchannels.net [23.83.222.48]) by imf09.hostedemail.com (Postfix) with ESMTP id 23AD1140002 for ; Tue, 15 Apr 2025 23:16:44 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=stgolabs.net header.s=dreamhost header.b=CbBsLxYG; dmarc=none; arc=pass ("mailchannels.net:s=arc-2022:i=1"); spf=pass (imf09.hostedemail.com: domain of dave@stgolabs.net designates 23.83.222.48 as permitted sender) smtp.mailfrom=dave@stgolabs.net ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1744759005; a=rsa-sha256; cv=pass; b=G4w+ET6B9jEyq45gkxbbbxslC860/efQ4WgzVRbrw99gv5toQp1kj/HCWUUbMPyB3jPRaU tJuYjBnNjMg+opaKhqrSorWD+dQrkd2nX7Ucdbq17RI+gXhzKh+e4IGtB2cmA7rntvyaYM bX5tZcF3+g52tr8/tDllMH5J0eDxb94= ARC-Authentication-Results: i=2; imf09.hostedemail.com; dkim=pass header.d=stgolabs.net header.s=dreamhost header.b=CbBsLxYG; dmarc=none; arc=pass ("mailchannels.net:s=arc-2022:i=1"); spf=pass (imf09.hostedemail.com: domain of dave@stgolabs.net designates 23.83.222.48 as permitted sender) smtp.mailfrom=dave@stgolabs.net ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744759005; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=XynydnE2Tq5LdLSDlwUgzvavdOLsZiKLpf6KVZXBWuc=; b=lZooqRWxO41wm4doiOpcuTTTNTiDN93GYDWiQU2K1H9zKqiJiVZw/twhUaTMHsaC6iQO6v hiReGlT7DGM3f9ZyBMMQHAN+lAfn1DAHzd3BKWoi3XlYXpv6Nh+KhZG8IcGtByaBIB/qID z/rGnbugyUVPhEoHEm3KIFIeWRc8BJc= X-Sender-Id: dreamhost|x-authsender|dave@stgolabs.net Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 4632816290D; Tue, 15 Apr 2025 23:16:43 +0000 (UTC) Received: from pdx1-sub0-mail-a273.dreamhost.com (trex-0.trex.outbound.svc.cluster.local [100.109.225.20]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id D21901628D6; Tue, 15 Apr 2025 23:16:42 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1744759002; a=rsa-sha256; cv=none; b=XzgyKDs5lBmnDgzjKj2I0i95/idDLEBi4cyaK3/QsmeFN82w58mI4Ah3qIUblVFbcyL5R4 jFdx/nrt/B6BbNTwTtf04ebnVehAPkxqFAy84z6EknHysqw0PV+EMvF6u7gsoJSIX1umau 2Cn0j2vy5DiPY3GQfCN+TRNsRk2gXHiiVtKsrngfvI+XHbYTB2B+Y01rkL2RCrzij30ws0 JGNU7riZvWZXeLH6IWKHLkDY7y19Mhxg71wdZ0tyBRdYgZDm0Z7xSNki0j9UGo30o7bav9 +TuB9p7bGInOOahXziwNWYSHGcxNpQX2ggpeoBOx3EUFq3icc+VkXcFvrZRyMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1744759002; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding:dkim-signature; bh=XynydnE2Tq5LdLSDlwUgzvavdOLsZiKLpf6KVZXBWuc=; b=Tle0eZFZZf4hJBf2Jjsdkn/Ls9OxP3CzaPLm5V2W7g9NP2qT3R9HUTRwdf+SIzy9kTRIV2 ZG1vJ98xOjgpqWR7tS6uihq7ltHECxNCvZEMrG4qdjDaoM5qiKSErfK4VI1vqsZ79sHOpE ebESxR53N3Ofrj/40MNgmCqyvtFjxvTHf+GjiCOlhlkMwrItPMn3h7Ss7HgJQQhq60dhoQ 4HG/wSgB5S2lx+t2RApjqRKM8t2YDUTnDaXRK4mJVm5dzw2lr315wqHcjO63AI7gGhf1a7 q4arECNAkUcVzpKtvRczpRpJvyZUL/o07usJUV6LyRdSxsZSybmp32XHV0D02g== ARC-Authentication-Results: i=1; rspamd-5dd7f8b4cd-l8v7l; auth=pass smtp.auth=dreamhost smtp.mailfrom=dave@stgolabs.net X-Sender-Id: dreamhost|x-authsender|dave@stgolabs.net X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|dave@stgolabs.net X-MailChannels-Auth-Id: dreamhost X-Whispering-Exultant: 470624bd04d610ae_1744759003143_2494839585 X-MC-Loop-Signature: 1744759003143:2629595215 X-MC-Ingress-Time: 1744759003143 Received: from pdx1-sub0-mail-a273.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.109.225.20 (trex/7.0.3); Tue, 15 Apr 2025 23:16:43 +0000 Received: from localhost.localdomain (ip72-199-50-187.sd.sd.cox.net [72.199.50.187]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: dave@stgolabs.net) by pdx1-sub0-mail-a273.dreamhost.com (Postfix) with ESMTPSA id 4Zcg5j6Kvfz6g; Tue, 15 Apr 2025 16:16:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stgolabs.net; s=dreamhost; t=1744759002; bh=XynydnE2Tq5LdLSDlwUgzvavdOLsZiKLpf6KVZXBWuc=; h=From:To:Cc:Subject:Date:Content-Transfer-Encoding; b=CbBsLxYGVhToqyfMvcrlp50LpU9eCXN0HxfjEp+uirvvbQ3Dhx5M/Zz3jCLC8dA3s 2tQ6Ir+JLFVxmXQvTNG7wKCEnX/QHw9F9MirBuzfgaa+e6SBR0Zg1XXsBrNG8u+cpu fOIjaKyKw6Y7nEsp59tOVY/oou2F4kA68Mw3W+V9v7s7h3rUoxfmRwOTgO6bEP8EKE N7ySjMf6YQuHWJkgTitXt/lrb3NdVOrPpT0ZCksEz1IQ1JwQ/V1kB4XgpBZy/b2iLK Y5fbC7c2+tShUqKILAlwfbuy1j+b9tlXDnNGK0WVBugburwaCpb5lQmr7DQc4GvE60 IrcQokPdWKmpQ== From: Davidlohr Bueso To: jack@suse.cz, tytso@mit.edu, adilger.kernel@dilger.ca, brauner@kernel.org Cc: mcgrof@kernel.org, willy@infradead.org, hare@suse.de, djwong@kernel.org, linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Davidlohr Bueso Subject: [PATCH -next 0/7] fs/buffer: split pagecache lookups into atomic or blocking Date: Tue, 15 Apr 2025 16:16:28 -0700 Message-Id: <20250415231635.83960-1-dave@stgolabs.net> X-Mailer: git-send-email 2.39.5 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 23AD1140002 X-Stat-Signature: 5fdf66kcptpm6n9u3k46byiybzff4f78 X-Rspam-User: X-HE-Tag: 1744759004-193852 X-HE-Meta: U2FsdGVkX1+aqWpOiCUXt9Uv/n+cAtQ2Ky4LY4GobDuGEv2uZ/eJzHAMG++aGtLQz3MapytdNGbBezDVwSAwXzcE6LGRokniE2bNk35kmAYv1VWyELVvGCFP4Hwtvmpo8l//n6E4Oj6xeEY3WBjF2aWrWsku7QKCiXBd6Tv0pqKuJVqhzNS3WYNI6G9c5mKnVxoRc0sCXAU2MMVyYcn6HVhZI6bb1gt6Bm1e7T+QUPEu/DmJ3eLIticSYZlQCD4Baeey/sGtbvwxVgAuu18EyvCCNDzAa7oLtxpK0LH3jqYhAAOpEkVZHlhHjqKcXLG9q0lspcQiZJLvEpwyvKuxxFi5SveSGBVvTbJ+GhovVfLpNT/6QA0NIdkPql6xRLBeDd+ZLX9/xDrG6GbH7mh9QGdxDsdTV675Jgdzz2UbbLc1A2Tm+dNGaK1ZCPYByQWk8Zq9Xa9FzJJdORrIYRYFkidp3JDDZRAldhxgQy1+zyvaUMTNY6Ngr9dYO6vq0CVk1mz9yJ2pNfG4cJ+8hzbDm9Ay/IaZuXHuGRFMS133r86vlhMrTQWyh2vPgVSLJjtTCH9HbrgZZrBY3cTsZUI6O5cFA21bl7rFJ+5KF/tv0R4FDB1b3+6ZyPBl/LsoI1Fu5Jb3UrHl575dS9cxozDU5N2lBCUKF+F4xCgprPF4lU/3EkNdHeXyY9ATFhZSg85pCh78y23y/9MgF3BPVG1t9SS9qOvWxrKtXwab8Q3nxARN97rG9a0G7dvka5aAQh0QARVI0rdKeOfycMCEMjrd5wd44Hhk0+P4zIlLmYGfK2kdQnKctCB3jFsYhGH0pxYbtK3sm9/WSPKdsjKWK09p6QmEJz2oez6AwUPFE5Wkc9nOZR4S1DLqtuaOZiMPvXQeFon0rICUKkJ2PuD22ZvK+sb6Nah/Jrbwvjam6i7v3uCJGklQWqgLrxEuPeI85i4gxOh5303r/D7AnjXXWy8 UkvHY17k qxMsOKWYA/U/WLyCr3/UoAhKuJeVW2aYBttUo+TlNpjFhWjK+rkN/+Wx1P8jMJA/1IZQWv9krv+VTf9i01PkmaOS4RsJRkFiw9AMXrsSB64YfwRcguJ7vGP0i2ZUCcGDEpkYosgJEd7JOv9WGhjkLszbGKc8jEQYhNpVdWXW7lygOoqau++9YlzWaHDzIxBgzaMq2oEWRXWgObceBZIuP/6a/XplvT2pZ3cBJseQ2h+001mP93Zah4MP5fP773aoQz0H9pnvJu2mlcwoOWE8gYT4MrokcQnGFptjQAcEk8IhOdhgddLoLNBLGXA== 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: Hello, This is a respin of the series[0] to address the sleep in atomic scenarios for noref migration with large folios, introduced in: 3c20917120ce61 ("block/bdev: enable large folio support for large logical block sizes") The main difference is that it removes the first patch and moves the fix (reducing the i_private_lock critical region in the migration path) to the final patch, which also introduces the new BH_Migrate flag. It also simplifies the locking scheme in patch 1 to avoid folio trylocking in the atomic lookup cases. So essentially blocking users will take the folio lock and hence wait for migration, and otherwise nonblocking callers will bail the lookup if a noref migration is on-going. Blocking callers will also benefit from potential performance gains by reducing contention on the spinlock for bdev mappings. It is noteworthy that this series is probably too big for Linus' tree, so there are two options: 1. Revert 3c20917120ce61, add this series + 3c20917120ce61 for next. Or, 2. Cherry pick patch 7 as a fix for Linus' tree, and leave the rest for next. But that could break lookup callers that have been deemed unfit to bail. Patch 1: carves a path for callers that can block to take the folio lock. Patch 2: adds sleeping flavors to pagecache lookups, no users. Patches 3-6: converts to the new call, where possible. Patch 7: does the actual sleep in atomic fix. Thanks! [0] https://lore.kernel.org/all/20250410014945.2140781-1-mcgrof@kernel.org/ Davidlohr Bueso (7): fs/buffer: split locking for pagecache lookups fs/buffer: introduce sleeping flavors for pagecache lookups fs/buffer: use sleeping version of __find_get_block() fs/ocfs2: use sleeping version of __find_get_block() fs/jbd2: use sleeping version of __find_get_block() fs/ext4: use sleeping version of sb_find_get_block() mm/migrate: fix sleep in atomic for large folios and buffer heads fs/buffer.c | 73 +++++++++++++++++++++++++++---------- fs/ext4/ialloc.c | 3 +- fs/ext4/mballoc.c | 3 +- fs/jbd2/revoke.c | 15 +++++--- fs/ocfs2/journal.c | 2 +- include/linux/buffer_head.h | 9 +++++ mm/migrate.c | 8 ++-- 7 files changed, 82 insertions(+), 31 deletions(-) -- 2.39.5