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 72B12C71155 for ; Fri, 20 Jun 2025 12:30:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DD22A6B007B; Fri, 20 Jun 2025 08:30:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DAA636B0089; Fri, 20 Jun 2025 08:30:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CE7436B008A; Fri, 20 Jun 2025 08:30:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id C2CA46B007B for ; Fri, 20 Jun 2025 08:30:31 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 7910412069F for ; Fri, 20 Jun 2025 12:30:31 +0000 (UTC) X-FDA: 83575712262.08.7724209 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by imf19.hostedemail.com (Postfix) with ESMTP id 6CB8C1A001A for ; Fri, 20 Jun 2025 12:30:29 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=xiJ6+53c; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=WmcWJ6GX; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=xiJ6+53c; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=WmcWJ6GX; spf=pass (imf19.hostedemail.com: domain of osalvador@suse.de designates 195.135.223.130 as permitted sender) smtp.mailfrom=osalvador@suse.de; dmarc=pass (policy=none) header.from=suse.de ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750422629; a=rsa-sha256; cv=none; b=47dH0NOHWOMQeOcjBGBprDC9SIzDVIqTOu0JylbeTQ4tE9Ikcqpu0a0f1KW7KJ7Ch39RhM kGP4imlcNBa31x9RBbhngSjlYwsrTB+4cnxK9CYKdlliaUx4qZHYLJkUvw6N9XRIR5w/1t mvWoWTmSTy980SCHSgGFRJ0aS0+goCE= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=xiJ6+53c; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=WmcWJ6GX; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=xiJ6+53c; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=WmcWJ6GX; spf=pass (imf19.hostedemail.com: domain of osalvador@suse.de designates 195.135.223.130 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=1750422629; 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=MyPppERCuMEI9DFIqEdgueHGbR+05Ah5b5rn0YRrw4w=; b=NkaXA84Jmkfza7kKKMnghw1j89rgSAatCCWZk2abp+62VCcBLDYu20YgQsQQot26nClQs+ xI6DeEeVpzaFr0jVoKYwnTZ8HOcAWRv0eC249hQfoeaG2HYYtOMCBL8I2AJbJSRG2ArSO1 upAi9rtXzfxdyH6Z5+bGwCSrjLQAAGY= 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-out1.suse.de (Postfix) with ESMTPS id B11B82121C; Fri, 20 Jun 2025 12:30:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1750422627; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=MyPppERCuMEI9DFIqEdgueHGbR+05Ah5b5rn0YRrw4w=; b=xiJ6+53cZKxx7bm1WEu8PpgXXC7xVc2/vSQNkqCL1yDRrKKHC+/1hX5BfwFwc4tpSH17WF Jmk0HC2oE/93XFNdndWA4nDYNOG19NPvO3PeDg8Cz7yWg14pkX3IseaWOlg//PLlE2qLFU 7KlssLRFvDtPe9yd+GKxJ/6IUnKjmxI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1750422627; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=MyPppERCuMEI9DFIqEdgueHGbR+05Ah5b5rn0YRrw4w=; b=WmcWJ6GX8EpCWR3+hcotrFfKuETSAucz3sSQI+e3gc9jbYVxWMR1R2IyICQ14jiHTXQkhR B3dCg5aLuMUwPdAw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1750422627; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=MyPppERCuMEI9DFIqEdgueHGbR+05Ah5b5rn0YRrw4w=; b=xiJ6+53cZKxx7bm1WEu8PpgXXC7xVc2/vSQNkqCL1yDRrKKHC+/1hX5BfwFwc4tpSH17WF Jmk0HC2oE/93XFNdndWA4nDYNOG19NPvO3PeDg8Cz7yWg14pkX3IseaWOlg//PLlE2qLFU 7KlssLRFvDtPe9yd+GKxJ/6IUnKjmxI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1750422627; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=MyPppERCuMEI9DFIqEdgueHGbR+05Ah5b5rn0YRrw4w=; b=WmcWJ6GX8EpCWR3+hcotrFfKuETSAucz3sSQI+e3gc9jbYVxWMR1R2IyICQ14jiHTXQkhR B3dCg5aLuMUwPdAw== 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 395E8136BA; Fri, 20 Jun 2025 12:30:27 +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 IOhUC2NUVWjNKAAAD6G6ig (envelope-from ); Fri, 20 Jun 2025 12:30:27 +0000 From: Oscar Salvador To: Andrew Morton Cc: David Hildenbrand , Muchun Song , Peter Xu , Gavin Guo , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Oscar Salvador Subject: [PATCH v2 0/5] Misc rework on hugetlb faulting path Date: Fri, 20 Jun 2025 14:30:09 +0200 Message-ID: <20250620123014.29748-1-osalvador@suse.de> X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 6CB8C1A001A X-Stat-Signature: skon6zuyp1t5g8mu9jer383oy9464cpw X-Rspam-User: X-HE-Tag: 1750422629-698463 X-HE-Meta: U2FsdGVkX1/86kF5M4MwntaTO5WQ4gWadpXWIW2NN9yT4tTGt8Q2dy8Jo9cxHW0yMwu3PGtSgBWMdF+DG1uD1WDLBM1lvkf3VbwPUG1vnjiZa5GTqWLEyAunL+wuyyBWdqyC1NkjIej0NQDFQ0pvNjX8GWeoux5/mDQ5pwRmDW5mceJTlj4Y9Nexr1vaqCpAPrpIRv/6MNeB+NYbT1tHTNnrVcaOIFyxKxMOdP249gmnQZgOBG5IRs+nJCn2H1+pBCLTocMJrJheC60IWnH3ZR6LaF6r7GUMSozTL1qAS9A91ElrAipCWvfrh5kwmMAWPNfQusvRTQo+WbalXDTLlkx4sKF/AuVUUkg9GywgueN5v4zVg+dree4q+CCuvCiQ8gqkd5hxxMuR6yoHMyDU8m1ghzIFTSFp5uxl8zBZISFwLskdsKKLQm8HRQ0E9YixOeJyQ2AEYLinDO5kPoqago0upEPbDCxAAQO3lip6dLxALQAYu0oYn41A8mHeqwW9nU01rre7ZZ3CBMVMFtQXYU2ImFQQmEQPkUBNzOy2S6KTTRD5AOILdgH2cVuiAmHd3HH0dYuYHW1GIIMB0nXZcmhV+ih/Txlwr6sSTqglhHBVkz//sIDRjTt3g5N2A7UiL/qpjRC2HFUCSGFN6ufuBa5W/1iVwglF+Be5lAk2FIlR4r9zRrDMAhnxmE8TuRNQtmgDfvq8+ZVcWgG9mcSzQ4kxCaVr1rjzd/5jdrIsOKvBaaYQOwLHoUyWbQkcI5QUpJ5TRcHSzKXeYou8TPjbEnnm2XJ3iJ6ufmc2bd0dPpyak8ex/6mToBZuT0AHcoM7u2CYujgGOniz9SKu9Fah337iyyBFiziX+Lc9H+xhdTxkV4MT6N529CBPMf0hjchdTiYIMKhxq6rMqMda1pAGc/GNFNF1EpY1cckpW7m7blMWa9nB+5dx1K73oogBxDumBhUE5sdRcAzfP7Nb1YU lTwAWC2o 9eWFUeo5wDv65EWEyD0kHEk6PspI9BfVrVbSfiP3LrME1bQlFwiKU9UzWYnd+BxMxfD+rJcXFlFsf1I/c8ekJDZHRKBiv1aFmwciGeYG8blalYZMPuqhieLmj/zryXcqAYTa39uZzVEH6sJWWJFYCZRvOCKldvUn/n0ejHywIYdbxXWQJMPM+IKTlNG496bL0vSD3Uo93CrBGcPpqyfgb3yj0PFog9H3wUQytMCXtlcpDTqodBkX8UIkqPiOoqyeS00k1jBRLFRvtm4A/0BUP+65CR0y+8yEH/tocKzxo83F/jIk5bj5OFiMK/K/SMPcs2lcxRElr+Xhz/HzMhtVkc9xUIQ== 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: v1 -> v2: - Addressed feedback from David - Settle ideas wrt. locking in faulting path after discussion with David - Add Acks-by RFC -> v1: - Stop looking up folio in the pagecache for detecting a COW on a private mapping. - Document the locks This patchset aims to give some love to the hugetlb faulting path, doing so by removing obsolete comments that are no longer true, sorting out the folio lock, and changing the mechanism we use to determine whether we are COWing a private mapping already. The most important patch of the series is #1, as it fixes a deadlock that was described in [1], where two processes were holding the same lock for the folio in the pagecache, and then deadlocked in the mutex. Looking up and locking the folio in the pagecache was done to check whether that folio was the same folio we had mapped in our pagetables, meaning that if it was different we knew that we already mapped that folio privately, so any further CoW would be made on a private mapping, which lead us to the question: __Was the reservation for that address consumed?__ That is all we care about, because if it was indeed consumed and we are the owner and we cannot allocate more folios, we need to unmap the folio from the processes pagetables and make it exclusive for us. We figured we do not need to look up the folio at all, and it is just enough to check whether the folio we have mapped is anonymous, which means we mapped it privately, so the reservation was indeed consumed. Patch#2 sorts out folio locking in the faulting path, reducing the scope of it ,only taking it when we are dealing with an anonymous folio and document it. More details in the patch. Patch#3-5 are cleanups. [1] https://lore.kernel.org/lkml/20250513093448.592150-1-gavinguo@igalia.com/ Oscar Salvador (5): mm,hugetlb: Change mechanism to detect a COW on private mapping mm,hugetlb: Sort out folio locking in the faulting path mm,hugetlb: Rename anon_rmap to new_anon_folio and make it boolean mm,hugetlb: Drop obsolete comment about non-present pte and second faults mm,hugetlb: Drop unlikelys from hugetlb_fault mm/hugetlb.c | 130 ++++++++++++++++++++++----------------------------- 1 file changed, 55 insertions(+), 75 deletions(-) -- 2.50.0