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 2D615C71136 for ; Fri, 13 Jun 2025 14:24:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C3A256B009A; Fri, 13 Jun 2025 10:24:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C14296B009B; Fri, 13 Jun 2025 10:24:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B2A306B009C; Fri, 13 Jun 2025 10:24:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 936726B009A for ; Fri, 13 Jun 2025 10:24:05 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 4476610106D for ; Fri, 13 Jun 2025 14:24:05 +0000 (UTC) X-FDA: 83550596850.10.E7EE837 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by imf13.hostedemail.com (Postfix) with ESMTP id F14ED2000E for ; Fri, 13 Jun 2025 14:24:02 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=hmZMJOrS; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=SzC7Q44l; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=hmZMJOrS; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=SzC7Q44l; spf=pass (imf13.hostedemail.com: domain of osalvador@suse.de designates 195.135.223.131 as permitted sender) smtp.mailfrom=osalvador@suse.de; dmarc=pass (policy=none) header.from=suse.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749824643; 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=MUPsPgx6alNrpaxgdEaMoO7XxeOfzLHfWilP4Ho/V/k=; b=NuiFUegVhKOTwHF/WPXIjE2toDTSDz4xgy9Kfh75GTkvO5XleF6wmoAKwG7RmumR3m8Wdi 89LUlOPe1OhBhLSSxjwlT2bQYDlN4C4IkVCZs9W002UT1zV4CxVXAbZijU4dzvYYdu+SvT 42BsZDvhD4fXm5eMibVkQ1HFXU39wos= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749824643; a=rsa-sha256; cv=none; b=iXBwCo3Wa99jNIhNq12jnZE1DZAAhBkLnWOwx495nLTVsfy1JfoIJjlT4R57cvNHSSIwV6 FjnKIeOn0c7rEHRaRxByB/gghcVQH0YTVyL5UV+EdYWEWPLD1SKW1H4xl6mtaXEtLgba/3 gTdtlPT5lZxPY1GNeQC3rg+vraG0Yig= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=hmZMJOrS; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=SzC7Q44l; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=hmZMJOrS; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=SzC7Q44l; spf=pass (imf13.hostedemail.com: domain of osalvador@suse.de designates 195.135.223.131 as permitted sender) smtp.mailfrom=osalvador@suse.de; dmarc=pass (policy=none) header.from=suse.de Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (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 smtp-out2.suse.de (Postfix) with ESMTPS id 7866A5C374; Fri, 13 Jun 2025 14:24:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1749824641; h=from:from:reply-to: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=MUPsPgx6alNrpaxgdEaMoO7XxeOfzLHfWilP4Ho/V/k=; b=hmZMJOrSr0dBj5z7fuxXat4z/MY1W6PJnsQr9nV5t+Fcnk0I+/CjJH1IpI72MqY4mALRdn 0YUE7C2C6M3mU4qYlqUeogGBftHiYwMUhkPIociKqfB+friItSXZUTGYAzXemnqNwNefHC tqZdUw2a+fjX/7GVGR1UB9w826kD8nw= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1749824641; h=from:from:reply-to: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=MUPsPgx6alNrpaxgdEaMoO7XxeOfzLHfWilP4Ho/V/k=; b=SzC7Q44lvgh2o1HrVmhgFh4t6zSmQdXcuFv3OzJZLOJAPKFkjeRFvGK4DfciE7Ffo7IWMx A9pHnCIAAKN9UuBw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1749824641; h=from:from:reply-to: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=MUPsPgx6alNrpaxgdEaMoO7XxeOfzLHfWilP4Ho/V/k=; b=hmZMJOrSr0dBj5z7fuxXat4z/MY1W6PJnsQr9nV5t+Fcnk0I+/CjJH1IpI72MqY4mALRdn 0YUE7C2C6M3mU4qYlqUeogGBftHiYwMUhkPIociKqfB+friItSXZUTGYAzXemnqNwNefHC tqZdUw2a+fjX/7GVGR1UB9w826kD8nw= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1749824641; h=from:from:reply-to: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=MUPsPgx6alNrpaxgdEaMoO7XxeOfzLHfWilP4Ho/V/k=; b=SzC7Q44lvgh2o1HrVmhgFh4t6zSmQdXcuFv3OzJZLOJAPKFkjeRFvGK4DfciE7Ffo7IWMx A9pHnCIAAKN9UuBw== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.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 imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id E6C1013782; Fri, 13 Jun 2025 14:24:00 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id seVGNYA0TGjBFAAAD6G6ig (envelope-from ); Fri, 13 Jun 2025 14:24:00 +0000 Date: Fri, 13 Jun 2025 16:23:51 +0200 From: Oscar Salvador To: David Hildenbrand Cc: Andrew Morton , Muchun Song , James Houghton , Peter Xu , Gavin Guo , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/5] mm,hugetlb: Document the reason to lock the folio in the faulting path Message-ID: References: <20250612134701.377855-1-osalvador@suse.de> <20250612134701.377855-3-osalvador@suse.de> <44f0f1cc-307a-46e3-9e73-8b2061e4e938@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <44f0f1cc-307a-46e3-9e73-8b2061e4e938@redhat.com> X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: F14ED2000E X-Stat-Signature: hneoftpfhrkp4qss34cf9ii6dmzwnof6 X-HE-Tag: 1749824642-344626 X-HE-Meta: U2FsdGVkX1/+lzodGfH6QjSK4tTZG3sSgAL6QizKY6HLfsUEELfQI5/LaYqWhtwKf9PkWDsa/YPv73YOFcPxhlIRWhm/p0Y+U9yNqzmLlGYDsL9Ah+IVtLCG7rAyI/nH0iTcNKAhtZVzbof931Czg2L1U2FglqUz9kaTaSj4dDwsXNfM6ns9Y1p4DMj4oj1yej8NVYFBycCM6Hq3twzIYqnJaBAyfLKXH//FNqoVZw7z7rSWfTE1AijDi+Q3O0lbMvC4InYsak7HplExsBwbBC6Q/A3c5SeUXupKejhlL+Q6cdb4J77R1zSEpJJm+K+wEKKu9jfAi248lmbOPOVvfvA3tEpOTLj45nIxRJ0nc2tWkGGIwjF6DNwNoL/3iXBOwQjca9Opi5A42BGPSUJvnQsVniIgcwTMt48xVxfZSLUfPC5nGctF/1v+eg7QZJssyVveButFpWICIso8DSCs9cFn6VVnHlpd09uI4Z+Q6kLtRrgU9GNJGyZdd3l/Q3lV3YQ/JyWe2yJpljtzFirUGmJ2RR1mNaMTevHg1md6uXBI9zKZeIxB9EKqwHIwIRuo8So58DrXzZOIy3r/cHwwH+vjZcpXl0EBpWlkko74/FnMWl5wqxcIKWvKL7ztTGmr82xpD1DCHq+X/3OP0RU7/cIaMo74eEpJVz4c9342NUUILUzZXwFK3mbfII6pZLcV7/R5K4m2k2Ge1bd6CpSmhDUwYngVXBH64hlNJDiIDqnIS19pI84PpAuPDsoOAQNpY2so5rrglTTXeIZy0k+6c56S78D4EHHoVVhu4JLWiwdNV2N1BQ4JFx0wqUkpZBwqWKDhIA5x8NssbddLSc3Kd4Th29EiLdgIbt/w0LFcvnVihh7g5GpqWVvki+DN4iVngsrdZJlRbXd5DW7xmhoTQD6cYzAPwf/5me4VJrfN3l+nRMlFoMXhe5avZolK3lIvYvxeIdtxiaqYaZrP6UL mv9C73JE BNxxbiLvnLsne7ZpRB2s/Yuj7jzu1zV8ZFZvylqUo8Kv23jZKa3DGry3akiG0PAanvzNotE1gFq6boy4N7AehgFYNccKazK1Lx4mlfMOGMkK1TUAtyn/JXsQW6zOiKlkWGUZPSBBuDAyLsiTqtPygamosuXaZcDTSkWk46i79MNm8g98N1aeP7VvERLEccHdzYgmTpCgvHXI+laRMDs+teqF2+Hqn0ZPXnwqg2hKKnvQtg5j20gC7/lxGf5JDwH1n3rnbCIjBasmBtuqOxDmSffTitd7/+5ZrcJCI 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 Fri, Jun 13, 2025 at 03:56:15PM +0200, David Hildenbrand wrote: > On 12.06.25 15:46, Oscar Salvador wrote: > > - /* hugetlb_wp() requires page locks of pte_page(vmf.orig_pte) */ > > + /* > > + * We need to lock the folio before calling hugetlb_wp(). > > + * Either the folio is in the pagecache and we need to copy it over > > + * to another file, so it must remain stable throughout the operation, > > But as discussed, why is that the case? We don't need that for ordinary > pages, and existing folio mappings can already concurrently modify the page? Normal faulting path takes the lock when we fault in a file read-only or to to map it privately. That is done via __do_fault or cow_fault, in __do_fault()->vma->vm_ops_>fault(). E.g. filemap_fault() will locate the page and lock it. And it will hold it during the entire operation, note that we unlock it after we have called finish_fault(). The page can't go away because filemap_fault also gets a reference on it, so I guess it's to hold it stable. Now, when we get a wp fault for an already private mapping, via do_wp_page(), we only take the lock to check whether we can re-use the page for us. We don't hold it during the copy. The only reason we hold it in hugetlb for the entire hugetlb_wp() is because making this distinction on the lock's timespan depending on what we are dealing with, would be tricky with the current code. We would need to do some dancing of release-and-take-it depending on what we want to do, and frankly it seems overcomplicated at this point. I plan to do some more work in that area, and potentially glue it with the generic faulting path (I have some ideas but I need some other works to land first) -- Oscar Salvador SUSE Labs