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 DA083C83F25 for ; Mon, 21 Jul 2025 11:02:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7AF926B007B; Mon, 21 Jul 2025 07:02:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7874C6B009A; Mon, 21 Jul 2025 07:02:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6C4776B009B; Mon, 21 Jul 2025 07:02:31 -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 5EBCB6B007B for ; Mon, 21 Jul 2025 07:02:31 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id D2BC01604AD for ; Mon, 21 Jul 2025 11:02:30 +0000 (UTC) X-FDA: 83687983260.10.3F8F123 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by imf03.hostedemail.com (Postfix) with ESMTP id 61B342001D for ; Mon, 21 Jul 2025 11:02:28 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf03.hostedemail.com: domain of tujinjiang@huawei.com designates 45.249.212.187 as permitted sender) smtp.mailfrom=tujinjiang@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1753095749; a=rsa-sha256; cv=none; b=l5BFrIXKg23cJrfe22mCJVd4j+DmN8cLtgmhPNbKJktIAsaFobyavHksEIwQ12bwuhJZKb 1Wvf0LaOiLDm584qcV3iUYFSmdb5kx9OmzPZ0NpgAXg2z2Eg8bl0qr2C4LtCEwcIQADPKp f46aRgbwFU3GblsEc8BehSk3a2RlgRM= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf03.hostedemail.com: domain of tujinjiang@huawei.com designates 45.249.212.187 as permitted sender) smtp.mailfrom=tujinjiang@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1753095749; 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; bh=wxWOXvaEcnLygZfWlREnGBWZqj1tH+W1SzyzLxABlR8=; b=Aq/bx2ZsfS2Sje86dHcR//VwoouUVsKAMcDN+Svic7mPVsSLTsqGZCBevcFo4BsjTI3LUz mO+h9aRy0TLULpGgCJzg3FO5PocmTtyHUCim6Pwhy3/kKpOHteSiEwfbz1sXqXVp284mbk ikQuCeduyAZ7igDhe5+LK9bS1XzXVLI= Received: from mail.maildlp.com (unknown [172.19.162.254]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4bly676ckWz14LnT; Mon, 21 Jul 2025 18:57:35 +0800 (CST) Received: from kwepemo200002.china.huawei.com (unknown [7.202.195.209]) by mail.maildlp.com (Postfix) with ESMTPS id F0DA718047C; Mon, 21 Jul 2025 19:02:24 +0800 (CST) Received: from [10.174.178.49] (10.174.178.49) by kwepemo200002.china.huawei.com (7.202.195.209) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Mon, 21 Jul 2025 19:02:23 +0800 Message-ID: <0e680080-5b9e-4c85-9fa3-54108e281734@huawei.com> Date: Mon, 21 Jul 2025 19:02:22 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] smaps: fix BUG_ON in smaps_hugetlb_range To: Dev Jain , , , , , , , , , , , , , , , , CC: , References: <20250721081444.277183-1-tujinjiang@huawei.com> <0df4133f-f9e4-41ee-88e1-ab1c857ba923@arm.com> From: Jinjiang Tu In-Reply-To: <0df4133f-f9e4-41ee-88e1-ab1c857ba923@arm.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.178.49] X-ClientProxiedBy: kwepems500002.china.huawei.com (7.221.188.17) To kwepemo200002.china.huawei.com (7.202.195.209) X-Stat-Signature: k4qcf9bcqhkccn64rhkuyujperm4qrc1 X-Rspam-User: X-Rspamd-Queue-Id: 61B342001D X-Rspamd-Server: rspam02 X-HE-Tag: 1753095748-206688 X-HE-Meta: U2FsdGVkX19mgajlWfsTUucrWwnL+627Xtn9SLjI6sc+8cBu+R+aSSkNvcVQ1RJFlsAMuLjUU0vBhRxhR+V4VOu12S8BWF4aHxqZw+4BZ9AXu4SgzOgdo5iFBrIEGVriNy7qnY7HCZvi+8/92XFQSscJgtR3hZOq9UXC7zbuYcgLPuJM7v/HhN3oOVSjtIjtYXXB2hG6LvXX3hJGGHf5ptc/k5hfhWPudMeXJs0+AWTVOc1XIuvntY/A7V9cz6kJqmTNiZ2kue3knZcjjMOk6CaaW2hpqBGgxA+hQN8GXUOlJ4abB+Y4lNTdC5Wg/FS/J7gAKzX7WYxWY83jK34vrrrniUtPD/DSGR6SHDSAp7vlKd3EzEkMuAvuGbV4e7qHMlsQBLIqdjKTVQ4G+Fud0XHOgd7gW9QKo/T1TZEx/2rFwK3T3yCksCMwUo9g8jF6Q3b7vwknhGJD6jjup6hybdXmqkVcI0nE1cuWS9m8SrWT55AM18QZUV+X6spTFDiGFXUvxAs/ShQ4sgiCPv+peGIKX1UQrp3orCHlK/JKnC7bE/E18ii1l/6luQ0uxDdHgsMwYFHjHKypRr99jOW8HQ7iJq4rVZuEMxOQSIccJJnJ3mEwYEKeVGhcVOGKpsbRXBG/IJUM5A4SIFAfx6yJP7mK/x0U9MTvBtU3v+0uL8SVqzrOkKEIIkBJLwiE5+EhCnsVE3mZzi5n18KNuxKMx0TLQmpOx0t8HFfsMkjnYYHCXRh6fwITVwHCvDzUt536CHBFtxN4gXos4O/1QHAOaoUVP8ax/Jyt4rgxOYpkHnLoZugyu2wmJtmZXd1JqARhJRh3bUqo7No1EJHz6IqyyJTFX/xKPaer0fKLkxRQCKNnHLTfdxw2fR29HqjbYMni1IusrUB0hDhq+2Cdl50r9fkRrclmZssKMRrMEOkd9tucELlW8B8C0X33PZUi3DEMy76svkoY2rJp6rOJEB6 x9JSv0+8 Rcprt/B9RyCqILTWfjRuvkIMi/MX9olzODU0GgSSRNK+ueBs1Wdg65BeFG0xdhomBIOtIdJF8bpyN33FGk9X6UfFnQstpP4AtYjmbkvWWLDjoURIqUY3jOtiE1NwlkF+Xgg6rJAX9U8Ip+U96n/Bb5B3E18sIC6+nNQixcXjQCMNasLMKUtozEJKD7neEQmoEOWnAR3rP8mDDX2T9YpLldPJskHxOab/zdBJhNWB1r1K1SyiIl2+0L3uohTTONwl4x1JDhPX7YvShyMS+/CNL5kXhhW7EC77exLHxZ80GlFOzzlGwGooc0EqTiNgEklketPUDX2qyXMWqDoIbUXCkg/xyhQ== 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: 在 2025/7/21 17:11, Dev Jain 写道: > > On 21/07/25 1:44 pm, Jinjiang Tu wrote: >> smaps_hugetlb_range() handles the pte without holdling ptl, and may be >> concurrenct with migration, leaing to BUG_ON in >> pfn_swap_entry_to_page(). >> The race is as follows. >> >> smaps_hugetlb_range              migrate_pages >>    huge_ptep_get >>                                     remove_migration_ptes >>                                  folio_unlock >>    pfn_swap_entry_folio >>      BUG_ON >> >> To fix it, hold ptl lock in smaps_hugetlb_range(). >> >> Fixes: 25ee01a2fca0 ("mm: hugetlb: proc: add hugetlb-related fields >> to /proc/PID/smaps") >> Signed-off-by: Jinjiang Tu >> --- >>   fs/proc/task_mmu.c | 6 +++++- >>   1 file changed, 5 insertions(+), 1 deletion(-) >> >> diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c >> index 751479eb128f..0102ab3aaec1 100644 >> --- a/fs/proc/task_mmu.c >> +++ b/fs/proc/task_mmu.c >> @@ -1020,10 +1020,13 @@ static int smaps_hugetlb_range(pte_t *pte, >> unsigned long hmask, >>   { >>       struct mem_size_stats *mss = walk->private; >>       struct vm_area_struct *vma = walk->vma; >> -     pte_t ptent = huge_ptep_get(walk->mm, addr, pte); >>       struct folio *folio = NULL; >>       bool present = false; >> +     spinlock_t *ptl; >> +     pte_t ptent; >> >> +     ptl = huge_pte_lock(hstate_vma(vma), walk->mm, pte); >> +     ptent = huge_ptep_get(walk->mm, addr, pte); >>       if (pte_present(ptent)) { >>               folio = page_folio(pte_page(ptent)); >>               present = true; >> @@ -1042,6 +1045,7 @@ static int smaps_hugetlb_range(pte_t *pte, >> unsigned long hmask, >>               else >>                       mss->private_hugetlb += >> huge_page_size(hstate_vma(vma)); >>       } >> +     spin_unlock(ptl); >>       return 0; >>   } >>   #else > > LGTM but will wait for others... > > the subject line at the very least should be > "fix race between smaps and migration"; or, > reading smaps_pte_range it doesn't jump > at me why one would run smaps_hugetlb_range without > the PTL, it can be "take PTL in smaps_hugetlb_range". > The current subject line doesn't sound right, > "fixing BUG_ON" means nothing :) Thanks, I will send v2 to update it after the disscussion finishes. > > IMPORTANT NOTICE: The contents of this email and any attachments are > confidential and may also be privileged. If you are not the intended > recipient, please notify the sender immediately and do not disclose > the contents to any other person, use it for any purpose, or store or > copy the information in any medium. Thank you. >