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 BB5A9C77B7F for ; Fri, 27 Jun 2025 13:02:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 057986B00AA; Fri, 27 Jun 2025 09:02:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 007526B00AF; Fri, 27 Jun 2025 09:02:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E10FD6B00B0; Fri, 27 Jun 2025 09:02:04 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id CC26B6B00AA for ; Fri, 27 Jun 2025 09:02:04 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 831B654FD4 for ; Fri, 27 Jun 2025 13:02:04 +0000 (UTC) X-FDA: 83601193368.25.7B7D0E5 Received: from szxga07-in.huawei.com (szxga07-in.huawei.com [45.249.212.35]) by imf13.hostedemail.com (Postfix) with ESMTP id 440312002E for ; Fri, 27 Jun 2025 13:02:01 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf13.hostedemail.com: domain of tujinjiang@huawei.com designates 45.249.212.35 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=1751029322; 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=ZcN/1ALRrxiOyl+HVj4JeT9F70fNJmWOG5llBVbzZ3s=; b=jSzdqrnwdEeInMQGWC2C+FAeE8wx52ZgYumAcpKSqT7ZeCeRb1UMpNXOZIGrA4q+Rj0GQx gwoTghsWGXwt6feZsZjEx5tc14ISi14Bi/rkwwG6QjxNq6jesxdwl6vhVLUBguc/xBAc31 JTJAbd1imgzcVMxhUC4rfSz/8i7BILs= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf13.hostedemail.com: domain of tujinjiang@huawei.com designates 45.249.212.35 as permitted sender) smtp.mailfrom=tujinjiang@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751029322; a=rsa-sha256; cv=none; b=ZA4jZYpSBu7U5+IrQAYAs/b0TEo/d3+eOO5pWTT+/hBcTwYqnXagpIqnxQx+BiGIXteA2R MDBVjb7hEPAWGdfU2W16voTAxKzpr0+gWeTrAPdFN1qKfhtfCceVQL+yMnEyu+HsonQjZS s5THVntWa4kOnpjEMm80F4KoqJqPzfI= Received: from mail.maildlp.com (unknown [172.19.88.214]) by szxga07-in.huawei.com (SkyGuard) with ESMTP id 4bTFyk4G2Gz29ds2; Fri, 27 Jun 2025 21:00:14 +0800 (CST) Received: from kwepemo200002.china.huawei.com (unknown [7.202.195.209]) by mail.maildlp.com (Postfix) with ESMTPS id 4F2021A016C; Fri, 27 Jun 2025 21:01:55 +0800 (CST) Received: from huawei.com (10.175.124.71) 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, 27 Jun 2025 21:01:54 +0800 From: Jinjiang Tu To: , , , , CC: , , Subject: [PATCH v2 1/2] mm/vmscan: fix hwpoisoned large folio handling in shrink_folio_list Date: Fri, 27 Jun 2025 20:57:46 +0800 Message-ID: <20250627125747.3094074-2-tujinjiang@huawei.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250627125747.3094074-1-tujinjiang@huawei.com> References: <20250627125747.3094074-1-tujinjiang@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.175.124.71] X-ClientProxiedBy: kwepems200002.china.huawei.com (7.221.188.68) To kwepemo200002.china.huawei.com (7.202.195.209) X-Rspamd-Server: rspam11 X-Rspam-User: X-Rspamd-Queue-Id: 440312002E X-Stat-Signature: ggcp5gcw1k7ayjix53jwd9ixps7hdyyr X-HE-Tag: 1751029321-5988 X-HE-Meta: U2FsdGVkX18oUhh32KznQpHUOlnPf9Y+HMbyYaK0ZPzyRCiDrk6uPV/VkpLojJzDynQjQiUwqCpvcdNDAlIC/zg/dI3cbN0j8Ao1AFulxZAishDNW9wt7GhTXTJlgoNsko60AG2VMQwdn3yxk2kIeiiFWLIYhz1KCJPcC+Lw4XPFHbtqnVZVuUY8fNDmaWJIcHaD0VOwA+hLhrO4PkRN0opAb338fU1eXCzZTAiZyRXzT17J1LvZ1SCpl3LeX6DPjkGGXg3VKFokqB3pQOm5lBaVxQdKn7RUs8aypI/GDazHGCdqLlHTPXh4EVJjtU5YwkgZHhSSbV9aZ/GoUb9M3ziraJo2Mj63EJ+rXergioWAGgeKGp7LV2X2bORvF4ryBxY59I/esrqKJTPhRDMTiWkrG7l+Cv7Tfp8lHWt2qqzEfig2rKdGXDIgP0CT/h1FZkylbXlfEr/iUcvm7tdJe3F1TObZFwcMYmfJRqrrUVO5HXcc4RTaCUmSG2aDdR2iYqmbp4EMInVue6DlyPktJIwuoYP0pQc1e5xmFKhj/msDrIuX5dlxJWQVyzwfnV9uDuQavAZWZTOqczmJ64o+tPrCiFVGDym1i9A87k7EpZdBJa+s0y3jLRpT/bChUMGKZAvvzYl/QJYRAoig6O6BWddsQZ0MBpGww8PsMboaktFvHk404dN+/8Be9evUrn9+vW4dw1gM1i8NRaBRbBii0dQEdAs0qCAOOZ+9fqJEwy0NUd5oXRajGf4uYS8Xb7SMn+D0nM7TrJKdgOoevG+EImBs35xlOD3CaOdMJ7Wpt/SK1eNmgQtgUnTWnEThRacaof0E599+KNPxGv2u94vtFQwL3bXb1jJ6FwdPyfjARuI58c2yEB6VB9dAw3RZYIRVHh4nLsG6OclxQpWL11f3wVDoiV7T5/9t7UaLVdzlJ7uooV/3/ZVN71Swm8Z0mBqBrR//NOfFUBDrygmrB1k KeiqRcO+ VfmBqi6egBj8ec51hWWfBywP7nq9j4/uIPWklDvGeFNdiRbMKapKQn/n802awgs4G4iwIlnum0CwPD3BY/oS4ktgn15/T/Phb+EmZlMeysXz78Gjt0VAHCW5YT7DfLR/d8xWi06zTvqPcuuGHcE5e6mcyVphs5ubiPwn/LMfbIw0shxbAxi+H5VwvyreHlqQzcgv9es6zASO0BmlimwyfXtf4vRTRGOFbqfuhX1BqCNm0Ny3AkKbgKVbHXEQ/oooxtwDovgKa9KLNDFCm1wLzbqv4CmkajMuL2IuX/z/HAQuPR68GK0VLteR7e6rf/R+rCrXuZ5O0wTGJZOCBioK2ETPoFsj/yDFYjkV/mtkEtosvmThhnG/qpbZ7bA== 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: In shrink_folio_list(), the hwpoisoned folio may be large folio, which can't be handled by unmap_poisoned_folio(). 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/ Signed-off-by: Jinjiang Tu --- mm/vmscan.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/mm/vmscan.c b/mm/vmscan.c index f8dfd2864bbf..424412680cfc 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -1138,6 +1138,14 @@ static unsigned int shrink_folio_list(struct list_head *folio_list, goto keep; if (folio_contain_hwpoisoned_page(folio)) { + /* + * unmap_poisoned_folio() can't handle large + * folio, just skip it. memory_failure() will + * handle it if the UCE is triggered again. + */ + if (folio_test_large(folio)) + goto keep_locked; + unmap_poisoned_folio(folio, folio_pfn(folio), false); folio_unlock(folio); folio_put(folio); -- 2.43.0