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 7B94BC369C2 for ; Fri, 18 Apr 2025 01:59:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 66AAA6B02A0; Thu, 17 Apr 2025 21:59:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 61BB66B02A2; Thu, 17 Apr 2025 21:59:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 46B296B02A1; Thu, 17 Apr 2025 21:59:37 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 22C906B029F for ; Thu, 17 Apr 2025 21:59:37 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id CBEDC120BAF for ; Fri, 18 Apr 2025 01:59:37 +0000 (UTC) X-FDA: 83345507994.29.AEDD8D5 Received: from dog.birch.relay.mailchannels.net (dog.birch.relay.mailchannels.net [23.83.209.48]) by imf17.hostedemail.com (Postfix) with ESMTP id 561294000C for ; Fri, 18 Apr 2025 01:59:35 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=stgolabs.net header.s=dreamhost header.b="nx/mo3SO"; dmarc=none; arc=pass ("mailchannels.net:s=arc-2022:i=1"); spf=pass (imf17.hostedemail.com: domain of dave@stgolabs.net designates 23.83.209.48 as permitted sender) smtp.mailfrom=dave@stgolabs.net ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1744941575; a=rsa-sha256; cv=pass; b=nKHZqRMWQYsWYmnnoqb/h3b739CNWIJ5oqFd7lnTN0fQO9n7zUlyC0EmcRrvi+bAQdyhT9 MbT/rh8sLNBB6bdCr0Qq4G3VcPW5nWY+eX35G4RlC109vU7CjfyW67H/mJQxz8dEjepnlB rDPz0bLUtklllya5N3MNWBbIaOnPFx8= ARC-Authentication-Results: i=2; imf17.hostedemail.com; dkim=pass header.d=stgolabs.net header.s=dreamhost header.b="nx/mo3SO"; dmarc=none; arc=pass ("mailchannels.net:s=arc-2022:i=1"); spf=pass (imf17.hostedemail.com: domain of dave@stgolabs.net designates 23.83.209.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=1744941575; 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=DqkM8F2/SD65YUArF5AEfZBkQPAmA5Kpq2ps1+aBLBg=; b=51GHth4xSJ6Ew/y70P+0RS+7/35hrgIF7fT81Gfo90Cd8fUI2GLgQt9xsVmaeqG84/plwB mx+lZjkNYYILZqh2HcDiQiEMOXRvwXZkOzbBFVQ9l/FKb7LgMaFV3lqK7HH85BtrAzZ5vu v97RArKmNLHj9QHleJmVe9o+xyJgAiw= 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 03C881616BF; Fri, 18 Apr 2025 01:59:34 +0000 (UTC) Received: from pdx1-sub0-mail-a285.dreamhost.com (trex-2.trex.outbound.svc.cluster.local [100.109.34.158]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 88823161851; Fri, 18 Apr 2025 01:59:33 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1744941573; a=rsa-sha256; cv=none; b=ExVDzOjZKaeTR8gi/JVqBKPXvusbaA01+0Dq+DY/xcUap0/1/UyUs5471j7xFj4nKn+jQZ WkvRfiF4eu1L3RCtwAgOm3MDc3RQRU7KIXtClHTLrfhTYKaucxDiED7OrzqDlTOxhx0hKE Z4l73BstflY+Pr+uOlAf1902AviNBzzoy67aN3H4Thfz/9zyKFaDv1wfVzajHL8pO33F5F dR3WWT+kusVkKzrP4NP0U1AlWiC1X9/+80f1/0ivt1Tom52xDc5MT90illPKNZurBSQDAi +Dt+GXOboeUMsMSxX5D1a9AFZprQfYgCHXx7i7jPdOmv+7ygGTmMJ7j+/dAUHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1744941573; 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=DqkM8F2/SD65YUArF5AEfZBkQPAmA5Kpq2ps1+aBLBg=; b=ttI+pUBBLI8/74dzbadbHMFHT8RjK8SA+ZN/+4HGFxFl1J3E2PNxEQ8BTyeASp0z68+9JA 2sC/JaOo5TklHn/ThEvrkuk/xpY2qeOmfB3TZ94u7pbi/r6zxdtH+6tZEAyyp1TsKsAgUv zRNWkE2bXmkIz4v/4va3RoPpJdr2JHXn1j1PopFOAFCcHL2Gmg45m1GIHTurG/lsKMlpn1 zOLB95p1GHGbthCM2R/inPypBoIhneY6kCfsaEatQcmJeGmJza6OkqdKXAWkT2VJRvBCJs SfLzvTFIFp5ZPMklUP1ZaLcHo+bGRFnKWe6DaWuKIEkawW8DtT+siUOmqfZV6A== ARC-Authentication-Results: i=1; rspamd-7bd9ff6c58-xxcc2; 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-Tart-Cure: 78d4b7ca06ee9704_1744941573854_4064517488 X-MC-Loop-Signature: 1744941573854:2683204789 X-MC-Ingress-Time: 1744941573853 Received: from pdx1-sub0-mail-a285.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.109.34.158 (trex/7.0.3); Fri, 18 Apr 2025 01:59:33 +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-a285.dreamhost.com (Postfix) with ESMTPSA id 4Zdych55ZXz88; Thu, 17 Apr 2025 18:59:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stgolabs.net; s=dreamhost; t=1744941573; bh=DqkM8F2/SD65YUArF5AEfZBkQPAmA5Kpq2ps1+aBLBg=; h=From:To:Cc:Subject:Date:Content-Transfer-Encoding; b=nx/mo3SOhBiSbQ4UbuEYiS03sw0BaL+D0WKNtxjiKYjS2MvTtvSitRBkfahKZdRRs x/Y2e8kXo25aJKgbRgGu6DqNjWfDajmOoVMhHFcPKO7u34YC8T8uqsLI36M60cg86E kGySmz+gBWgJij0b+t2x5Ayccq1HVMWcStHj1ntwx+/b9Vhqx4nmqfgz4fOXfxM/M9 xAXwFu6q1cP39hysdv+M6OpMJJYqNY3KsCVbvpRTWcvn9B39f5KeAcYuugX2Zk6msR xfc14iFdi57r4VCG/CuU0Hy24JKxIdR5h3HLUWXI3upEfw1J8D8uuFeemIQgfXdW6n +pCosi9hOrgHA== 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 v2 0/7] fs/buffer: split pagecache lookups into atomic or blocking Date: Thu, 17 Apr 2025 18:59:14 -0700 Message-Id: <20250418015921.132400-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: 561294000C X-Stat-Signature: jbagdbsb8m1ofh9tqc1rbcintkkdk7aq X-Rspam-User: X-HE-Tag: 1744941575-19398 X-HE-Meta: U2FsdGVkX1+GIb+2Wsv7GmHW67LUP/4zljNrOyZ+xy/UHhQ8X9GwaiLAd6LiKlPoB4ZC+kNvbURTFj/IxSVBAuBv4jtSV9xy00a7BR9tAuLSAOAKYfXIAfGjYcfqA6q1rhdd+RgPtIYAUI1eTm/LtlTjpd8+jiDxq45te3SuvBme+kXHEKbg7FQLzPPlLUnNSYQAW6D7qRW1KwfY2Hi68MqP05I/V5tLpPL8OIaQg/vOyfvWkbARBhHxgUNF44HsvpG/wHEWL6z+OhsBK7MnaofFd3sL9zS56il95G0gIOLh6D2kq4xNtlURr5CDfVV8dxIMEOaGtsxOZRZ5dvvZ94ZOCoQe7LM2ATsZjc4XtqQDqUN7I+e+CyNVY0Za5cH0iTrekDI74B9bnNxisHwoyptxPUULunSVntlo+8gi2SPnBGGutH7vGbQ9J9dqj2sJGsQokDnVXmnuh7tXwrWFkH9FwL6yHvVXVPJdUW5zpPAZvppOC1hR6HfotxA0NGaPz0yf1jYzdjaAy/a0TfKIg/K+PR4Kgnp2SCfNUiYFyzhG03YL7g0+GqJXraa4prhXaHURvBvWGssLkLgoOyDfVRqQiJHK3CyThuGSa5PLxrH/itCfE06ocdBdryIX7E7CtadPOhU+5KE64ITY8q5EkdVfUDBmFM43Sczy96YsBJOEcAWTZS+1eQ/fMFGnCBsmbcV1lsPMEoQmUHus5B2fDmjhaN6fcGf1OuCgB4WmFdkgvj9Kesyf63LQHgwSU/1S7t4GboxfkC9YqGccXjlAlzlADcSbzsDhbb2/+QoL5R02nyJZyG1a0o4baJjy/NMNwGoYSmkCDqUqp68FHlVdQtd9114f1jIyQgXTO/hNVNUKJSNyReX6BF1Wyh3wCbfws+QPRKD8EY0/67i/Bj/bWKTqszNhJf/ETG6KVbTkjBzU8MPYLv7pMg0MyhWhSF5YtNqETp2MkIP5IC5kvpQ dYY89z5B vqvrKm9WRwUuJPkO197qWghh+ylv5m2uOc5IXfkKOtkgy7w212MunPbqY/CGixwRHynRtT9a8ziL3xFOrv1RUL2J1gvncDU8yYD+7qeazXjAvgrPmL7WbiRjamgSCOs/PwjxLwnxx7xmzrPmjmzXZsSomJvf7fkqmbVKw8tm/ESoD7CbZR3bQNnDkOW7r+UgQcdHsmJkBeEvyYEy7BG7T+/UMlv+/D1WD9fkGZOsTi5kr1JGED1UcyK20NzI1aViC0wsG98I4qSLp+hqB48Uy7hcGgMHSzqbOiUUdYUvR9ocgDAf5hT7qvsP7oQ== 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, Changes from v1: rebased on top of vfs.fixes (Christian). 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. Applies against latest vfs.fixes. Please consider for Linus' tree. 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