All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Rapoport <rppt@kernel.org>
To: Yuwei Guan <ssawgyw@gmail.com>
Cc: akpm@linux-foundation.org, tsahu@linux.ibm.com,
	anshuman.khandual@arm.com, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org, wangkefeng.wang@huawei.com
Subject: Re: [PATCH v4] memblock: Add flags and nid info in memblock debugfs
Date: Sun, 28 May 2023 20:53:54 +0300	[thread overview]
Message-ID: <20230528175354.GJ4967@kernel.org> (raw)
In-Reply-To: <CALJQGLmn3JkYBZgkJXOc2mMy_2u4HZRUzdfaLm+uF8MQQCWsgg@mail.gmail.com>

On Sun, May 28, 2023 at 10:38:03PM +0800, Yuwei Guan wrote:
> Mike Rapoport <rppt@kernel.org> 于2023年5月27日周六 18:37写道:
> >
> > Hi Yuwei,
> >
> > On Fri, May 19, 2023 at 06:53:21PM +0800, Yuwei Guan wrote:
> >
> > > Signed-off-by: Yuwei Guan <ssawgyw@gmail.com>
> > > ---
> > > v4:
> > > - show string value for each memblock flag
> > > ---
> > >  mm/memblock.c | 24 ++++++++++++++++++++++--
> > >  1 file changed, 22 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/mm/memblock.c b/mm/memblock.c
> > > index 511d4783dcf1..10d0ddbeebc1 100644
> > > --- a/mm/memblock.c
> > > +++ b/mm/memblock.c
> > > @@ -2136,12 +2136,19 @@ void __init memblock_free_all(void)
> > >  }
> > >
> > >  #if defined(CONFIG_DEBUG_FS) && defined(CONFIG_ARCH_KEEP_MEMBLOCK)
> > > +static const char * const flagname[] = {
> > > +     [ilog2(MEMBLOCK_HOTPLUG)] = "HOTPLUG",
> > > +     [ilog2(MEMBLOCK_MIRROR)] = "MIRROR",
> > > +     [ilog2(MEMBLOCK_NOMAP)] = "NOMAP",
> > > +     [ilog2(MEMBLOCK_DRIVER_MANAGED)] = "DRV_MNG",
> > > +};
> > >
> > >  static int memblock_debug_show(struct seq_file *m, void *private)
> > >  {
> > >       struct memblock_type *type = m->private;
> > >       struct memblock_region *reg;
> > > -     int i;
> > > +     int i, j;
> > > +     unsigned int count = ARRAY_SIZE(flagname);
> > >       phys_addr_t end;
> > >
> > >       for (i = 0; i < type->cnt; i++) {
> > > @@ -2149,7 +2156,20 @@ static int memblock_debug_show(struct seq_file *m, void *private)
> > >               end = reg->base + reg->size - 1;
> > >
> > >               seq_printf(m, "%4d: ", i);
> > > -             seq_printf(m, "%pa..%pa\n", &reg->base, &end);
> > > +             seq_printf(m, "%pa..%pa ", &reg->base, &end);
> > > +             seq_printf(m, "%4d ", memblock_get_region_node(reg));
> >
> > As Kefeng mentioned, the node id for reserved regions will be wrong, so
> > this needs to be updated so that when reg->nid == MAX_NUMNODES we'll print
> > e.g. 'x'.
> Hi Mike,
> 
> How about print 'x' when reg->nid == MAX_NUMNODES, base on this patch,
> https://lore.kernel.org/linux-mm/44ce007d-8049-1cc9-7e2e-4ccb51a2867d@huawei.com/T/#m6d214d4ea8912b64f5efc9c3f51ae71aa057d1f1

This is fine, can you please send a formal patch?
 
> diff --git a/mm/memblock.c b/mm/memblock.c
> index c5c80d9bcea3..3d449aaba052 100644
> --- a/mm/memblock.c
> +++ b/mm/memblock.c
> @@ -2169,17 +2169,21 @@ static int memblock_debug_show(struct seq_file
> *m, void *private)
>  {
>   struct memblock_type *type = m->private;
>   struct memblock_region *reg;
> - int i, j;
> + int i, j, nid;
>   unsigned int count = ARRAY_SIZE(flagname);
>   phys_addr_t end;
> 
>   for (i = 0; i < type->cnt; i++) {
>   reg = &type->regions[i];
>   end = reg->base + reg->size - 1;
> + nid = memblock_get_region_node(reg);
> 
>   seq_printf(m, "%4d: ", i);
>   seq_printf(m, "%pa..%pa ", &reg->base, &end);
> - seq_printf(m, "%4d ", memblock_get_region_node(reg));
> + if (nid != MAX_NUMNODES)
> + seq_printf(m, "%4d ", nid);
> + else
> + seq_printf(m, "%4c ", 'x');
>   if (reg->flags) {
>   for (j = 0; j < count; j++) {
>   if (reg->flags & (1U << j)) {
> 
> >
> > > +             if (reg->flags) {
> > > +                     for (j = 0; j < count; j++) {
> > > +                             if (reg->flags & (1U << j)) {
> > > +                                     seq_printf(m, "%s\n", flagname[j]);
> > > +                                     break;
> > > +                             }
> > > +                     }
> > > +                     if (j == count)
> > > +                             seq_printf(m, "%s\n", "UNKNOWN");
> > > +             } else {
> > > +                     seq_printf(m, "%s\n", "NONE");
> > > +             }
> > >       }
> > >       return 0;
> > >  }
> > > --
> > > 2.34.1
> > >
> >
> > --
> > Sincerely yours,
> > Mike.

-- 
Sincerely yours,
Mike.


      reply	other threads:[~2023-05-28 17:54 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-19 10:53 [PATCH v4] memblock: Add flags and nid info in memblock debugfs Yuwei Guan
2023-05-23  5:53 ` Anshuman Khandual
2023-05-23 11:36 ` Kefeng Wang
2023-05-23 16:05 ` Mike Rapoport
2023-05-24  4:12   ` Anshuman Khandual
2023-05-24  8:35     ` Mike Rapoport
2023-05-24  8:57 ` Mike Rapoport
2023-05-27 10:37 ` Mike Rapoport
2023-05-28 14:38   ` Yuwei Guan
2023-05-28 17:53     ` 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=20230528175354.GJ4967@kernel.org \
    --to=rppt@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=anshuman.khandual@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=ssawgyw@gmail.com \
    --cc=tsahu@linux.ibm.com \
    --cc=wangkefeng.wang@huawei.com \
    /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.