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 76C93C3ABCB for ; Wed, 14 May 2025 04:33:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5CCD36B009C; Wed, 14 May 2025 00:33:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5553F6B00B7; Wed, 14 May 2025 00:33:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3A9A76B00A9; Wed, 14 May 2025 00:33:39 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 1A6DA6B00BC for ; Wed, 14 May 2025 00:33:39 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 04116B98BA for ; Wed, 14 May 2025 04:33:38 +0000 (UTC) X-FDA: 83440244958.02.F77C2FF Received: from invmail4.hynix.com (exvmail4.skhynix.com [166.125.252.92]) by imf07.hostedemail.com (Postfix) with ESMTP id 4F38F40008 for ; Wed, 14 May 2025 04:33:35 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=none; spf=pass (imf07.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=1747197217; 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=SO1lxjgI5tXwzpsrmjvPyXPMiiWkl+/mKYrMLUxAXjQ=; b=iV58msE+RN1MUJ6IxT5kB00GRaL0zQBZGPfpoyKTzfSBuPLqLz8YV+bSdKR3rg19qv3pn9 SQ/Gl2Xil1HZGKURAPmbt62GpCEUhdcXz13syZlLvJPta58jY9YQWpAvs01cZzV84yx8I4 SNdn1I1Z5dUw/SvV7HX4IarMtFCE25E= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=none; spf=pass (imf07.hostedemail.com: domain of byungchul@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=byungchul@sk.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747197217; a=rsa-sha256; cv=none; b=4aHI5Y/wV0JIjux+BJ3Ll/kT0jLRCHafoTTugK5gRJ83GE58GWlGoCaTGa9jbDNLj9YwCR RxDp80Jx10+LP6I3p2RvOXxPWwPdvF04ovZrlioEMv4/sF18cOiLGsIvAJ6DQcDRlz8zN2 FZG1TfvDS+ZZ+zbxyFlyjXht4oMBY/4= X-AuditID: a67dfc5b-681ff7000002311f-77-68241d1cc1f5 Date: Wed, 14 May 2025 13:33:27 +0900 From: Byungchul Park To: Andrew Morton Cc: Gavin Guo , linux-mm@kvack.org, linux-kernel@vger.kernel.org, muchun.song@linux.dev, osalvador@suse.de, 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: <20250514043326.GA4318@system.software.com> References: <20250513093448.592150-1-gavinguo@igalia.com> <20250513175633.85f4e19f4232a68ab04c8e41@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250513175633.85f4e19f4232a68ab04c8e41@linux-foundation.org> User-Agent: Mutt/1.9.4 (2018-02-28) X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrOLMWRmVeSWpSXmKPExsXC9ZZnka6MrEqGwdXnohZz1q9hs1iy9gyz xctd25gsnn7qY7E49+I7k8XlXXPYLO6t+c9qsWznQxaLM9OKLLpn/mC1WLDxEaMDt8eCTaUe E2Z3s3ls+jSJ3ePEjN8sHgsbpjJ7vN93lc1j8+lqj8+b5AI4orhsUlJzMstSi/TtErgyLv/o YSroFK64fm0XUwPjH54uRk4OCQETia5Jz9lg7Ja+tWA2i4CqxMebD1lAbDYBdYkbN34yg9gi AroSq57vArK5OJgFNjNJ9LbvAGsQFkiRuHZgG1gDr4C5xK6Vu5lAbCGBKol/k1qg4oISJ2c+ AbOZBbQkbvx7CVTDAWRLSyz/xwES5hTwlvh9ZyUriC0qoCxxYNtxJpBdEgK32SSmTNzBCHGo pMTBFTdYJjAKzEIydhaSsbMQxi5gZF7FKJSZV5abmJljopdRmZdZoZecn7uJERgdy2r/RO9g /HQh+BCjAAejEg+vha5yhhBrYllxZe4hRgkOZiUR3utZQCHelMTKqtSi/Pii0pzU4kOM0hws SuK8Rt/KU4QE0hNLUrNTUwtSi2CyTBycUg2Mrlsm3X9+Y5WfEJ+39KFODW//xj8mz78rr/my cLbZYxPtba/U1XsXy2zX5WEwSTNZzHdKzH+ua/7iCPtJM/mWs76fJVpQMaWv5FH+9fina5W3 dCxyv+rH5rRipegxI9nI6WrXzDjWi9x9kZ/51WzzQytrpQXP/W9U77bQXdsziZd54h/haIdT SizFGYmGWsxFxYkAEwi5WIoCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrHLMWRmVeSWpSXmKPExsXC5WfdrCsjq5Jh0Lqe22LO+jVsFkvWnmG2 eLlrG5PF0099LBbnXnxnsjg89ySrxeVdc9gs7q35z2qxbOdDFosz04osumf+YLVYsPERowOP x4JNpR4TZnezeWz6NInd48SM3yweCxumMnu833eVzWPxiw9MHptPV3t83iQXwBnFZZOSmpNZ llqkb5fAlXH5Rw9TQadwxfVru5gaGP/wdDFyckgImEi09K1lA7FZBFQlPt58yAJiswmoS9y4 8ZMZxBYR0JVY9XwXkM3FwSywmUmit30HWIOwQIrEtQPbwBp4Bcwldq3czQRiCwlUSfyb1AIV F5Q4OfMJmM0soCVx499LoBoOIFtaYvk/DpAwp4C3xO87K1lBbFEBZYkD244zTWDknYWkexaS 7lkI3QsYmVcximTmleUmZuaY6hVnZ1TmZVboJefnbmIEhvqy2j8TdzB+uex+iFGAg1GJh9dC VzlDiDWxrLgy9xCjBAezkgjv9SygEG9KYmVValF+fFFpTmrxIUZpDhYlcV6v8NQEIYH0xJLU 7NTUgtQimCwTB6dUA2NooEmhb5/RyfvpRRLu6qVdkzrX7C+e3Lr92NmNfF78HfktVy03c+3M DE6+3x+/Icb+2q2pWqY3vjllTDonaTTt8Y/zsWIzM2Q3H73vpnHv1KIPdh8K3CYenxymNMPq CNPbsI45LDvsE/6Y/P30yURy4spZT58t3F3nbTJ/sVe8nqDmso9zu5mVWIozEg21mIuKEwG5 eAQ7cQIAAA== X-CFilter-Loop: Reflected X-Rspam-User: X-Rspamd-Queue-Id: 4F38F40008 X-Rspamd-Server: rspam09 X-Stat-Signature: srxcnmtsphuh41s9to9yjgnj7no9absq X-HE-Tag: 1747197215-934787 X-HE-Meta: U2FsdGVkX1+NW5qEgybbGxR3mwcrfdPu3559wE+9YL6twUX8lJNBjsX9AtMmk4tWx35nYDumfe19rk45OkzzguVUwwRFTCPZin5kkug3aFI2I0nDTgBh3WaRnt+OmpCs7lg4IMO6fQQOI+zxSUZCUc6uM4MwkS/DFH/WvCBLqKkbljN/IIOI2If6n97Aung7Gl2RLvZbG/PcQGeS6pmnUcAn9v39LpnTj8ZDy9Woa5ZxfCjBMvR8F/GCuaCX2musmmcI4P/WhGxYYyUTNtwQNdYe5bLCpa6VY5v/QiQWwPK3JXNm1gsIej9AO1Vhpc0Aj9vxi8/W7ZLiKA0Uz99KLnxSo1Lg6+8MB20VCTH1iAmHZ1enSK5YifPiWRALE87wf9NwVI5xehV8CPBoaK6zOzV1uBBGdktalrdxUJq9dfEzmHIqMsaYhq5aHJYr0dHahriUWDk2Aguec3AIBjnYRjQVMBBhxgNpqbbXdT5Zww1cRjYHKsI8sJoyF/IfljNUI+A0wze8rk5bSMvojDU+PmSI55uPWzOyLFlE8tvk4r/pzRxIGqLez03zVzSuaIiCp+ZuP6Vj0GEi+wgCcR5GtOucVFOgkAAHO1bcA0R2iyd70tChEKWrYil8h3C/u4HhXgDTl7/xC8zEHMXe313ZSF2WD4NCWybq+ocPUVpwRd3u/YDpafBJKZ/K5DMr18gDW1CRwZE+iudzu+sNB1KeJV6R8l3GsUAW1OoFc3C3cfAgtDo/87KEpPC+glJEfkNUV5MfHN8oyeJO8l/lrnSNL906gaha2FEACm7t0DMtR1f/LzEV8DHndyxcNrLj/XLA8Km16u+GrLLIQvvRYhAyTXJVtCriVTed0c0K0LW5t3aRWje4C/s4j1+uYL8xvl7eALMoTEIgJfYIfNdXOuWIQzjr1eP+KI+74cgRZIoMlhIPx0b77pwSmE1HxKXUhgxHJJ42ONnif1yU8IEGlif D8d1xh4M pAEfv9Eo0MwvYYzpxBO5XvI1AIGj98hvPH6cj7m+cg6Xlj13v8rSDYOsnwLUOofomfDthNMP9ZS2jfgfEPFgCs5mhXCOZDfr3FmhnEY7pNsLbE3r3pl+joGUGiIwsvjfbbmiJ 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 Tue, May 13, 2025 at 05:56:33PM -0700, Andrew Morton wrote: > On Tue, 13 May 2025 17:34:48 +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 > > [3] in this scenario: > > > > Process 1 Process 2 > > --- --- > > hugetlb_fault > > mutex_lock(B) // take B > > filemap_lock_hugetlb_folio > > filemap_lock_folio > > __filemap_get_folio > > folio_lock(A) // take A > > hugetlb_wp > > mutex_unlock(B) // release B > > ... hugetlb_fault > > ... mutex_lock(B) // take B > > filemap_lock_hugetlb_folio > > filemap_lock_folio > > __filemap_get_folio > > folio_lock(A) // blocked > > unmap_ref_private > > ... > > mutex_lock(B) // retake and blocked > > > > This is a ABBA deadlock involving two locks: > > - Lock A: pagecache_folio lock > > - Lock B: hugetlb_fault_mutex_table lock > > Nostalgia. A decade or three ago many of us spent much of our lives > staring at ABBA deadlocks. Then came lockdep and after a few more > years, it all stopped. I've long hoped that lockdep would gain a > solution to custom locks such as folio_wait_bit_common(), but not yet. > > Byungchul, please take a look. Would DEPT > (https://lkml.kernel.org/r/20250513100730.12664-1-byungchul@sk.com) > have warned us about this? Sure, I will check it. I think this type of deadlock is what DEPT can do the best. Byungchul > > > > ... > > > > The deadlock occurs between two processes as follows: > > > > ... > > > > Fixes: 40549ba8f8e0 ("hugetlb: use new vma_lock for pmd sharing synchronization") > > Cc: > > It's been there for three years so I assume we aren't in a hurry. > > The fix looks a bit nasty, sorry. Perhaps designed for a minimal patch > footprint? That's good for a backportable fixup, but a more broadly > architected solution may be needed going forward. > > I'll queue it for 6.16-rc1 with a cc:stable, so this should be > presented to the -stable trees 3-4 weeks from now.