From: Mike Rapoport <rppt@kernel.org>
To: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Tomas Mudrunka <tomas.mudrunka@gmail.com>,
linux-mm@kvack.org, linux-fsdevel@vger.kernel.org,
willy@infradead.org
Subject: Re: [PATCH v2] mm: memtest: convert to memtest_report_meminfo()
Date: Wed, 9 Aug 2023 15:39:51 +0300 [thread overview]
Message-ID: <20230809123951.GL2607694@kernel.org> (raw)
In-Reply-To: <20230808033359.174986-1-wangkefeng.wang@huawei.com>
On Tue, Aug 08, 2023 at 11:33:59AM +0800, Kefeng Wang wrote:
> It is better to not expose too many internal variables of memtest,
> add a helper memtest_report_meminfo() to show memtest results.
>
> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Acked-by: Mike Rapoport (IBM) <rppt@kernel.org>
> ---
> v2: add CONFIG_PROC_FS check, per Matthew
>
> fs/proc/meminfo.c | 12 +-----------
> include/linux/memblock.h | 10 ++++------
> mm/memtest.c | 22 ++++++++++++++++++++--
> 3 files changed, 25 insertions(+), 19 deletions(-)
>
> diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
> index 74e3c3815696..45af9a989d40 100644
> --- a/fs/proc/meminfo.c
> +++ b/fs/proc/meminfo.c
> @@ -133,17 +133,7 @@ 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
> - if (early_memtest_done) {
> - unsigned long early_memtest_bad_size_kb;
> -
> - early_memtest_bad_size_kb = early_memtest_bad_size>>10;
> - if (early_memtest_bad_size && !early_memtest_bad_size_kb)
> - early_memtest_bad_size_kb = 1;
> - /* When 0 is reported, it means there actually was a successful test */
> - seq_printf(m, "EarlyMemtestBad: %5lu kB\n", early_memtest_bad_size_kb);
> - }
> -#endif
> + memtest_report_meminfo(m);
>
> #ifdef CONFIG_MEMORY_FAILURE
> seq_printf(m, "HardwareCorrupted: %5lu kB\n",
> diff --git a/include/linux/memblock.h b/include/linux/memblock.h
> index 0d031fbfea25..1c1072e3ca06 100644
> --- a/include/linux/memblock.h
> +++ b/include/linux/memblock.h
> @@ -594,13 +594,11 @@ extern int hashdist; /* Distribute hashes across NUMA nodes? */
> #endif
>
> #ifdef CONFIG_MEMTEST
> -extern phys_addr_t early_memtest_bad_size; /* Size of faulty ram found by memtest */
> -extern bool early_memtest_done; /* Was early memtest done? */
> -extern void early_memtest(phys_addr_t start, phys_addr_t end);
> +void early_memtest(phys_addr_t start, phys_addr_t end);
> +void memtest_report_meminfo(struct seq_file *m);
> #else
> -static inline void early_memtest(phys_addr_t start, phys_addr_t end)
> -{
> -}
> +static inline void early_memtest(phys_addr_t start, phys_addr_t end) { }
> +static inline void memtest_report_meminfo(struct seq_file *m) { }
> #endif
>
>
> diff --git a/mm/memtest.c b/mm/memtest.c
> index 57149dfee438..32f3e9dda837 100644
> --- a/mm/memtest.c
> +++ b/mm/memtest.c
> @@ -3,9 +3,10 @@
> #include <linux/types.h>
> #include <linux/init.h>
> #include <linux/memblock.h>
> +#include <linux/seq_file.h>
>
> -bool early_memtest_done;
> -phys_addr_t early_memtest_bad_size;
> +static bool early_memtest_done;
> +static phys_addr_t early_memtest_bad_size;
>
> static u64 patterns[] __initdata = {
> /* The first entry has to be 0 to leave memtest with zeroed memory */
> @@ -117,3 +118,20 @@ void __init early_memtest(phys_addr_t start, phys_addr_t end)
> do_one_pass(patterns[idx], start, end);
> }
> }
> +
> +void memtest_report_meminfo(struct seq_file *m)
> +{
> + unsigned long early_memtest_bad_size_kb;
> +
> + if (!IS_ENABLED(CONFIG_PROC_FS))
> + return;
> +
> + if (!early_memtest_done)
> + return;
> +
> + early_memtest_bad_size_kb = early_memtest_bad_size >> 10;
> + if (early_memtest_bad_size && !early_memtest_bad_size_kb)
> + early_memtest_bad_size_kb = 1;
> + /* When 0 is reported, it means there actually was a successful test */
> + seq_printf(m, "EarlyMemtestBad: %5lu kB\n", early_memtest_bad_size_kb);
> +}
> --
> 2.41.0
>
--
Sincerely yours,
Mike.
prev parent reply other threads:[~2023-08-09 12:40 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-08 3:33 [PATCH v2] mm: memtest: convert to memtest_report_meminfo() Kefeng Wang
2023-08-09 12:39 ` Mike Rapoport [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230809123951.GL2607694@kernel.org \
--to=rppt@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=tomas.mudrunka@gmail.com \
--cc=wangkefeng.wang@huawei.com \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.