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 8112AC6FD1D for ; Fri, 17 Mar 2023 23:56:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E31AF6B009B; Fri, 17 Mar 2023 19:56:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DE2286B009C; Fri, 17 Mar 2023 19:56:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CD0866B009D; Fri, 17 Mar 2023 19:56:41 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id BF55B6B009B for ; Fri, 17 Mar 2023 19:56:41 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 8655E14031C for ; Fri, 17 Mar 2023 23:56:41 +0000 (UTC) X-FDA: 80580052602.17.0D820C1 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf25.hostedemail.com (Postfix) with ESMTP id CB843A000B for ; Fri, 17 Mar 2023 23:56:39 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=egefDn2k; spf=pass (imf25.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1679097399; 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:dkim-signature; bh=WJulItZsPJ21RTlEI1jAGTqO2QsBt0I9p5v0vlA+Fl4=; b=E8tZwBtxGIqeMZOsRkT6V4e9GMcVzIjAvLQvHsFm9YILLvMivZHMp9k2mA+8ctKSCB1moC jUr1QZwMtQRrc1DfSgFqeymQegSDBAdk1uvvSsMnkbZSbrs6jLcWf/G/TU3qZ9It0YHx93 las7/m4mwt2sYOjQzyvyRDT0HCfpyss= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=egefDn2k; spf=pass (imf25.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1679097399; a=rsa-sha256; cv=none; b=TQUu1ExskPKrXEBQFoxWJfSzmPAHBzcnKexTXHHBumn91lUENP4Hhr/mfqYoQ4J+0c6o47 P0dDeHBwz7Hev14/OcIjMJ5oSTCVgv3omW0VFZJeSpkS7oyUjKheV26+dDs+taHpTqW6Et qUCDkWrP389wiXQD6cjrUcU1OBCmAtQ= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id BC48B60C07; Fri, 17 Mar 2023 23:56:38 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EB073C433D2; Fri, 17 Mar 2023 23:56:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1679097398; bh=3bZogyBb+BgWIc/n46yzkc9qQmL59iUbkTrU3RkHuwY=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=egefDn2kg6gwEkYAefO4skRDz2AesInOi4UU1D//xOyrby31TQzzIVkT+wiVJpXzW ebkBW1+qtKePCory3KwBDEwwwKzWgngUqLLJ+cTTaqDdkHaF+Wdwnb5AXwJN5AURUG EpWgeT8M4ukdjKl66NLbiXQCWvOh5fGZ5gzfItXc= Date: Fri, 17 Mar 2023 16:56:37 -0700 From: Andrew Morton To: =?UTF-8?B?VG9tw6HFoSBNdWRydcWIa2E=?= Cc: Mike Rapoport , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH] Add results of early memtest to /proc/meminfo Message-Id: <20230317165637.6be5414a3eb05d751da7d19f@linux-foundation.org> In-Reply-To: References: X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: wecpjqfq7mr9euqqosm3axa94gp6gdbj X-Rspamd-Queue-Id: CB843A000B X-HE-Tag: 1679097399-94686 X-HE-Meta: U2FsdGVkX19MV8bBFNuuDJosgDE3TwdKE4s0sKvkfGi35KaDUO137G7VeT8yfB45Me9HhCAunezb0jcjgW3iXjTO8pBBO9ljANb29CqaEDc2zU9cNEpHsfd62Dc1doI1mKBz97pYdqz8e1MEtkB7Y9771x75NtlGXgLIVoYxVERG3i7kqKLFhRx17tbK3h3tcXH+vnpt2ho+PZH6DFBz8xNL8pNWF1ELspJXzvYAYWSJt/jMf2tZRYKsYOaBYrJ4rq5oGo1uX787yh37mB3m9hxIzOyiaMtH9rPOd/snspG87M2rPrEni675oExGjQLeFvznN9hV4s1F7yp86C2dtr+k+3IsYE0J+EO/w2q89zw9rzXfjMGMVn646RhQT8FVZ5G2PZjuZpP6hjroak9QApBS2DzGHhTF9E52jMt56jVgRemPsrvhWN9RoPtK6LftsMC5O/5E16ymf6x522l/nyU+SENBR142N0LNb47YFDypzNplA2ajZwzNuyNgLrpAfqVcj2x080quUzsc6vcLmkanh/sHtddX1qxIztMASr+17cKThI9iieoWH2wCEwIpHPZznzjpZSDo3tFMnDRneA5+b008OFsjTqtHcSJdfFmGTiysu8RM88tfkzFAtF0hND12lv1uvM0gMY1ukIeh9x2VaTvCIlIJTYh+GPqBV0EmQbFMJOePy9b9zPsaRvye0s91WnQoPwhXNEFym2i3BsD+UbOm2PXgcEogMAo8AlEwoy2z102CMh1jZ9szpT09VXqp8SCav5TfR1k5CU3ZXfcpr95ztK/3mDfBzDr6F5jEymIm6E5ZllanChj4xhSWqaohy8FiZT6hMIN0Yr1+NL9jPE2FoUFocu6YrmkYOHp12yVmLQ7kqVPBYxYRfOnFH0zOIGG2wHZIpeh3w0Yro22du/qvDM7SP7PFzL1h0IU580Mn7J+FbkRlp1SOt7r43EVDLzQU7jIRzGTv3Aw hCp9W0K2 24U9wkrdwM6OZiNMFWFtSRWjmsY7dpm+U3mxUVETpyRW7Jx5hWDPrwce3EtzGPYa4pyIj/+sPR+TtKvo7tSF2bkRd9xZUPQjESumjH8obk0QD/aVe7+u7vzWYW1ZwnC+8LqhndxsBByfA2BFBwx3Anj17cH1/dkYXzAhREqbhPxm9S1UvXyz1KLh9ZyKgm8ndSGNVo7m74q3Imf8wSeKCTfqFud58GROBZpDPDobx8c9V96551QwHutqyiq/kqrpbf0/A5fPqBlr4W5DYvAAFIPU9cscihSIu3iYaSyky1QIAi1rjS5xd2fX0+HB/I4BS1fV7L3BoC1Y+0RfjN6OSiEgs3d4CV3aVq5XH1EW5ZwDvWrDTCzgKwluJwJmcNDgbpt8Nxs1LbMhMB3BOruS2Lw5+fkCwYcEBuf3avtGRmSnhVN7e7KLdmBDV6A== 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 Fri, 17 Mar 2023 20:30:01 +0100 Tomáš Mudruňka wrote: > Currently the memtest results were only presented in dmesg. > This adds /proc/meminfo entry which can be easily used by scripts. > /proc/meminfo is documented in Documentation/filesystems/proc.rst, please. meminfo is rather top-level and important. Is this data sufficiently important to justify a place there? Please describe the value. The use-case(s). Why would people want this? > --- a/fs/proc/meminfo.c > +++ b/fs/proc/meminfo.c > @@ -6,6 +6,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -131,6 +132,18 @@ static int meminfo_proc_show(struct seq_file *m, void > *v) > show_val_kb(m, "VmallocChunk: ", 0ul); > show_val_kb(m, "Percpu: ", pcpu_nr_pages()); > > +#ifdef CONFIG_MEMTEST > + /* Only show 0 Bad memory when test was actually run. > + * Make sure bad regions smaller than 1kB are not reported as 0. > + * That way when 0 is reported we can be sure there actually was > successful test */ Comment layout is unconventional. > + if (early_memtest_done) > + seq_printf(m, "EarlyMemtestBad: %5lu kB\n", > + (unsigned long) ( > + ((early_memtest_bad_size>0) && (early_memtest_bad_size>>10 <= 0)) > + ? 1 > + : early_memtest_bad_size>>10)); Coding style is unconventional (white spaces). I expect this code would look much cleaner if some temporaries were used. if (early_memtest_done) { unsigned long size = 1; long sz = early_memtest_bad_size >> 10; if (early_memtest_bad_size > 0 && sz <= 0) size = sz; seq_printf(m, "EarlyMemtestBad: %5lu kB\n", size) } (or something like that, I didn't try hard) I don't understand this logic anyway. Why not just print the value of early_memtest_bad_size>>10 and be done with it. > +extern int early_memtest_done; /* How many memtest passes were done? */ The name implies a bool, but the comment says otherwise. > start, phys_addr_t end) > memtest(pattern, this_start, this_end - this_start); > } > } > + early_memtest_done++; It's a counter, but it's used as a boolean. Why not make it bool, and do early_memtest_done = true; here? Also, your email client is replacing tabs with spaces.