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 A98C0C2D0CD for ; Wed, 21 May 2025 15:53:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 48FD96B008A; Wed, 21 May 2025 11:53:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 467DA6B008C; Wed, 21 May 2025 11:53:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 37DA36B0092; Wed, 21 May 2025 11:53:46 -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 1E6146B008A for ; Wed, 21 May 2025 11:53:46 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 3DE2D1A0982 for ; Wed, 21 May 2025 15:53:45 +0000 (UTC) X-FDA: 83467360410.19.C39075C Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by imf27.hostedemail.com (Postfix) with ESMTP id E45404000E for ; Wed, 21 May 2025 15:53:42 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=B2evFl1G; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=c3szFugv; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=BuQv6eh9; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=gBH+2m9h; dmarc=pass (policy=none) header.from=suse.de; spf=pass (imf27.hostedemail.com: domain of osalvador@suse.de designates 195.135.223.130 as permitted sender) smtp.mailfrom=osalvador@suse.de ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747842823; a=rsa-sha256; cv=none; b=QsmTOyn8emggUoGRG3pyZFFWczi7/yvJHGj+EREQ99WNu9nJuDYjrlQeyIrThwQGeCvswG 41CDvgtlBwMENeFTJz2h4CsNcgG46C8Gps7HR8cTFE4o2E6E1Zjd3D3IwPdRJ1ioUVcq3s z4ITh3DqrtzZyxOSMnfA0ajEnvPYW9A= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=B2evFl1G; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=c3szFugv; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=BuQv6eh9; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=gBH+2m9h; dmarc=pass (policy=none) header.from=suse.de; spf=pass (imf27.hostedemail.com: domain of osalvador@suse.de designates 195.135.223.130 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=1747842823; 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=NwWfw1tFLg+rteBWXiVctmBLqNA9fuGap1VPFoVp1ws=; b=OUQac3/mKQMgiBgF11rfHuo7lrWLfJnBmAjP6uuV6Ko0+fCndS1M6eE113/m6BMOC+fuep 42bZRmJnv92vdr+xTFxy4QGJyZ3gGXqWlscTSdaS2icElxrRZFzawakMm/xJFf2KHykgXk BQAzm2/DBjfiaDEFf8JRb0ms7zOhI6k= 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-out1.suse.de (Postfix) with ESMTPS id E8D4D338B0; Wed, 21 May 2025 15:53:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1747842821; 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=NwWfw1tFLg+rteBWXiVctmBLqNA9fuGap1VPFoVp1ws=; b=B2evFl1GngYRie7RWcyHlY1VjozvQMrJqfOMt/EMXSTxzTOs2N8IR7xXZIjiyyQkEu5qgf Gsbpn39dCtwTPYlsYc6haMivHFFcphW3WYmnfiVy9Rxb1PhmJz3evfqzUGbRsWfeNknvxZ 835oSQ4NpjbDz60jb+FvBmdBBYUz3Ds= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1747842821; 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=NwWfw1tFLg+rteBWXiVctmBLqNA9fuGap1VPFoVp1ws=; b=c3szFugvkeRTjq4WbqHyoijpV/+4HER9piQr8tIF2SuXAeK9/FnJG7PEnTtT0Ov+pQ+G76 AJRsV3O/bHJSCFBA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1747842820; 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=NwWfw1tFLg+rteBWXiVctmBLqNA9fuGap1VPFoVp1ws=; b=BuQv6eh9AgRdPV40Lf7xCr4RnXAVqqRjRk30RZR5a1efE8ygDTfi5ZgZewdut1/fCbOJkO RNzMG+97iH1stf5qwn4v9hu2HxWUlT+b+qA8pu5ZeIdH0suuGDrw62/2WniF4EjyhshSxN fwTTHrmhdsQ8QFMcrllECEj2bfcMcjI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1747842820; 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=NwWfw1tFLg+rteBWXiVctmBLqNA9fuGap1VPFoVp1ws=; b=gBH+2m9hPxqOxTGtZrn3mnzBAJC3Dzg68WIdod4SQEdFykOWQkwbtM2UCZAMyw17UTmBsd r4QKAZRpEofr9gCA== 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 B519B13888; Wed, 21 May 2025 15:53:40 +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 Sq9lKwT3LWjwKwAAD6G6ig (envelope-from ); Wed, 21 May 2025 15:53:40 +0000 Date: Wed, 21 May 2025 17:53:39 +0200 From: Oscar Salvador To: Hugh Dickins Cc: Gavin Guo , linux-mm@kvack.org, linux-kernel@vger.kernel.org, muchun.song@linux.dev, akpm@linux-foundation.org, mike.kravetz@oracle.com, kernel-dev@igalia.com, stable@vger.kernel.org, Florent Revest , Gavin Shan Subject: Re: [PATCH v2] mm/hugetlb: fix a deadlock with pagecache_folio and hugetlb_fault_mutex_table Message-ID: References: <20250521115727.2202284-1-gavinguo@igalia.com> <30681817-6820-6b43-1f39-065c5f1b3596@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <30681817-6820-6b43-1f39-065c5f1b3596@google.com> X-Rspamd-Action: no action X-Stat-Signature: oduf6eudk73aocj1795se5e4xxx3yqxe X-Rspam-User: X-Rspamd-Queue-Id: E45404000E X-Rspamd-Server: rspam06 X-HE-Tag: 1747842822-142667 X-HE-Meta: U2FsdGVkX18QC3x7QeLYV+PtiYF2TcP/G482SARfnozi1CjkW3BLnchzqvW4XBIPbp4RjRCAgAkqhJQ/hv+aOJSrxLHN0bi5nySo9lYNpSkbMLoA+vdHRH5Y3jdubBjNvfKnuyvU1hSNsHs25V08ihTmjTXP3bYSGuE1DJCW8GDzWwy4cW2yy4RTGChMIqj0trbE8bLz+NYJPXMsxkD8s7bOwWQOubz1+mhHL/vhRLWHjmZleTN39zZFUb5JHtNKPavxvq4Cinw5a7J2SAuPwViMkoGLXWF8W452ERWTWLYNC1flAaj+yc8GZtfuM/zvX7usdvULyTyuGsbzPKI0YuMUfLT8AMHgd4D6n3sI5EaojzYXucRtKMd9/Vy7Jkx5OL/P2SgNdN+RgOyR3W0MKyIIBCE5Toxyh8OkWKqXYsHDEcTSLLniSBUf38P4AiyXLQRyPWYo8sRY5ufEwLI0Kc3HIafMeVjH3VwIDPK5yqBuxZrecYNInRSMRpQJEX0cNUuh901aF7KFjNn+Jh4317bRCV+oXQ0tkerLX2nS4ttE97UlGeTSvOnVX2C8Ai1gWLVIBxzzhK+oujYN3ES0L8Pf0NPqZucieFHa+F8CGOEK5buzwKDGStMHLT1/lAUIpwABwTlUloboOlyOtjS97t33ZzCm1TdvQh/hadSiU2OAW5nBXHKk5C0aUUJF1wv9KHnEqL22cf5O4aXGiFRx+U/lad7vntjs/qLRQGGpM6poHlrNwiNXUdZRXtvofJc7A9XwPQZtsdSCdhnAOPwmzPjBGIWh/RxB6MqPEBaW0ExsV+GdAZHYOPsmPeYm4rlmjqh0kOxkS0FY+hNvNnaW2uEca2fJHhiUQBmVV6zJ03ZQkIioEU+AMzf0w+bO+3Cpaix+BhPl6/2kS+tBp6cxXrlovD/jX/c/i+AW7v+fnSllDJJpt2Nn4/N3zQUa4LHWDuGDoH4Lkmnr6/Bj+X8 wniXYB86 7bmoCS806JD8CZN6MPx3qh8QgRXDlpshFI6/D1CuaO2Z38/Ogs+JxHhNG211F7U/zK3/DO40MoefO/VrYVL8QIsNgxaDE6DyUtGMgccRcN0sHMvy34iIuYNrP/5LQBOeD49sU29IaMKRQvmy+IJKo1WINXuRaIM6cuuJkY9Ebu37p5gBZWeNS+pnFoFQqfHQDg+gefHgxsGEAewEYAclpSgc9avgYQP79WL5CtwruX41gcP0kcHkzsVU6sY44LAZ9wYi+ZxaGlZbO6/c= 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 Wed, May 21, 2025 at 08:10:46AM -0700, Hugh Dickins wrote: > Unless you have a very strong argument why this folio is invisible to > the rest of the world, including speculative accessors like compaction > (and the name "pagecache_folio" suggests very much the reverse): the > pattern of unlocking a lock when you see it locked is like (or worse > than) having no locking at all - it is potentially unlocking someone > else's lock. hugetlb_fault() locks 'pagecache_folio' and unlocks it after returning from hugetlb_wp(). This patch introduces the possibility that hugetlb_wp() can also unlock it for the reasons explained. So, when hugetlb_wp() returns back to hugetlb_fault(), we 1) either still hold the lock (because hugetlb_fault() took it) 2) or we do not anymore because hugetlb_wp() unlocked it for us. So it is not that we are unlocking anything blindly, because if the lock is still 'taken' (folio_test_locked() returned true) it is because we, hugetlb_fault() took it and we are still holding it. -- Oscar Salvador SUSE Labs