Linux-mm Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: SeongJae Park <sj@kernel.org>
To: SeongJae Park <sj@kernel.org>
Cc: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Vlastimil Babka <vbabka@suse.cz>,
	Suren Baghdasaryan <surenb@google.com>,
	Michal Hocko <mhocko@suse.com>,
	Brendan Jackman <jackmanb@google.com>,
	Johannes Weiner <hannes@cmpxchg.org>, Zi Yan <ziy@nvidia.com>,
	kernel-dev@igalia.com
Subject: Re: [PATCH] mm: show_mem: show number of zspages in show_free_areas
Date: Mon,  1 Sep 2025 20:13:59 -0700	[thread overview]
Message-ID: <20250902031359.170361-1-sj@kernel.org> (raw)
In-Reply-To: <20250902014933.93741-1-sj@kernel.org>

On Mon,  1 Sep 2025 18:49:33 -0700 SeongJae Park <sj@kernel.org> wrote:

> Hello,
> 
> On Mon,  1 Sep 2025 15:37:28 -0300 Thadeu Lima de Souza Cascardo <cascardo@igalia.com> wrote:
> 
> > When OOM is triggered, it will show where the pages might be for each zone.
> > When using zram, it might look like lots of pages are missing. After this
> > patch, zspages are shown as below.
> [...]
> > Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
> > ---
> >  mm/show_mem.c | 2 ++
> >  1 file changed, 2 insertions(+)
> > 
> > diff --git a/mm/show_mem.c b/mm/show_mem.c
> > index 41999e94a56d..ecf20a93ea54 100644
> > --- a/mm/show_mem.c
> > +++ b/mm/show_mem.c
> > @@ -310,6 +310,7 @@ static void show_free_areas(unsigned int filter, nodemask_t *nodemask, int max_z
> >  			" inactive_file:%lukB"
> >  			" unevictable:%lukB"
> >  			" writepending:%lukB"
> > +			" zspages:%lukB"
> >  			" present:%lukB"
> >  			" managed:%lukB"
> >  			" mlocked:%lukB"
> > @@ -332,6 +333,7 @@ static void show_free_areas(unsigned int filter, nodemask_t *nodemask, int max_z
> >  			K(zone_page_state(zone, NR_ZONE_INACTIVE_FILE)),
> >  			K(zone_page_state(zone, NR_ZONE_UNEVICTABLE)),
> >  			K(zone_page_state(zone, NR_ZONE_WRITE_PENDING)),
> > +			K(zone_page_state(zone, NR_ZSPAGES)),
> 
> I found latest mm-new fails kunit's um build as below, and 'git bisect' points
> this patch.
> 
>     $ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=40
>     ERROR:root:In file included from ../mm/show_mem.c:18:
>     ../mm/show_mem.c: In function ‘show_free_areas’:
>     ../mm/show_mem.c:336:49: error: ‘NR_ZSPAGES’ undeclared (first use in this function); did you mean ‘NR_STATS’?
>       336 |                         K(zone_page_state(zone, NR_ZSPAGES)),
>           |                                                 ^~~~~~~~~~
>     [...]
> 
> Maybe some CONFIG_ZSMALLOC undeclard case handling, like below, is needed?
> 
>     --- a/mm/show_mem.c
>     +++ b/mm/show_mem.c
>     @@ -333,7 +333,9 @@ static void show_free_areas(unsigned int filter, nodemask_t *nodemask, int max_z
>                             K(zone_page_state(zone, NR_ZONE_INACTIVE_FILE)),
>                             K(zone_page_state(zone, NR_ZONE_UNEVICTABLE)),
>                             K(zone_page_state(zone, NR_ZONE_WRITE_PENDING)),
>     +#if IS_ENABLED(CONFIG_ZSMALLOC)
>                             K(zone_page_state(zone, NR_ZSPAGES)),
>     +#endif

Of course, the above example will make the output shows wrong values on
'zspages:' and later fields when ZSMALLOC is unset.  Maybe below change on top
of the above diff makes sense?

    --- a/mm/show_mem.c
    +++ b/mm/show_mem.c
    @@ -335,6 +335,8 @@ static void show_free_areas(unsigned int filter, nodemask_t *nodemask, int max_z
                            K(zone_page_state(zone, NR_ZONE_WRITE_PENDING)),
     #if IS_ENABLED(CONFIG_ZSMALLOC)
                            K(zone_page_state(zone, NR_ZSPAGES)),
    +#else
    +                       0,
     #endif
                            K(zone->present_pages),
                            K(zone_managed_pages(zone)),


Thanks,
SJ

[...]


  reply	other threads:[~2025-09-02  3:14 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-01 18:37 [PATCH] mm: show_mem: show number of zspages in show_free_areas Thadeu Lima de Souza Cascardo
2025-09-01 18:54 ` Vlastimil Babka
2025-09-02  2:10   ` Sergey Senozhatsky
2025-09-02  1:49 ` SeongJae Park
2025-09-02  3:13   ` SeongJae Park [this message]
2025-09-02  4:56 ` Lorenzo Stoakes

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=20250902031359.170361-1-sj@kernel.org \
    --to=sj@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=cascardo@igalia.com \
    --cc=hannes@cmpxchg.org \
    --cc=jackmanb@google.com \
    --cc=kernel-dev@igalia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@suse.com \
    --cc=surenb@google.com \
    --cc=vbabka@suse.cz \
    --cc=ziy@nvidia.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox