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 5CBCCC54E65 for ; Thu, 22 May 2025 06:06:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CF1D26B0082; Thu, 22 May 2025 02:06:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CA2EA6B0083; Thu, 22 May 2025 02:06:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BB9586B0085; Thu, 22 May 2025 02:06:46 -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 9AD3F6B0082 for ; Thu, 22 May 2025 02:06:46 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id F184814059B for ; Thu, 22 May 2025 06:06:45 +0000 (UTC) X-FDA: 83469509970.13.B2568E3 Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) by imf10.hostedemail.com (Postfix) with ESMTP id EF5CFC0007 for ; Thu, 22 May 2025 06:06:43 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=igalia.com header.s=20170329 header.b=hd3ultRN; dmarc=pass (policy=none) header.from=igalia.com; spf=pass (imf10.hostedemail.com: domain of gavinguo@igalia.com designates 213.97.179.56 as permitted sender) smtp.mailfrom=gavinguo@igalia.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747894004; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=fC19oiaKeGnojTcsm4F/+x8uFxZCpfc6ssD2dhIHz+4=; b=BdD3GH+im4+1+OfP29rsYgiX+9+FOq8DNDP948iDt3IWQnj6SGym8ck4NmDAx2ldx9ertS /bzxGIz554Yyg/XKKYIXE8h38kNNObZHk5F7qG05msGh2bxlKv80LxFxKFH7ZlmdnRALlK n7BWPWK+VvGVy6m3BTv8bKiSrqINaQM= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=igalia.com header.s=20170329 header.b=hd3ultRN; dmarc=pass (policy=none) header.from=igalia.com; spf=pass (imf10.hostedemail.com: domain of gavinguo@igalia.com designates 213.97.179.56 as permitted sender) smtp.mailfrom=gavinguo@igalia.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747894004; a=rsa-sha256; cv=none; b=nNQ3/6ZHi4ARgWceMT/aau45lpjHAhFvzmHvYr3rxoUvFfi8mADPuoU59QJWs7imjoNPf8 94gQyPp1cCvOsdsBwOCydoVwonQD9TE4M/aG6q2aX3k2q1xyRILNtgprmYQSnGs163Sbr0 ChjejsjPITYprQmPYXPwPTP0aeUfUTg= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From: References:Cc:To:Subject:MIME-Version:Date:Message-ID:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=fC19oiaKeGnojTcsm4F/+x8uFxZCpfc6ssD2dhIHz+4=; b=hd3ultRN0ZjPGZyUCQpQiZnuMO 2ZCbjwQFgVawO/XWqbvfmhbSwE+hQViRQ36KyIzVPsI8xaGhXtQWpQ7TMDSP+eWTdm4Vf6+lIaDwV 7uGD+OCETcQP9/tUyEsMYWYgU6wmMd7o8DQ3LqF4ct8v2v05Nv/EzigVN9WISndwul5AMVOBAN5VC W+ekDIfHCO/HElAkD/271cmgAskul2rGPwCFZ9IDfTU9YnOcordOMbUAjWslDor+JuEg2fDCa3i2S xjOUxgbJ7KfFM+sC6DQ8VpDcvP89Dg67eFscxfNbqyL4zNE1G3kaeFD0KoQH/yTuYay4FQUHJia9C U/cRKbBw==; Received: from 27-52-199-242.adsl.fetnet.net ([27.52.199.242] helo=[192.168.238.43]) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_128_GCM:128) (Exim) id 1uHz4f-00BZi6-Ez; Thu, 22 May 2025 08:06:37 +0200 Message-ID: <64ca8b7f-2b1f-40e8-b314-d59a3094d99f@igalia.com> Date: Thu, 22 May 2025 14:06:29 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] mm/hugetlb: fix a deadlock with pagecache_folio and hugetlb_fault_mutex_table To: Hugh Dickins , Oscar Salvador Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, muchun.song@linux.dev, akpm@linux-foundation.org, kernel-dev@igalia.com, stable@vger.kernel.org, Florent Revest , Gavin Shan References: <20250521115727.2202284-1-gavinguo@igalia.com> <30681817-6820-6b43-1f39-065c5f1b3596@google.com> <54bd3d6c-d763-ae09-6ee2-7ef192a97ca9@google.com> Content-Language: en-US From: Gavin Guo In-Reply-To: <54bd3d6c-d763-ae09-6ee2-7ef192a97ca9@google.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: EF5CFC0007 X-Stat-Signature: pkre4fjumxi5m3xo3kmbex5n6dfqdmob X-Rspam-User: X-HE-Tag: 1747894003-242113 X-HE-Meta: U2FsdGVkX1/mEKTZYnPZ6v5i2vJ8Gukw/YSwBUbyMt2Xy8JaZxGuCV1ece2v7xBb2WNAssim1cfGgmIElz6LzojMQa1H3EdaBLjHVn68FBF703EvwY8ybvFNAzFWe7xlp1glhwVb7cW/NF91EY342Ffd+z6Dw1LieUsMl7vhYCqIKDCN1WvYUv/UjTRrpN8bwt1Ud8UzBhU7UoS+4927o+ok9x54syB1/hJm/kHpL+pJ+4OI/XCnNtNGiZsZQ94fIcFMeUbmFgiazx4N4KAktlX2EuWRyvAr8/iBj1fE/wtPd+rfyLGfoHsn1p90r3DH6IvGz0p0loPNmV85ouNPZUyEUPcstvr/a+HwmWNBO6k67oAk7rwV0WtZW0dFrcO67GUOlTZnX1X1eUGyKl9XLmp9kfvWJUKG01SjOJ/M09Gq5r9NAKroUjsXKTJ9MPdV45xlrntvxlIBtSIiEj5PEFoSSI5irXl0XArLymudD3Yrt8AFADLYydrj0mQ8GSzqcsOoUXLowI/ii5BYhQMF92I4+Yk9PQChKGpGQeQakb/HzJSbkOAbGuy2JHIGbiTIv9fWXr1poG/jx0781+7wPqZFrgP8KFVLzkzUs5/dXvv+4U9HcHiKML4nYI/TyIKfimveUROog39Y2jfP9LwiVgn8/M6QUWAjg4m3/fUyD95ql1q3PC39+kWiu4es8bTOAjPWFX8nmVm9o895xR49Xydz2kQQcb0ExY8VxN+BaYVTgILnPi7hI7TMOQZS/tgdwAP7bHjPoR+GFX+wjE946wG6qUGn3cDkDlUg2iJPhxvjt6rLvvaoyZDWvOnOLTqRVL0g0ii0CAYqLYC04i179tAohEX7LhV67wL/yWJm0SXJSekOUetO8g6/SH1Ht0HSpign5IXFWGk23FUVLVnPLBPqgwZp7bsqstq7x+Azu76h5T9558Mf7LbMwemtR+vzxzKrHyH+KIvJmErOHUc cnj+o6uO 5cDJQ7IxB6epDVAme1zwcHgdXjcjdTnlUEzwU4GYPLnlNA4jtScTlfd5re2fHEnup433hO66TB1LbQjJIkBHiBNcGUfiD1x/0pV78Y9MIlexG0ZbLrKHp2PkDCZR6RTVTnp+LU3VK2YwBioXH1HeIa7opwiX1dT6XN2/83qiDyNpLTsScW67Id8TuubZpiVWhl7QZWreHdReHFfi64BY0I1nlyWe/t/Kc4JJTRc60bGt2mUSey6lx8cl/nTkCyD5zbeMQc7GhLFnjJ0ASi6+HzlkWHyo7FtgJkrFox1B+cTy+dqN9vTl5d0H+kZJ2ELIAz8OB32MhMn8jdT456486B/fgClPBESzCfKeIIRmF4EGdz1hkM+kZMD5L9w== 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 5/21/25 23:58, Hugh Dickins wrote: > On Wed, 21 May 2025, Oscar Salvador wrote: >> 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. > > If we unlocked it, anyone else could have taken it immediately after. > > Hugh > _______________________________________________ > Kernel-dev mailing list -- kernel-dev@igalia.com > To unsubscribe send an email to kernel-dev-leave@igalia.com Sigh, I should have thought of that as well. Next time, I'll be more careful.