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 AC15BC52D6F for ; Thu, 22 Aug 2024 01:27:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3B40C6B00EC; Wed, 21 Aug 2024 21:27:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3092B6B00ED; Wed, 21 Aug 2024 21:27:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 183F36B00E4; Wed, 21 Aug 2024 21:27:24 -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 E48EE6B0208 for ; Wed, 21 Aug 2024 21:27:23 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id AA78B1C4B9D for ; Thu, 22 Aug 2024 01:27:23 +0000 (UTC) X-FDA: 82478143566.06.E8F216C Received: from szxga03-in.huawei.com (szxga03-in.huawei.com [45.249.212.189]) by imf26.hostedemail.com (Postfix) with ESMTP id E20C7140014 for ; Thu, 22 Aug 2024 01:27:20 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf26.hostedemail.com: domain of thunder.leizhen@huawei.com designates 45.249.212.189 as permitted sender) smtp.mailfrom=thunder.leizhen@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724289952; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ef+FJhgRp/4YEMZx/tltZFWiPabUDLrltu6TSoVlVLE=; b=faf6rG9E4EAfNkwW0IvUI6RGFWdSVXzUlE5nZa48pik9CftNyj6Mk/xFjOz39tvPpsW8gr Kw2mP7nVuvQ4/MybUsUjvatkWw364yyR4GkZd7wZMJntHJfLqnEBz+Ms2Cn+82uLgqbPD8 frNoWYMg4T066Llf1Xs2Pm5WvgjHVeI= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724289952; a=rsa-sha256; cv=none; b=wUq5krqPznKoNgnmFbIjP9sJ5VnoGx6qm67AQ2xdbW4FPh6YbfHbf/ZJgP45D2dl2EFXSA tFQm3Z2WI3mgR4rSAWNv7tMZuhqSV72ZPHlwLnPND6O912P145/S1xtAdtos0P88CiYgh9 3WasXExIexMrF9CWreqv9+a7444IHUY= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf26.hostedemail.com: domain of thunder.leizhen@huawei.com designates 45.249.212.189 as permitted sender) smtp.mailfrom=thunder.leizhen@huawei.com Received: from mail.maildlp.com (unknown [172.19.88.194]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4Wq56J2HZTz69LC; Thu, 22 Aug 2024 09:22:32 +0800 (CST) Received: from dggpemf100006.china.huawei.com (unknown [7.185.36.228]) by mail.maildlp.com (Postfix) with ESMTPS id 1B8E414037B; Thu, 22 Aug 2024 09:27:15 +0800 (CST) Received: from [10.174.178.55] (10.174.178.55) by dggpemf100006.china.huawei.com (7.185.36.228) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Thu, 22 Aug 2024 09:27:14 +0800 Subject: Re: [PATCH 1/1] mm/page_poison: slightly optimize check_poison_mem() To: David Hildenbrand , Andrew Morton , , References: <20240821075311.1953-1-thunder.leizhen@huawei.com> <8d40e74e-c68b-4f94-ae1e-42c4430d55e2@redhat.com> From: "Leizhen (ThunderTown)" Message-ID: Date: Thu, 22 Aug 2024 09:27:14 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 MIME-Version: 1.0 In-Reply-To: <8d40e74e-c68b-4f94-ae1e-42c4430d55e2@redhat.com> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.178.55] X-ClientProxiedBy: dggems704-chm.china.huawei.com (10.3.19.181) To dggpemf100006.china.huawei.com (7.185.36.228) X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: E20C7140014 X-Stat-Signature: d7iru69i9i6wmg66xnebbz8is137xtt6 X-Rspam-User: X-HE-Tag: 1724290040-762243 X-HE-Meta: U2FsdGVkX1980hXIgKPoABdabV1rUN1A494MDemYSNs7EBOvTzpnnDlhqA+tAILeYMqomYrJY1ZyehnuJWy9H6YJBszpmsiNEOjqsX/Bc4mjKAcZFUjt25XjOdp+/FslqyoF+tFj1pmkDAfhAQlackeD1Y8evhsXQ36M5+Q/4z9wDSEpndO8u/TSqe/LuIpf2HKOIRs51FucwJPM3IpbS+AOAdL2uep8hvV1xzsYZqPTHjCDhQTBoNlC9kMeNiZSHQRoRjdakZFEQErgZkuK3lfN/55cyXZVMcfvR1Knb1UQsuouA0fy4fOvxk2XWyRnCdhjnq7AVw++FtBNLKN6tUHbudNmsw9xO2B4BpPfEylNJvm3/854rfHRIPASfsj5GRw7Gj1LYGn9UBZm/Tp7la+Z9GknqYBJKOvWLuBPKuljmiwEkrHYSd2QF3bZwyu0eGePSG6D2Mc9Jx0fQcY2UI2OPyeId3zocbI/6WQqQBxWkG75rCS1vT0FYlC5bKhTnR3z0Ue+xSsnqQie0LRK3F7t3QVAoz7H9koOlnC7dNIwJXSERzExYh/+qQBiZ+9DocDgrIkXV7Si+kk3U8McuOZBFUfcmrwhd9hMR1XyTXW1CG9mJdAt2Q5jB7SU+upyET15DFTaUj1TQum09sMfi0aKKKvdZ6L8fnj57tw+OH2Sg/ZinIDU1C0MtXqA6fKzMtlS8H0h8tNFZmXDLuNrnOV7QX1Iahh0ivC+vTX1MiL3fc6EBxbmhAIwsd4vi4CV98440IeM35zKXCaGpQQMwx6Pn0MIGzByO7iav8PNTjEkL6r0wy31uBm3DmeG3Z0q9QdKAtnkxUZfFxHExbHWliSnnhGTTKOkZOqWWYTd/6MIg4Lwh3pHh6Xro34Y7poO9sFzfxbkClMChEB24jh+1z1R55j5CYB/l+Zo0BK0pX7S+1HcEVDY9XWTmJzrf8qpvMyp0RnV6RhuYXJXz9n tnWOQ391 nUOlscgO76xGpbJ699gIM3Y+3VelZhrz9YAU7LXrvs11B7c4HZNC3PrzPtVzqyIhpVwgazxXJEkqi47wS5OLZMXu3G6VBzA9B/I4KUNEk4mjDIOpAdvWo5oFNL64yWc4su/T+D+qoGi8570/qHZGZW4XsrfX+rqpJiz6ovjkjl7JMyvGivQU1JYNgaoKck0eyG1AqDHa1Qx1KSu9AuVGSN45IGBIKEc298G4U 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: On 2024/8/21 19:28, David Hildenbrand wrote: > On 21.08.24 09:53, Zhen Lei wrote: >> When the debug information needs to be suppressed due to ratelimit, >> it is unnecessary to determine the end of the corrupted memory. >> >> Signed-off-by: Zhen Lei >> --- >>   mm/page_poison.c | 7 ++++--- >>   1 file changed, 4 insertions(+), 3 deletions(-) >> >> diff --git a/mm/page_poison.c b/mm/page_poison.c >> index 3e9037363cf9d85..23fa799214720f1 100644 >> --- a/mm/page_poison.c >> +++ b/mm/page_poison.c >> @@ -55,14 +55,15 @@ static void check_poison_mem(struct page *page, unsigned char *mem, size_t bytes >>       if (!start) >>           return; >>   +    if (!__ratelimit(&ratelimit)) >> +        return; >> + >>       for (end = mem + bytes - 1; end > start; end--) { >>           if (*end != PAGE_POISON) >>               break; >>       } >>   -    if (!__ratelimit(&ratelimit)) >> -        return; >> -    else if (start == end && single_bit_flip(*start, PAGE_POISON)) >> +    if (start == end && single_bit_flip(*start, PAGE_POISON)) >>           pr_err("pagealloc: single bit error\n"); >>       else >>           pr_err("pagealloc: memory corruption\n"); > > This way, you will be ratelimiting on every function call, possibly skipping PAGE_POISON checks even if there was no prior corruption detected? > No, the previous memchr_inv() does the PAGE_POISON check, determine the start of the corrupted memory. !start means no corruption. start = memchr_inv(mem, PAGE_POISON, bytes); if (!start) return; + if (!__ratelimit(&ratelimit)) + return; for (end = mem + bytes - 1; end > start; end--) { if (*end != PAGE_POISON) break; } -- Regards, Zhen Lei