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 55949C71135 for ; Sat, 14 Jun 2025 09:08:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B98C06B0088; Sat, 14 Jun 2025 05:08:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B497D6B0089; Sat, 14 Jun 2025 05:08:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A37E96B008A; Sat, 14 Jun 2025 05:08:03 -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 943D56B0088 for ; Sat, 14 Jun 2025 05:08:03 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 34322C09ED for ; Sat, 14 Jun 2025 09:08:03 +0000 (UTC) X-FDA: 83553429246.06.9EFDE70 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by imf02.hostedemail.com (Postfix) with ESMTP id DFE668000A for ; Sat, 14 Jun 2025 09:08:00 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=OxXIYpnD; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=2DhGvnmi; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=WvmSNZ5x; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=w4agyddh; dmarc=pass (policy=none) header.from=suse.de; spf=pass (imf02.hostedemail.com: domain of osalvador@suse.de designates 195.135.223.131 as permitted sender) smtp.mailfrom=osalvador@suse.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749892081; 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=8urkubVfkTkvBWlqzjAWlocH28bSNYcyUT7sZNvTQpU=; b=449taV/jpfm2f1rVoOfbciJ1icbO/2Tf1BhsQa+yfVGyWHP3nvHKptJGRpbiM6QsfX4x7E wbozeXj/VVhVfd3fmti8DILyF7iqdIoEyljflaMA14B2EoMGVOI/r66/IchjyJlN1mJfIk KsxSE2OTgISmh+Eubkp1wjui+BzvdWM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749892081; a=rsa-sha256; cv=none; b=qifRO0Kndu7SAWP+bgsKSfq2VE6ndhS61UHABZZEUu9Z4o2anoZ39iAzJfCMrAfPjjXXiH /85i0eLGB12U4h5FexCuCTTl22OAmGGBla5DiWkF6fTc0bqaVR4rGuVsk4Mb3G+nRUDZGu I/geFtD9idluo5HSrKzqKTi01YQPcL4= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=OxXIYpnD; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=2DhGvnmi; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=WvmSNZ5x; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=w4agyddh; dmarc=pass (policy=none) header.from=suse.de; spf=pass (imf02.hostedemail.com: domain of osalvador@suse.de designates 195.135.223.131 as permitted sender) smtp.mailfrom=osalvador@suse.de Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104: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 73D581F387; Sat, 14 Jun 2025 09:07:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1749892079; 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=8urkubVfkTkvBWlqzjAWlocH28bSNYcyUT7sZNvTQpU=; b=OxXIYpnDCbtok7Fyrqlb8iBaaHaUtycZBlNCjh9X2G5aCA1zg7/3a2vG1FaVUCWZsUB5VR 4tuIKqK3KDPawcTH5zXvkGCBP8goHybCNIQc92uGr4cGec6bIPtUObwML0eKaUqE1pL+vN HDn29gaCtpeNa/7QqJSH6GnqO6PULkA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1749892079; 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=8urkubVfkTkvBWlqzjAWlocH28bSNYcyUT7sZNvTQpU=; b=2DhGvnmiWslnN2l3uiT48H9uAv2T8PLfRNEuhNXZjflZgZXLPFdDCRh6jp4iBhtP67wCQI YC1a78H/w3l8vZBQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1749892077; 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=8urkubVfkTkvBWlqzjAWlocH28bSNYcyUT7sZNvTQpU=; b=WvmSNZ5xbD6A3CkPktKEG6H4avmmFwOsnSi53VciGSWLw6VNFn0+LV2ABkYavLwk8DTRlz j3zzyJMkY8mPhtycfeQqaBSO87I79zMnaQSueKA8SnQiLVpSF05yXC6Dr8enKye/S9fns4 xdMMnnEnvaSOBkv81NZXNKtGibKWIlw= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1749892077; 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=8urkubVfkTkvBWlqzjAWlocH28bSNYcyUT7sZNvTQpU=; b=w4agyddhJSF5Ourx0AnrkKNeyXmWmxTnqRXv7BRshqTaQxsezDLIVorVeMxEY9wrbOqhgi JY/LlXqlx0S5N4Cg== 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 EEB7D139E2; Sat, 14 Jun 2025 09:07:55 +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 lV1iN+s7TWgiLgAAD6G6ig (envelope-from ); Sat, 14 Jun 2025 09:07:55 +0000 Date: Sat, 14 Jun 2025 11:07:50 +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: X-Rspamd-Action: no action X-Stat-Signature: 6yx7d1ayg18m5jd8tss367y597req1rs X-Rspamd-Queue-Id: DFE668000A X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1749892080-26511 X-HE-Meta: U2FsdGVkX18r7xdfVh4/I8LoQUwv+F3b7WiA/gfT6l5JHo2KABmkfFvpbxHCkr5KEbwqwqup35WGwrrImqdlkzEwmbMgonqnQuuaYkyD7gOsvYwRYbHiSakvKdwA+J+Dd151+gl8+GydiNUiBNWjzHsstrp5IWS0Kekfw0NO6UYTMjFq1/KNN+aUTG8ozkrQxXs7FiNLLUyEEjr/VL0Gsf82dmwy5NPDySWxNZ8+HOFYfbJxqJMotLemzV8Psi0ysdcrIETfjgH2C3qroCFfcFDxOgczrelIxFeqONVVT83y0SaaxybPaPBONGLNH2oeBi67ki3mpZWk8+4Gy1cl475UO0Dd4Fr0RCf3JN6fGLI9aY3O76o/OgQiXMaRMZyEGZuPvb9c+pdKdVKYIRfi98x2XK9JXe8LH++BypxmFgtGScgp4trv6mLYHnqhzG8yf8EB3a9Mc3nWd80/tfeW0HiCjJ7cBPYavl7FaAGtiB+pcKYwpyylO3SW6J3HTk0/0SMVN2ry02H1dUoSkwTG0iwFdzhytbW0mPwd1X2PMCof94DPUf/yQt0H7PeLayy932ORObUYbRxFALyNnOc5hvBY2c2o8HLW2r0w4Os1cX+xYoBKyoQynpnL9gcgUvUSLIvBFupWqSv82unVtpW5teshZUGA2/v5s9dNx0buZusGpn364EsC9BLWYF/SC3mn93gy+HsHJvY7DosqZe6PkmPCYOXGEs3YIWG/nIXgAY7fWCxENnXhNrVppZkKoCTZRxMAKKDrU0mEU1aZLUeHZ5YrQVXsyYlsYKVlswTUNHdxraEE0KYCplBnOyxayS4uQE3YzcKfJTS2i9Vp2YkCFuA6XOq5NBzq6PLhQwtZFNswSFn1gQhhuiAOdPruM8whpqBlVuS7hb8N1XWyIDSyWpGd8gQM1SC4iXES0MO1l0RyNMQFJSYQeytODmepwT+eVRkAwXbNYw24Tr6esnI ecd2K2+e 16/K/Ev8O029D1eVrLKRmmQZU08WOdUuPRyu3LepHFGQn2nS58QzTgMVRUYrjEIw7U1ztXJE5EEmv2flLZBg/VBWje+GzKFfCWgH64k0n0tjOpog0N5saAtQmNXxprDpfBq7HYnzggamZf8N08HmdnESS26zaM3dpXUwLccF37K14B8wHQpRcRl8W9djUgabQorFRwt56cn4fKQKw/GaWjlosOY+mEylcmzuKBu3hdw90+8HBBnsonchwbxOdR3QgkEngX3tPzqWgxaTe2esUJjLT0dx4J4dmf5i/ 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 11:47:50PM +0200, Oscar Salvador wrote: > Maybe it's because it's Friday, but I'm confused as to why > do_pte_missing()->do_fault()->do_cow_fault() holds the lock while do_wp_page() doesn't > although it might the file's page we have to copy. Scratch that, I see my confusion. The first time we map the file privately, the folio must remain stable. But if we already mapped it privately before (R/O), and we write fault on it, we don't need to be stable (e.g: uptodated). But I think my comment on hugetlb_no_page() still holds, because hugetlb_fault->hugetlb_no_page->hugetlb_wp would be similar to do_pte_missing->do_cow, and in do_cow we hold both the reference and the lock. Were we might not need the lock is in hugetlb_fault->hugetlb_wp, which would be similar to do_wp_page()->wp_page_copy. Of course we will need to take it if it is an anonymous folio because we need to check the re-use case. So, it gets complicated because hugetlb_no_page() needs to call hugetlb_wp() with the lock held in case it is a pagecache folio, and and the same time hugetlb_wp() needs to take the lock if it us an anonymous one for the re-use case. So, all in all, I think that it is easier when both callers of hugetlb_wp() hold the lock, so we do not have to do weird dances, and document why it is done. -- Oscar Salvador SUSE Labs