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 37872C05027 for ; Thu, 2 Feb 2023 06:56:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A4AF56B0073; Thu, 2 Feb 2023 01:56:23 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 9FB546B0075; Thu, 2 Feb 2023 01:56:23 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8E9B96B0078; Thu, 2 Feb 2023 01:56:23 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 7F0486B0073 for ; Thu, 2 Feb 2023 01:56:23 -0500 (EST) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 56DAC80153 for ; Thu, 2 Feb 2023 06:56:23 +0000 (UTC) X-FDA: 80421443046.08.D7E3915 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by imf05.hostedemail.com (Postfix) with ESMTP id 8146E100007 for ; Thu, 2 Feb 2023 06:56:20 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf05.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.188 as permitted sender) smtp.mailfrom=wangkefeng.wang@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1675320981; 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=iZtqPfSWwj49iCLGSbNblXq2FdWd1hKA1Fu05YASmbk=; b=D1+Vmoi9bOPJCOyzJXFujxJnctzoLxP9U8+eXlxeyjmhy/4x/RQQihJdd7tb0tkQD2SxWj QLyUH0rIksGpi6L3MIp2FflZHgpQiJSXFAFFNtjs1oH1VAYAe7YAT+uAuqAdVP94IDu6fF WmD/YAYCqlCqrt+zZ+mmV4oGl7itV0w= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf05.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.188 as permitted sender) smtp.mailfrom=wangkefeng.wang@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1675320981; a=rsa-sha256; cv=none; b=E8ZHLdxjzgRMPksgN/1KgdkGfDajZcS3XK26/1miwONnoJFZSzhl31kd8wuw60zWt3MRfA WrmbWv340c/P7kqYoBLav7IXWqCXRTfefq7WpssgpqWQAhVjgYR+cnp07+RZYhfhKTedMW A8oz3cBD3MPhoOooKeknuGA6MS1NAwA= Received: from dggpemm500001.china.huawei.com (unknown [172.30.72.55]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4P6qJV2lRrzRrmM; Thu, 2 Feb 2023 14:54:02 +0800 (CST) Received: from [10.174.177.243] (10.174.177.243) by dggpemm500001.china.huawei.com (7.185.36.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Thu, 2 Feb 2023 14:56:16 +0800 Message-ID: Date: Thu, 2 Feb 2023 14:56:15 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 Subject: Re: [PATCH v2 2/3] mm: memory-failure: Bump memory failure stats to pglist_data Content-Language: en-US To: Jiaqi Yan , , CC: , , , , References: <20230120034622.2698268-1-jiaqiyan@google.com> <20230120034622.2698268-3-jiaqiyan@google.com> From: Kefeng Wang In-Reply-To: <20230120034622.2698268-3-jiaqiyan@google.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.174.177.243] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To dggpemm500001.china.huawei.com (7.185.36.107) X-CFilter-Loop: Reflected X-Rspamd-Queue-Id: 8146E100007 X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: hg7mpigz7u6xshojr8m18niekaioyd3d X-HE-Tag: 1675320980-889411 X-HE-Meta: U2FsdGVkX1+8QHg4jdzvsYLXWVewi6VLfKZK4cn3aBGg0418v8PGozCwiip0FeR0rndATPLa5EjIveH9zR7eAZadWvAZC7t73HEGITumieNtLjiaWaCsfU/hDreC474q/d/6jMqD41DAHvCr/34HR3MdrZuWJFbiwnByyjA5RsebLWZUfP/0DLDpqMDdq+p6mqUPtT7lUUBSgLkcjtDyxSCy8noGeYarPGyLs4HEOA2FBSVxkwSDMun54Ke0AP9N4tP4E1tDYF9YiR/m61zN7BWhtACCTYtMFLlaCTx83ybmS7mVzvKapllmLnLjfaQdGYeyiOnUEbaywD8ivsP8XXfKD2xnw+q24FVheM/vXLkeY12o3a/I9XBG6EUxukC940V93Yw9QbxJiQ2pjjZXVzP+P1hf5PKkkBYbvFyqFl9yT++YYQTxdn1HhpqPzGsIH4MfNw2HO+K88akfOI1xtAPBTbci1fZHr0d2EZCu4rhCgrsg8j7FwKswzWC1FFTmGXCYtdaEjB/07Jw7hr4iDyhbzkmJVMfjDhA3tZb/CBE4LO0d9g4NeJL+hXRsY0H6TRIuQas0Ooyez0TkMsURLidPPpahV8jDSg902nPhGNs78lM9fQta5JVBbpzc2cAhi9vnAukWJ3UxFSejSeb5sFVHg9LNkwpjLVK8VtHuioPU3hcNA+qPdzr4RQfzTtyqk4LvdWZuRBcZbDbcVCwFpYpgsxv7VZpuSiIO8MmqNm4rM9QTaMftGvfYA+Jrqva5A/fEvE/ViIvmwkNFjuCRQvTEWDwYiTprOdu8mrEx63FrQ37m0AkK7ZlyvFMWjk5YUsA273Zn7vk/M9G9JTKAx2U6MS5pJLZZRi/4LOIdM9GgHa82u2clVyGSWKzzMX1wL47N4HfqQ12n3SKggsGDG/ZtZ2/LXAa2P5eKVSzepCl2liWXci4JGYVKyqvKJzERkm6qsN23NHyvygaWGRz 3+y1VaXf QGuOXG9tGx27A/vVAtUzEeVXRs8qaZVgnCUmX2bSWBmQcoI0JnK5iY7VHvDfwHpWlgnmewKyV06Eyq0tXlgc3JAJOpPFAfgLhEL1GGUgqV8QFmBsR5bXJeqk1lKnFAy4613QFSIb21v41GaGQn0/yPba44JrxY0tweVupPw37T2CX4pUCFQ+RPUfLM/G3sF0L5S9O4HCIz4wGsxlZgYcAuOuyH8IxP1kGM1hw 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: On 2023/1/20 11:46, Jiaqi Yan wrote: > Right before memory_failure finishes its handling, accumulate poisoned > page's resolution counters to pglist_data's memory_failure_stats, so as > to update the corresponding sysfs entries. > > Tested: > 1) Start an application to allocate memory buffer chunks > 2) Convert random memory buffer addresses to physical addresses > 3) Inject memory errors using EINJ at chosen physical addresses > 4) Access poisoned memory buffer and recover from SIGBUS > 5) Check counter values under > /sys/devices/system/node/node*/memory_failure/* > > Acked-by: David Rientjes > Signed-off-by: Jiaqi Yan > --- > mm/memory-failure.c | 36 ++++++++++++++++++++++++++++++++++++ > 1 file changed, 36 insertions(+) > > diff --git a/mm/memory-failure.c b/mm/memory-failure.c > index c628f1db3a4d..f4990839ea66 100644 > --- a/mm/memory-failure.c > +++ b/mm/memory-failure.c > @@ -1227,6 +1227,39 @@ static struct page_state error_states[] = { > #undef slab > #undef reserved > > +static void update_per_node_mf_stats(unsigned long pfn, > + enum mf_result result) > +{ > + int nid = MAX_NUMNODES; > + struct memory_failure_stats *mf_stats = NULL; > + > + nid = pfn_to_nid(pfn); > + if (unlikely(nid < 0 || nid >= MAX_NUMNODES)) { > + WARN_ONCE(1, "Memory failure: pfn=%#lx, invalid nid=%d", pfn, nid); > + return; > + } > + ... > + default: > + WARN_ONCE(1, "Memory failure: mf_result=%d is not properly handled", result); > + break; > + } We already define pr_fmt, the "Memory failure:" prefix should be dropped.