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 132C7C3ABD8 for ; Fri, 16 May 2025 06:03:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B1A0F6B00AF; Fri, 16 May 2025 02:03:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A9E076B00B0; Fri, 16 May 2025 02:03:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9424E6B00B1; Fri, 16 May 2025 02:03:19 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 70A216B00AF for ; Fri, 16 May 2025 02:03:19 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id BC65D14156A for ; Fri, 16 May 2025 06:03:19 +0000 (UTC) X-FDA: 83447728518.05.3F900C6 Received: from invmail4.hynix.com (exvmail4.skhynix.com [166.125.252.92]) by imf25.hostedemail.com (Postfix) with ESMTP id 6C11EA000C for ; Fri, 16 May 2025 06:03:17 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=none; spf=pass (imf25.hostedemail.com: domain of byungchul@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=byungchul@sk.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747375398; 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; bh=e+8P5I5YRlUqnnRe0kb1xdgE63FBG7E7kkk+9npiriE=; b=HxLSgvHnaMHbz5mEvldRJQIAbSJ7rdaXutRFH8iUjoXhJ4TsnUqfIK7oeryNxtajOg3UFk e2oS+P1vZyQ6HP7j8SgyJClf9gwJOcpQ26cHarmjlZAllqUe2JbXrd8v6WqgEnpBzepLcj fFOk8xCO8zlPZ0IbB2KqwcRWWQAk6kU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747375398; a=rsa-sha256; cv=none; b=dyZDwBzODQdKC4utxECNQYFPB8JpzHdEBwdUIuUiX+nx9VG/VLnJ3JHdSxKy9DULXmYOEo rUCzZfjVPtendT5yqO88/fv6BxsQYtjVpV5B0m2ywTgGZgLPrWDZj1RB6G0Sz28ti86b3t 9iWUsWio08AJN3+RSzQrMVtiuJ48mgs= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=none; spf=pass (imf25.hostedemail.com: domain of byungchul@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=byungchul@sk.com; dmarc=none X-AuditID: a67dfc5b-669ff7000002311f-3f-6826d52339f8 Date: Fri, 16 May 2025 15:03:09 +0900 From: Byungchul Park To: Gavin Guo Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, muchun.song@linux.dev, osalvador@suse.de, akpm@linux-foundation.org, mike.kravetz@oracle.com, kernel-dev@igalia.com, stable@vger.kernel.org, Hugh Dickins , Florent Revest , Gavin Shan , kernel_team@skhynix.com Subject: Re: [PATCH] mm/hugetlb: fix a deadlock with pagecache_folio and hugetlb_fault_mutex_table Message-ID: <20250516060309.GA51921@system.software.com> References: <20250513093448.592150-1-gavinguo@igalia.com> <20250514064729.GA17622@system.software.com> <075ae729-1d4a-4f12-a2ba-b4f508e5d0a1@igalia.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <075ae729-1d4a-4f12-a2ba-b4f508e5d0a1@igalia.com> User-Agent: Mutt/1.9.4 (2018-02-28) X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpgkeLIzCtJLcpLzFFi42LhesuzUFf5qlqGwdRVAhZz1q9hs1iy9gyz xctd25gsnn7qY7E49+I7k8XlXXPYLO6t+c9q8XF/sMWynQ9ZLM5MK7LonvmD1WLBxkeMDjwe CzaVekyY3c3msenTJHaPEzN+s3gsbJjK7PHx6S0Wj/f7rrJ5bD5d7fF5k1wAZxSXTUpqTmZZ apG+XQJXxsMurYLjYhXnjnUwNzBOEOpi5OSQEDCR2HW9nQXGvrDxBpjNIqAqsXzuCzYQm01A XeLGjZ/MILaIgLLEhykHgWq4OJgFTjBJXJy3iB0kISyQInHtwDawZl4BC4nj+5YzgxQJCcxh lLh59Ss7REJQ4uTMJ2BFzAJaEjf+vWTqYuQAsqUllv/jAAlzCthJ3O/ewwRiiwItO7DtOBPI HAmB12wSDX9eMEJcKilxcMUNlgmMArOQjJ2FZOwshLELGJlXMQpl5pXlJmbmmOhlVOZlVugl 5+duYgTGy7LaP9E7GD9dCD7EKMDBqMTD63BdNUOINbGsuDL3EKMEB7OSCO/1LOUMId6UxMqq 1KL8+KLSnNTiQ4zSHCxK4rxG38pThATSE0tSs1NTC1KLYLJMHJxSDYzVAn3rz9saqB4VPHhR 69aq/lCb7L021tseR7eqdHkwLN/+zaXHRyV/zqufE0Q3SVgVFpxnOnzoxWoPnuybs6J/346T ZUp3tni2+yfHgSwPn9un2i/KcVVMf5oSdEqA7UdPyn+HDq5/tm/d6zZZft7/5Xreug4Bq2+2 i4vN1NaqT41sY9Le7abEUpyRaKjFXFScCAAsr5bMkwIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrGLMWRmVeSWpSXmKPExsXC5WfdrKt8VS3DoFXZYs76NWwWS9aeYbZ4 uWsbk8XTT30sFudefGeyODz3JKvF5V1z2CzurfnPavFxf7DFsp0PWSzOTCuy6J75g9ViwcZH jA68Hgs2lXpMmN3N5rHp0yR2jxMzfrN4LGyYyuzx8ektFo/3+66yeSx+8YHJY/Ppao/Pm+QC uKK4bFJSczLLUov07RK4Mh52aRUcF6s4d6yDuYFxglAXIyeHhICJxIWNN1hAbBYBVYnlc1+w gdhsAuoSN278ZAaxRQSUJT5MOQhUw8XBLHCCSeLivEXsIAlhgRSJawe2gTXzClhIHN+3nBmk SEhgDqPEzatf2SESghInZz4BK2IW0JK48e8lUxcjB5AtLbH8HwdImFPATuJ+9x4mEFsUaNmB bceZJjDyzkLSPQtJ9yyE7gWMzKsYRTLzynITM3NM9YqzMyrzMiv0kvNzNzECQ39Z7Z+JOxi/ XHY/xCjAwajEw+twXTVDiDWxrLgy9xCjBAezkgjv9SzlDCHelMTKqtSi/Pii0pzU4kOM0hws SuK8XuGpCUIC6YklqdmpqQWpRTBZJg5OqQbGQwbXnn4RcGZydr7ReDpuw/s3agHMT+61uXC6 sr//J37grZbO8rfO7oFVLYvelnSau+mbc+Ve+bnngFXu3kvhB1M9mi1r03eHiwcqrJ8l28aq 5XghatGDp0qWS2Q3W3PWP1/z0Z9vAfeqVeFbog98d8n471S5PyPp0cJzd5/cOm7l6P702JvJ SizFGYmGWsxFxYkA9ttclnkCAAA= X-CFilter-Loop: Reflected X-Stat-Signature: xf18dj7mghisy734q4kfotauk93suex7 X-Rspamd-Queue-Id: 6C11EA000C X-Rspam-User: X-Rspamd-Server: rspam02 X-HE-Tag: 1747375397-521930 X-HE-Meta: U2FsdGVkX1//uA052C2r8w5chMzkCToHJlHDB84tZuQB81N/kWT9vKe89XnvuM+/moLm+CFiRI9ODpzh239uRYkqwf1Qk6Q1QnbdQW7TP7auKw/2mXuxc8pmldyFWZrRJkojY6rIe6c7NhSp71gFCHwzXQWt1ikijJmzxrsmQaAM+XZoBjTfwTBVdC58AKtTRMq2VSrDVgzRnQQ0zLS6wJ1a3EV+jOQ8w9crnXXeXiVWAwBob94TsSZs410m9rart5LdlxB0djOUecRsJJKLeuvnqHBXuq47iWUpTWIjvA9XOt4PfIsGGcwwUAXFQxmF3Ewxh2J/mXGdBEb0XAl2paSbnw8bSAe5iRj91OHm4Y+02zJO9mPfIp4alpP3z0sbzLG8bHmthh3+gDqNoiOsX1us3JBHtbrxsp48UXhJKuvp9Lplzy+qi/wsOno2vzllyb0Zxs/FGPNRwGYtGf5YJLIhXwi5H5eOfFQftjbzbXVYpuzsRlb13bg1kg+GSFFk6DxZSmD0fGTP/mgnZ+7v+fH9EqEKpHBnpAY1kjOVjBASKNWGiWbmfODh/yfRyoJRSiMDGgxS5i125kZ0cvFSZbmxp+TfRNb3xeaiLBJ1ADF/qG1zfPL+go3WRuAbQM/7AgzsITA/wiABCj8P2GV/RYzvCLy/sC7JHvrh13en2XSJ59EeXEskF6yFe5SpAFjnP/7P8v6itGZwhBBPBdYivA== 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 14, 2025 at 04:10:12PM +0800, Gavin Guo wrote: > Hi Byungchul, > > On 5/14/25 14:47, Byungchul Park wrote: > > On Tue, May 13, 2025 at 05:34:48PM +0800, Gavin Guo wrote: > > > The patch fixes a deadlock which can be triggered by an internal > > > syzkaller [1] reproducer and captured by bpftrace script [2] and its log > > > > Hi, > > > > I'm trying to reproduce using the test program [1]. But not yet > > produced. I see a lot of segfaults while running [1]. I guess > > something goes wrong. Is there any prerequisite condition to reproduce > > it? Lemme know if any. Or can you try DEPT15 with your config and > > environment by the following steps: > > > > 1. Apply the patchset on v6.15-rc6. > > https://lkml.kernel.org/r/20250513100730.12664-1-byungchul@sk.com > > 2. Turn on CONFIG_DEPT. > > 3. Run test program reproducing the deadlock. > > 4. Check dmesg to see if dept reported the dependency. > > > > Byungchul > > I have enabled the patchset and successfully reproduced the bug. It > seems that there is no warning or error log related to the lock. Did I > miss anything? This is the console log: > https://drive.google.com/file/d/1dxWNiO71qE-H-e5NMPqj7W-aW5CkGSSF/view?usp=sharing My bad. I think I found the problem that dept didn't report it. You might see the report with the following patch applied on the top, there might be a lot of false positives along with that might be annoying tho. Some of my efforts to suppress false positives, suppressed the real one. Do you mind if I ask you to run the test with the following patch applied? It'd be appreciated if you do and share the result with me. Byungchul --- diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index f31cd68f2935..fd7559e663c5 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -1138,6 +1138,7 @@ static inline bool trylock_page(struct page *page) static inline void folio_lock(struct folio *folio) { might_sleep(); + dept_page_wait_on_bit(&folio->page, PG_locked); if (!folio_trylock(folio)) __folio_lock(folio); } diff --git a/kernel/dependency/dept.c b/kernel/dependency/dept.c index b2fa96d984bc..4e96a6a72d02 100644 --- a/kernel/dependency/dept.c +++ b/kernel/dependency/dept.c @@ -931,7 +931,6 @@ static void print_circle(struct dept_class *c) dept_outworld_exit(); do { - tc->reported = true; tc = fc; fc = fc->bfs_parent; } while (tc != c); diff --git a/kernel/dependency/dept_unit_test.c b/kernel/dependency/dept_unit_test.c index 88e846b9f876..496149f31fb3 100644 --- a/kernel/dependency/dept_unit_test.c +++ b/kernel/dependency/dept_unit_test.c @@ -125,6 +125,8 @@ static int __init dept_ut_init(void) { int i; + return 0; + lockdep_off(); dept_ut_results.ecxt_stack_valid_cnt = 0; --