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 CE9E1C54E71 for ; Wed, 21 May 2025 15:58:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4C1896B0085; Wed, 21 May 2025 11:58:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 44A9E6B0089; Wed, 21 May 2025 11:58:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2EB8A6B0092; Wed, 21 May 2025 11:58:51 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 0D0346B0085 for ; Wed, 21 May 2025 11:58:51 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 9D9F4120B14 for ; Wed, 21 May 2025 15:58:50 +0000 (UTC) X-FDA: 83467373220.30.233C623 Received: from mail-pf1-f182.google.com (mail-pf1-f182.google.com [209.85.210.182]) by imf20.hostedemail.com (Postfix) with ESMTP id C1A931C0015 for ; Wed, 21 May 2025 15:58:48 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=WXPjzgg6; spf=pass (imf20.hostedemail.com: domain of hughd@google.com designates 209.85.210.182 as permitted sender) smtp.mailfrom=hughd@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747843128; 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=TdRwavDDdPRD4ph6NOjp9qIhMy3uXqZoBDVVcoXM+3M=; b=yjkenM2Zga1YuoQkmOPg7Nk2BhwDAufSwMbLVm/q/sN6ovWB24ivM6lMmZzGYFgwPgjll7 QyezHA/9TMeL+qGpbatryNyV3x4o7CX4rBK02dxY96egJ3Oso5jhrCR3M/TxIDiCEu2mio pJpg58pRxiCizV5q9fkHHdFcUmcLuIU= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=WXPjzgg6; spf=pass (imf20.hostedemail.com: domain of hughd@google.com designates 209.85.210.182 as permitted sender) smtp.mailfrom=hughd@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747843128; a=rsa-sha256; cv=none; b=1nOFvkZ1nJMWGvjC974iKDA3JHJ4oC69ae+8W/t+8nC5kBgXU6BkuII9j7uIEIPFzV31cP xT3rxOespC1RGL6G8goksF6A9lBw6lzGT1dVtrrYwvkwtIA9oatXrNThFaX19uOzdU4++Z V2oUMK6LboHX2Crmlwb8uX9sfVTxhpM= Received: by mail-pf1-f182.google.com with SMTP id d2e1a72fcca58-73c17c770a7so7520565b3a.2 for ; Wed, 21 May 2025 08:58:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1747843127; x=1748447927; darn=kvack.org; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=TdRwavDDdPRD4ph6NOjp9qIhMy3uXqZoBDVVcoXM+3M=; b=WXPjzgg6j/OZgppPpNOWDdighAPW/5cxy5xD4nr4/IiuqcqeVAnbl4qsVi2jOrQWfz paWi55sAQ4cbOhkCY96l5UTqsqON/94PpWSGoH8lpUIQFKK17H2azFTl8aS6VLegdT5X r8cuL1359HA1lvAzDrb321qs4mDvuUE+ujdhZgxZ1HERfYenvwmmH0umoJxl6kU4SLB2 gKFhKw0rUYy+dLXk+q17PiQKi7RiucJL4W1Z+XXXUQb6gD9NYLhwXkpd0S4YvouuQN0i uBDwQ8+bEM1H+UUdurjPixfjzauN6nqWaYpgmzFP+Cwwy0KKLArgP4a//C0BCxdaD/oS Ej+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747843127; x=1748447927; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=TdRwavDDdPRD4ph6NOjp9qIhMy3uXqZoBDVVcoXM+3M=; b=Tg381yMJ+hFAM61XVi+wWfUc6gmGBxrGYpsDoFfycJqeEd5l6MhXjaNzCJeAmhjyQM aprggfvq+SWFWcoapgja/PxCOiKSNE1zquuHosSxGTQlwYmilZEEghMlvCXcPe18xv9C DQnFtcXaJER+twpSWPLg9d9XeV3d8q7QKNHBN4V1nNHqD00ocf8QvoGWs2CPJ5DyvgKx iSLRc0LtaYpRDNMtqnVcieY55r+wQLS6jWMmLYJ9gqnE3s6HDjYOswhVB+S66HpPWUEE mrm2aalTWjzMWwoaXa9MQGk9XyCI+83udK5w2zSmXai12D6bPQbz3gYyy0Wt+H+NfzPm Bzdg== X-Forwarded-Encrypted: i=1; AJvYcCV+qhzz8JSFGXohtqJmYq/V5qqmNkux7MUV8G9OQe6UypKG9i3ppaNDaa9XKim2bkIo1YikSH3lGw==@kvack.org X-Gm-Message-State: AOJu0YxN4+MbQLWGAzCI71nd6qpohG/6GEFoeWmx2i0aAHUmoOKjMT5y iBoyg9HT2/tH4x3TtQEv3AMEOnHzfDo9dXSotajuE/5dfz8MP0Kil5A2kbYMGkne5g== X-Gm-Gg: ASbGncuzFybo9sHRmH9m8MEVYbTk86wDkzP8jEVDfWfvcJabt7294ixvDA+N2hlbh0f k3pTvG18N4VvbrFrT2nltsAtCJNE1ppxWqXfcDolE5cLsVXtREqS7EFpDa4NN0mSv+jXSsLdzTQ zNmiaWDcHUqlGjkLk7fXU37dXikORYJOGNRCCEgCBdy/uBusraYMHms8fnLg6i5LAmM68bLTu6s /XJoVsXdn2qMF5/tHfdyluzoWunH3MIpaR7mPzNcrfxR/+WbrwvWGtmt+BcJmheIEKbpRpLidDJ xBntD28PTOvVh2fMFJudS2J4pKKCtRCr8rFG9KoRujmMe/ehBvxGRFC9EaYwXFqUJcYLKQA7nww v1kM1b0HOhFCOH8w8x2dsAFJnnUowvU732eRsrtMm800ehQ== X-Google-Smtp-Source: AGHT+IGlxIpd2UQXUEXUyT3jJiXyp4cutpSYwnXXezPFwPzdD171HXRG1N0KN3L9uymbdbj+o9Hifg== X-Received: by 2002:a05:6a00:2790:b0:740:5927:bb8b with SMTP id d2e1a72fcca58-742a961837amr25764753b3a.0.1747843127416; Wed, 21 May 2025 08:58:47 -0700 (PDT) Received: from darker.attlocal.net (172-10-233-147.lightspeed.sntcca.sbcglobal.net. [172.10.233.147]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-742a982b884sm10149934b3a.95.2025.05.21.08.58.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 May 2025 08:58:46 -0700 (PDT) Date: Wed, 21 May 2025 08:58:32 -0700 (PDT) From: Hugh Dickins To: Oscar Salvador cc: Hugh Dickins , Gavin Guo , 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 Subject: Re: [PATCH v2] mm/hugetlb: fix a deadlock with pagecache_folio and hugetlb_fault_mutex_table In-Reply-To: Message-ID: <54bd3d6c-d763-ae09-6ee2-7ef192a97ca9@google.com> 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 X-Rspam-User: X-Rspamd-Queue-Id: C1A931C0015 X-Rspamd-Server: rspam09 X-Stat-Signature: ei4xykp6wwr754h5jwgtn9ag4dbsfq3t X-HE-Tag: 1747843128-652870 X-HE-Meta: U2FsdGVkX18Zys1RicXZ9ZVgx7HokHrbTVNMEhOql/iz4hjHd3oDG2fKHj3CWWHb6P9Kw0rIbSPAUbJULfDQoorhZm+wmY2E2mRNQDOjBnfmqSe1g8xV9a+fxYDJwaDNUTyvpE9mDZF8HOeFHFcU6HdJ8p9/vRTXKKpLgf2otfwLj66yC2n7qWMJabHWzcadpaGs9vDGreCfVGEVm5d8Q+DYhKkX3Opp90MTQBYjRSEpbXezDd84XUHFNqkdDcI2R6ZjLYobWg0t0AYm1mK+UJuSo1UnkeS3YUyRxAImBpUEHdDvJFzU0SAmGg8panjpGQPQTTI5/VEmdhP2L0nxNClzqQwXBTb3y/Wbd/u1PtZa11pm4qH96Wx3tIPUsG3RdtGSTQ2DA7YxkZzHRxlAXMzn3Qxegl1eeMqNg6kBG4DS5QM3DOGzcnRCOqTv5wIaVFroOgjNK3SyCwSZYATiWPgkdHPfKxwXuZpzas7Cida9n81gGpDHu5Bz/VpLR6otjioDWDxaXbWYMoGSzSOCa1bzoG66n1bZDwa/Qqx+zXqgbX7LZ0WXG+L3kbJ1kxY0XkW2nzeP2Tkt3s4ciHfb3uP1Qa5j4dgb0k6GtyRcjK5HCsIEd6vHIx862ciXGILFuxblDIZJcNCHVc53C2EmMxy+q1VvkRBbxd9sEm5tkToyJbhrwg6Gsdjw+C14RzyFRrTPA2x08i/LbQl48RJAAB9WRyH+gHbGLHH4ppTu1LuQhCtVFDJyX3E+Nlhl6Wrz6l/ShOGLZYsrlzmkNDMUh/n4ZQm+FYt0/b3vIfhYQT2sVFT7E76ou0t5jvIeNWoakWkjPi/n2YwcW5mJ+yy0BjWN4nhfLjip0b7sL6VSx1IF1MVnhey0PftAf1MwCEMQQObfynHC1Z01qhyJL3QRLMKMV79u7YwtWy1wKz3ftNYzXGdy8NRmOZdfvK1/q1CxqqQo/HQqfu7tHlkhqMp 5L4pdkif a5zDVnHIqXPwDY5ck2ERXWlvJpi0Zs93n+anmB69VtyKbBGyVYzJiIModfCTo/BVoHSYsV7uqp+lxA+sIkhOZ0Tkq4cQS+okNcti2UiE1Ag0iCFptZU6bplwuGuaH2fTIRoCrk5zmpu2Wy4T/5vygzJM1y7szr4gpZFI1auW1+58H5ai/zP9Rwm9FhQlCWrsOb+3aa/7l+9QcJ6YHIMFUNabIOaEg+KmucdjJMhYGIpzishq416Db+xF6Ur/KIem1XXufPLluu33AQ9Y2ljS9Irz3y8Bdd7MVp94HCydo9OijweGnugDMR3lhCbpKNFeTcVUh9gs1zPkFOmZ6zKkNzGiYksaQdOypraRB0bk2p8jwntHgFpZzFXWGH0WlSKSGrg8MLM9LPXJiC0KcIeeCPJPdCg== 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, 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