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]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8F1F3CA9EBD for ; Sat, 10 Oct 2026 02:04:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 600386B008A; Fri, 9 Oct 2026 22:04:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5B0596B008C; Fri, 9 Oct 2026 22:04:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4C6D36B0095; Fri, 9 Oct 2026 22:04:34 -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 2EB846B008A for ; Fri, 9 Oct 2026 22:04:34 -0400 (EDT) Received: from smtpin22.hostedemail.com (lb01a-stub [10.200.18.249]) by unirelay06.hostedemail.com (Postfix) with ESMTP id A02A7A7AF3 for ; Sat, 10 Oct 2026 02:04:33 +0000 (UTC) X-FDA: 85305072426.22.9AEB049 Received: from mta1.migadu.com (out-132.mta1.migadu.com [95.215.58.132]) by imf09.hostedemail.com (Postfix) with ESMTP id 6FBFC140007 for ; Sat, 10 Oct 2026 02:04:29 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=DOM4+DqP; spf=pass (imf09.hostedemail.com: domain of lance.yang@linux.dev designates 95.215.58.132 as permitted sender) smtp.mailfrom=lance.yang@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1791597871; 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=uHxO6UhFJc0bAsYGv4HsuPsdXBzuhoxo1U6wcsppvlQ=; b=uhkUy4+OhFqqy6yPmUDf4+h3fhXXrU2AHyuvZmydgRyHRcyakiOByFM5WiQN7SXARbkZZ9 c8zKTkSvPzmJiMsEg5/1/K2Th7LWv9TfMh4lP3BDfrObqJuzhV0ouchzJzKVY2iPH/mtKq z+atc0VfcpmlcFG9x2iqsfrdbr1t/Zk= ARC-Seal: i=1; a=rsa-sha256; d=hostedemail.com; s=arc-20220608; cv=none; t=1791597871; b=jLMiS2MZS+CPDac6E6ZM01Sv2SfyGES+V6Gn+iqB7v7kPymVNior48W9SjDhZcbkDbSKIT /4pbYQFE9FFZxOAORkcgTPR3Ghh4T4neGgTtSND1JUfc+LpzoC8lLm4YXXWHfY6c4BSFS8 uOXuLEhQl2zCwG9lBMp1LbZFrJ0l8bg= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=DOM4+DqP; spf=pass (imf09.hostedemail.com: domain of lance.yang@linux.dev designates 95.215.58.132 as permitted sender) smtp.mailfrom=lance.yang@linux.dev; dmarc=pass (policy=none) header.from=linux.dev X-Envelope-To: linux-mm@kvack.org DKIM-Signature: a=rsa-sha256; bh=fbmxI+htNWm74+BKcQ7IgvVzWZQKZq0MmTX+riidlGQ=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1791597868; v=1; x=1792202668; b=DOM4+DqPs3Tc09aTSjq+ILMdH3nspFXwQJCGkdPp7giA6R1trlwgLinczZVVUGIyI8L8e0Va 0r92MXcvq8ngLozCTLGPMajlVx6BigF3CNbVeweFbeNlZVuKYppzIYj0TP0H58CkK++vjJeLRMR vB9VPa3TPveqkTeh7iQ18XsA= X-Envelope-To: linux-mm@kvack.org Received: by smtp.migadu.com with ESMTPS id 6dd7cb59ec794fa2; Sat, 10 Oct 2026 02:04:26 +0000 X-Mizu-Trace-ID: 6dd7cb59ec794fa2 X-Migadu-Flow: FLOW_OUT Message-ID: Date: Sat, 10 Oct 2026 10:04:12 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm/huge_memory: avoid transient none PMDs during lazyfree reclaim Content-Language: en-US To: Zi Yan , "David Hildenbrand (Arm)" Cc: Kyle Zeng , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Usama Arif , Kiryl Shutsemau , stable@vger.kernel.org References: <20261009165214.40212-2-kylebot@openai.com> <8db35dc0-eb06-42e4-90f9-534522e810e1@kernel.org> <55765FF3-18D7-424C-984D-81C316F323E1@nvidia.com> <0ec81c65-fbf5-405f-948b-0fb1b2e083e8@linux.dev> From: Lance Yang In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 6FBFC140007 X-Rspam-User: X-Stat-Signature: c8pcmdwcpj77iyejjhcm8cwoezi1gsyy X-HE-Tag: 1791597869-366076 X-HE-Meta: U2FsdGVkX18QVT20QYyNPqz9/ycfmEpCNX3L0AEMsPxkzyD1KLmVuQN27zTuqMdJ5iB57RaYXsyxff5Ij6eWBvfnboJlCuVQikWUIWFZyExnyqQ9dv5adpwBi4hUajoPVTfRDivFcrjsMxO3+7UAMHx13ZwHLgxgLsnj3fBPncAa2iwpO8zNU8vDM49jlVIXR8RUpeYrsri+vHidpSK8IC4mZk3l6d4/S+vuDakVznt9FF+FhAeuS4AjbtaIUA2w5rg/hidBqto5hcVaazElSzUYbFPdJtXzjSLLWCc3tyX0kySQWmx4nDDGjIYZMjKZNP2MKWTSPOXCm4WnceHPkrLfw3Ggg2WaAdG7VNVjZD70MzORSryITRsd8pJEjZokrLVcTDdZfkLqzhfJCFRRqFuBngF92TCa6mI/H4H2KAEyTPYCqUpprbxNE/fF9lgh8DS6rmteqay9y0XvnE3PJH+pNsiYCoFVlbsx1DeUsQx40YnMWuEnId1Qb11DTSpvr0LvOd5oAB2DzLKjgXt1rzJm8Dj85WTLaPbU2iDS4vhxnB1X4fLz/onY+14hAAn1RJiSqpX7L4dKhATn9ScHEw90IP2BL/Husl/gtef5xf23RyGiHxDHur+ieoZjfBLACKchiAVZITzrTK2NdUiJNf9MCCZfUxDVupTo6KkV+BkkvSDYxtpS1NHQNT5Wkye4qv/7WUc+ItB6kQgOmbFkj7/e4JW0Gz9MD55wpEJXW38yEqoMEl/eE5+bWRc/7cU9E7u0UhTDiMys+HwRC8PBt/dJ1ceZ33M84NWd1N8faNxUT/Lbf7nRdC7if5LsfNeDlUkKRUW/r+Y7vcP5RDULUazHAyCwy5A8cVIF+Woxo82yi2K5f7G3hWZbAgnOFj3xd8gddn+mY0lAgtwlChtwfDcGtJIXgF/wSX5ImqFlOf3v3Y7Iyzu74qKU3pC9JJR0eTq24IgGWMKBJmCMnNj O5+gA95O 3eIk8UoUT2gFbgAhgDw/3VAiPGMbSNlSsqROYyNkm/DYotj3nRF4+jZEHmhodLHL563XpeVq/heAas8UmkkSjvxhwELqyDvGTStGQv4Coz3v1rk+Q0FQNOHV/sx42LC+g7DENhzUTPhZUW7xOKcbA6UHOxCj0d3qBk+nZTLw4rICXjIZ6BURwezs2JkfxZuwZAfNbPGujTs6WH3kROSa00zLx33Z5Zrm63kXNrDYJrQd7eRCMsJse1jEMSD/lpFlIIrfZbg6CO03vMPe8BEIBULaJu+llnN2nWCwp3ASp1G/gjJW3XvDDsiKF0oVH+cScXRg9RZ230tBFx3JCNmwj8Zuk6h4b8Vd2SRzytIZV+ikXf6OY0rJzW1kNJF5CsM9efHr1icCae6R/8T8= Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On 2026/10/10 09:56, Zi Yan wrote: > On Fri Oct 9, 2026 at 9:12 PM EDT, Lance Yang wrote: >> >> >> On 2026/10/10 04:44, David Hildenbrand (Arm) wrote: >>> On 10/9/26 22:27, Zi Yan wrote: >>>> On 9 Oct 2026, at 16:23, David Hildenbrand (Arm) wrote: >>>> >>>>> On 10/9/26 20:17, Zi Yan wrote: >>>>>> >>>>>> There are some gaps we need to close before getting this fix in: >>>>>> >>>>>> 1. GUP-fast cannot follow the invalidated PMD: riscv and LoongArch need >>>>>> pmd_access_permitted() that requires _PAGE_PRESENT; s390's >>>>>> pmdp_invalidate() needs a change. >>>>> >>>>> Ugh. We really need pmdp_invalidate() to have reasonable semantics. This whole >>>>> PMD locking is a mess :( >>>>> >>>>>> >>>>>> 2. sparc64's thp_pte_count can be imbalanced with this change (based on >>>>>> Lance's offlist feedback). >>>>> >>>>> Ack. >>>>> >>>>>> >>>>>> In addition, powerpc has a page table check issue similr to riscv, where riscv >>>>>> fixed it with commit 9f4a88b8d01a6. This is not related to this issue >>>>>> but discovered along with the investigation. >>>>> >>>>> Zi, do you have the capacity to take over this patch? >>>> >>>> Yes, I can take over it. My plan is to send a series including >>>> patches for 1 and this patch as is. powerpc fix can be a separate one. >>>> >>>> Best Regards, >>>> Yan, Zi >>> >>> If we need a quick stable fix we could temporarily disable the whole thing until >>> it is fixed, just a thought. >> >> +1 we could do that for now. A quick fix with minimal churn (correctness >> comes first). > > How about the patch below? unmap_huge_pmd_locked() and > __discard_anon_folio_pmd_locked() will be dead code to keep the patch > small. Later, with arch fixes, the function can be re-enabled. Looks good to me! Thanks for the quick fix! > > > From 2204b9d08530796847a586428b1f782b987d071c Mon Sep 17 00:00:00 2001 > From: Zi Yan > Date: Fri, 9 Oct 2026 21:28:10 -0400 > Subject: [PATCH] mm/rmap: don't discard lazyfree THPs at PMD level > > __discard_anon_folio_pmd_locked() clears a lazyfree THP PMD before it knows > whether the folio can be discarded, and restores it if the folio was > redirtied or has extra references. A concurrent munmap() or > MREMAP_DONTUNMAP skips the temporary none PMD and unlinks the VMA from its > anon_vma, so the folio stays mapped after the anon_vma is freed and a later > rmap walk uses the freed anon_vma. > > Using an invalidated PMD instead of a cleared one requires additional arch > code fixes. Instead, disable the PMD level discard of lazyfree THPs, as > before commit 735ecdfaf4e8 ("mm/vmscan: avoid split lazyfree THP during > shrink_folio_list()"). > > Fixes: 735ecdfaf4e8 ("mm/vmscan: avoid split lazyfree THP during shrink_folio_list()") > Reported-by: Kyle Zeng > Closes: https://lore.kernel.org/r/20261009165214.40212-2-kylebot@openai.com > Cc: stable@vger.kernel.org > Assisted-by: LLM > Signed-off-by: Zi Yan > --- Reviewed-by: Lance Yang > mm/rmap.c | 11 ----------- > 1 file changed, 11 deletions(-) > > diff --git a/mm/rmap.c b/mm/rmap.c > index 805db93fe0428..1131b76bbbc28 100644 > --- a/mm/rmap.c > +++ b/mm/rmap.c > @@ -2275,17 +2275,6 @@ static bool try_to_unmap_one(struct folio *folio, struct vm_area_struct *vma, > } > > if (!pvmw.pte) { > - if (folio_test_lazyfree(folio)) { > - if (unmap_huge_pmd_locked(vma, pvmw.address, pvmw.pmd, folio)) > - goto walk_done; > - /* > - * unmap_huge_pmd_locked has either already marked > - * the folio as swap-backed or decided to retain it > - * due to GUP or speculative references. > - */ > - goto walk_abort; > - } > - > if (flags & TTU_SPLIT_HUGE_PMD) { > /* > * We temporarily have to drop the PTL and