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 B4997C77B61 for ; Fri, 14 Apr 2023 02:18:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 009D96B0075; Thu, 13 Apr 2023 22:18:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EFD1A900004; Thu, 13 Apr 2023 22:18:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D9C9C900002; Thu, 13 Apr 2023 22:18:36 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id C56136B0075 for ; Thu, 13 Apr 2023 22:18:36 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 9D46B1C616B for ; Fri, 14 Apr 2023 02:18:36 +0000 (UTC) X-FDA: 80678387832.28.FF84B50 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by imf27.hostedemail.com (Postfix) with ESMTP id 4C8054000D for ; Fri, 14 Apr 2023 02:18:33 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=none; spf=pass (imf27.hostedemail.com: domain of xialonglong1@huawei.com designates 45.249.212.188 as permitted sender) smtp.mailfrom=xialonglong1@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1681438714; 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: references; bh=3ObNAPWb4nkVg8bYRGuyBtUtl/oXGyCQMHCn0Cx2WSs=; b=rZRm1vEH/wxSuXnCmIZzc+UtJoHZIKIsWCVUJoH/u5Z/h13FLEkpnL/83KizLEsbko5nSw v1D508QIo5XT5GS8ISWcHmLkBbtj5XWPsnqJoaKoABZbCcY7k2KeY6Vjb00oKn1pZeCaze w1up8cqJX4BDYh9/W28n4edlI59Krag= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=none; spf=pass (imf27.hostedemail.com: domain of xialonglong1@huawei.com designates 45.249.212.188 as permitted sender) smtp.mailfrom=xialonglong1@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1681438714; a=rsa-sha256; cv=none; b=ps6oe7LUd5r9wu3T77Ttrm34+ZfoRycf+J06SmKPeoZw5brShAmrnloCti6np1/7x9qwG1 4CkVPfd9jKeQ5jQjST/D9JChtgF2aR9ZinQwYdBmwmlAIp1+qVdjEY/J7cAo0PNPbq7uz/ VHwBMZDAxDLnSae/568ZxXPlSuagogo= Received: from kwepemm600003.china.huawei.com (unknown [172.30.72.54]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4PyKl901X5zSs8R; Fri, 14 Apr 2023 10:14:28 +0800 (CST) Received: from localhost.localdomain (10.175.112.125) by kwepemm600003.china.huawei.com (7.193.23.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Fri, 14 Apr 2023 10:18:27 +0800 From: Longlong Xia To: , CC: , , , , , Longlong Xia Subject: [PATCH v2 0/2] mm: ksm: support hwpoison for ksm page Date: Fri, 14 Apr 2023 10:17:39 +0800 Message-ID: <20230414021741.2597273-1-xialonglong1@huawei.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.175.112.125] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To kwepemm600003.china.huawei.com (7.193.23.202) X-CFilter-Loop: Reflected X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: 8u4w14rirmrg6cgentjoek4n7bpz8o6z X-Rspamd-Queue-Id: 4C8054000D X-HE-Tag: 1681438713-89162 X-HE-Meta: U2FsdGVkX18DWTJL6oqPl4G761YarYVcZ8HOKuYoX9obTU4xjmVHH8KtfWC/MV974nWpt2pvW1WBDav8TUxjhA0PWu2oazp2WpRplifKsFgshLtCQ6ph2BW7qnHlHjxsgGGvgVYbQFpJQb55BIvqb9ylRA9Y7NHDmvq5FvgM1cuXXFWhhwa5laKgdEsMUGarGakfEbETlAeQZn7Vf0KLI9Zd6OGZJpW/LnU08rZXCDYE41Q/Ti04jebkOzjaRle8nZc6EyJ7Z+TzcdCr32xGuBxM5HhLT3nyZjPo/JoObkspD3CY7caoTcCwAyryo+fIfYrLEPhKPg02Grsayn/wmZ1IuetlNvCjHYLzvsbzg6azOrvx+Bj/tz1XIPAOgY+gcG1ORPKOhWoB2NrywDdpB/URxWU1Mrp7yveeqoW+dEqv1HLTZnnifiKwRQpqadnMMaMYY732BeMCIN62uYWeG4oisVqBseBCDYqPzZ3FZsJ7l+GAOEnJrA42SIERtmM879b6GTcTkKkX3e901Su5vw1nn6rr6N/3Kgs2iEImbq63xeo3OoHKnR+BkouWr2EGoH4CyvT2KusQeX7kDfCh0+J8fBoViDqZzfVInQdRDq4GMzfxY9Q4YnAY4wt5m+GhzLsGxdZ+4I01+XuAgwhSiPcdo3tU7P+SwNXy+5+JLullvgrcq59rka/ZL456ULbZWRhWp1EtOo6mhXFtLGoHAbvhATOwYhLTXPzNQBPbjwZupo0eQqf6QWDmYU+oaKc3m4B1kjLIsm/Mt8t8mLnh+z5Gjokw0MhuJNcl2AXg7IWZjsCIw6He0vVIekJrp2X3o58/KjBGIuyq4UuWy3IVjVlKVouhEmGukpi5ExESJzccVBMZjw+y7ShdtEe+EfMkZJ12iFqvld4Q5vLdOngs6sljgDToDCsyodXAdN5PMA4VmsWFCqkZQ9CMn8KAA7cgjtdBe8FmK2n+Ke5jT/d 7qCuVow8 zg1+rlUN1S3uH08f0fsgymi1omQXwyV1naI+ON4INvShL7RexvlZpJSx4DhsEZe56mfdNVpPuuTXDddyPN1ayLyj/88ERb2g3a5bxD2jLreeSSGLDhHwhCpsb8jiEvphkZ8x12+M06PwrAszFaQOJ8Q3KKqDMLfBj1e67t2r6UR9YUeKUr5gP/zkSQIivVN9UXbxq 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: Currently, ksm does not support hwpoison. As ksm is being used more widely for deduplication at the system level, container level, and process level, supporting hwpoison for ksm has become increasingly important. However, ksm pages were not processed by hwpoison in 2009 [1]. The main method of implementation: 1. Refactor add_to_kill() and add new add_to_kill_*() to better accommodate the handling of different types of pages. 2. Add collect_procs_ksm() to collect processes when the error hit an ksm page. 3. Add task_in_to_kill_list() to avoid duplicate addition of tsk to the to_kill list. 4. Try_to_unmap ksm page (already supported). 5. Handle related processes such as sending SIGBUS. Tested with poisoning to ksm page from 1) different process 2) one process and with/without memory_failure_early_kill set, the processes are killed as expected with the patchset. [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/ commit/?h=01e00f880ca700376e1845cf7a2524ebe68e47d6 v2: - Rename the "addr" argument to "ksm_addr" in both the "__add__add_to_kill()" and "add_to_kill_ksm()" - Collect RB/TB Longlong Xia (2): mm: memory-failure: Refactor add_to_kill() mm: ksm: Support hwpoison for ksm page include/linux/ksm.h | 11 ++++++++ include/linux/mm.h | 7 +++++ mm/ksm.c | 45 ++++++++++++++++++++++++++++++++ mm/memory-failure.c | 63 +++++++++++++++++++++++++++++++++------------ 4 files changed, 109 insertions(+), 17 deletions(-) -- 2.25.1