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
[...]
next prev parent reply other threads:[~2025-09-02 3:14 UTC|newest]
Thread overview: 7+ 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
2025-09-02 12:20 ` kernel test robot
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 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.