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 BE6F3C8303C for ; Fri, 11 Jul 2025 08:56:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5F7216B00A3; Fri, 11 Jul 2025 04:56:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5A7F06B00A4; Fri, 11 Jul 2025 04:56:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4BE056B00A5; Fri, 11 Jul 2025 04:56:08 -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 38CCD6B00A3 for ; Fri, 11 Jul 2025 04:56:08 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id D348C82C51 for ; Fri, 11 Jul 2025 08:56:07 +0000 (UTC) X-FDA: 83651376774.22.75607F9 Received: from szxga04-in.huawei.com (szxga04-in.huawei.com [45.249.212.190]) by imf28.hostedemail.com (Postfix) with ESMTP id 905B8C0004 for ; Fri, 11 Jul 2025 08:56:05 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf28.hostedemail.com: domain of tujinjiang@huawei.com designates 45.249.212.190 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=1752224166; 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=0sLnhWU/jSbbNVtwxNZMCR8KbX5BwxcS9+cxZjQ27gs=; b=3TtOsGUUSUOYcW2BJH97OLT0M35r7VePB03c+1yXZHVOagbzIUFfgDRrQuY39SkLBYRlvd MHzJ6anBnCV1nj84reOmEOCZovQxFbha0oJqd9fmvaQVeGHspfYRIc3XmU8f4btcVy/pIv XNorKN0RcnKF+XFNDXwDoAZ7fF0yfcc= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf28.hostedemail.com: domain of tujinjiang@huawei.com designates 45.249.212.190 as permitted sender) smtp.mailfrom=tujinjiang@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752224166; a=rsa-sha256; cv=none; b=XV6qBdcTTLhaJrDTsTZr6ABM1fP4Gb37NMcJzTum9lvUfEbFelch6p3sR5i3FZlB+Tpyfc ZdcDy9xKF/ViXCsm3GzVxpUjrHHKoJsHdB3JgiPjLupHlGxONWAMJyiqRGj/3c9TvwheoF yKNUWU90sFXl7KO5+jpGmnI2c1byiko= Received: from mail.maildlp.com (unknown [172.19.162.112]) by szxga04-in.huawei.com (SkyGuard) with ESMTP id 4bdlrD1RXyz2TSwj; Fri, 11 Jul 2025 16:54:04 +0800 (CST) Received: from kwepemo200002.china.huawei.com (unknown [7.202.195.209]) by mail.maildlp.com (Postfix) with ESMTPS id 0CF3C140278; Fri, 11 Jul 2025 16:56:02 +0800 (CST) Received: from [10.174.179.13] (10.174.179.13) 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; Fri, 11 Jul 2025 16:56:01 +0800 Message-ID: Date: Fri, 11 Jul 2025 16:56:00 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH v3] mm/vmscan: fix hwpoisoned large folio handling in shrink_folio_list To: David Hildenbrand , , , , , CC: , References: <20250711021734.2362044-1-tujinjiang@huawei.com> <990715ed-f660-4b88-b850-57d6aee6ee59@redhat.com> From: Jinjiang Tu In-Reply-To: <990715ed-f660-4b88-b850-57d6aee6ee59@redhat.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.179.13] X-ClientProxiedBy: kwepems200002.china.huawei.com (7.221.188.68) To kwepemo200002.china.huawei.com (7.202.195.209) X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 905B8C0004 X-Stat-Signature: im5jkr57w3ptefkztzzecek158jp7dw1 X-Rspam-User: X-HE-Tag: 1752224165-288523 X-HE-Meta: U2FsdGVkX1/SA+XayeB2GPL8J/D0ZMnBWpmdsir+hAOtKfLCKttlaCl4P0yd3EnDAcaYI5xA6uM9PCHmXyiFg6r4X94yQ/m0cnx2k0luqqEYpFVbyRq8T+tfDIQAqi9UQmiMXQkXQqGzoXXgQXRBRXsdiyTSAjR8Ar3TrLVszAhToTu0n6FOmLCZfOmghVwOqjVqJzoZsrXEo9GKLf/UPu4BxFuIFBAZM7okqUP/9hM1xAsmlxsN+Ht43Vl+xgjH2eegNGq2KPTYKJ6ACsZcjw+BSy9D95REdNAaKHy91EzwMM2rpu6lfJb7zpcVLp+ecXjt/O11Mq0On9OvASup20gWqMpIrVNAx8bVo2h/d2jA6/3Rb97woli8Iv1tmKkz0stTDA62uJzpiTyY2JG/stg/hd+gCuVI9C0BhK75+wa7+vvVxSb9OXB/2vOdvVhIGW43tEP1/aVx0OGat1mUy6z0rOrBXZi7DZXOUm/3sUm3GfFd60R/4yYrL8xRRCprHSVt48UJpqneIcRiJAH4HoRc6FVaDYllA7fOUTQstfEXfP6EGJQ6tyJFklNCri/pzqoLRB6lTtqJS1xpQWOKYV6UMA7fYMXFUyTpX2AyYwmI9uqWkWoF4eHmUF+xdlW/P491RxeAip9bf2fWu172o1S5aR4RepuxidYCtp6JhapRnmc0zgzt2ee9oIfGwwpXkHx4WK5IRsiavh0Ok47ogdBEOedQWgRqxf5UM/ymyy3aDt47tYJ2jBzk1GCUmkJW1GlND9Qx5BgUaT7ea50cteO4uNyWFQzU8Sj0bS4eKrssHz4XMvGtxV4k3tbAzzbtp3BlD9mOuE+F7RSro5aysXZEAwB5bmcLBdmYZzAb6rsX93oG5bt9/9809tl6mOee+uFHYHE39IpkRx3TQ6vsg4jewjayYHTwQKAC2CaUyJXHCW2kbHcDzE9HdKAKVpGpanc/fQ9WFTVvMLUJzUm +dSNrcmW 9ktB18NxW1ZT7T+XHnUSyXCm0jihbMV3kIWnPaWZJI6wZsRlEteCxfil77nU4kzZjNkd9X3PdDF0n1o0ytHn2t74vspmQcBsbDbEBwXGEHa3hwhzwGSxUoIrb9lFRR8mm9b7iBRLf4cfCImobN9zXQVFMdf/4z+nZvqPhhXZ+y/VvxMYAXyIlLdn32aCsUA0/a8/lzcjw2h0rqmtdjcRKPfzBpKa+ZyO5Uq92ppRkutPGqATycBXO9QMASJSVqyLqBO1z6/rZHSjsrUSfTxjAIwWH/jmbXrtwKrLrUSMoNQ3OnTAn2uTjTB2AiMRwlbLBZl2Zr3dtyXOjacDcqw/8rqsV0rrRxgs7UlARm2ccZA5XCBly0c2GQHggIGokE5vPxj68M6mXTvkpOEeuN5eN4a8MEh+7oNi3W+S0PMICiQ+GtnJd4BVwD30uTg== 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/11 16:05, David Hildenbrand 写道: > On 11.07.25 04:17, Jinjiang Tu wrote: >> In shrink_folio_list(), the hwpoisoned folio may be large folio, which >> can't be handled by unmap_poisoned_folio(). For THP, try_to_unmap_one() >> must be passed with TTU_SPLIT_HUGE_PMD to split huge PMD first and then >> retry. Without TTU_SPLIT_HUGE_PMD, we will trigger null-ptr deref of >> pvmw.pte. Even we passed TTU_SPLIT_HUGE_PMD, we will trigger a >> WARN_ON_ONCE >> due to the page isn't in swapcache. >> >> Since UCE is rare in real world, and race with reclaimation is more >> rare, >> just skipping the hwpoisoned large folio is enough. memory_failure() >> will >> handle it if the UCE is triggered again. >> >> Fixes: 1b0449544c64 ("mm/vmscan: don't try to reclaim hwpoison folio") >> Reported-by: syzbot+3b220254df55d8ca8a61@syzkaller.appspotmail.com >> Closes: >> https://lore.kernel.org/all/68412d57.050a0220.2461cf.000e.GAE@google.com/ >> Acked-by: David Hildenbrand >> Reviewed-by: Miaohe Lin >> Signed-off-by: Jinjiang Tu >> --- >> v3: >>   * collect Acked-by and Reviewed-by >>   * update commit message and commemts, sugguested by Oscar Salvador. >> >>   mm/memory-failure.c | 4 ++++ >>   mm/vmscan.c         | 8 ++++++++ >>   2 files changed, 12 insertions(+) >> >> diff --git a/mm/memory-failure.c b/mm/memory-failure.c >> index b91a33fb6c69..9ee176fcc949 100644 >> --- a/mm/memory-failure.c >> +++ b/mm/memory-failure.c >> @@ -1561,6 +1561,10 @@ static int get_hwpoison_page(struct page *p, >> unsigned long flags) >>       return ret; >>   } >>   +/* >> + * The caller must guarantee the folio isn't large folio. >> try_to_unmap() >> + * can't handle it. > > Not completely accurate: it may be a hugetlb folios, that is also > large, but supported. > > "isn't a large folio, except hugetlb." > Thanks, updated it.