* [PATCH v2] mm: show_mem: show number of zspages in show_free_areas
@ 2025-09-02 12:49 Thadeu Lima de Souza Cascardo
2025-09-02 13:12 ` Lorenzo Stoakes
` (7 more replies)
0 siblings, 8 replies; 10+ messages in thread
From: Thadeu Lima de Souza Cascardo @ 2025-09-02 12:49 UTC (permalink / raw)
To: Andrew Morton, Vlastimil Babka, Suren Baghdasaryan, Michal Hocko,
Brendan Jackman, Johannes Weiner, Zi Yan, Minchan Kim,
Sergey Senozhatsky, Yosry Ahmed, Nhat Pham, Chengming Zhou,
SeongJae Park, Lorenzo Stoakes
Cc: Thadeu Lima de Souza Cascardo, linux-mm, linux-kernel, kernel-dev
When OOM is triggered, it will show where the pages might be for each zone.
When using zram or zswap, it might look like lots of pages are missing.
After this patch, zspages are shown as below.
[ 48.792859] Node 0 DMA free:2812kB boost:0kB min:60kB low:72kB high:84kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB writepending:0kB zspages:11160kB present:15992kB managed:15360kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB
[ 48.792962] lowmem_reserve[]: 0 956 956 956 956
[ 48.792988] Node 0 DMA32 free:3512kB boost:0kB min:3912kB low:4888kB high:5864kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:28kB active_file:8kB inactive_file:16kB unevictable:0kB writepending:0kB zspages:916780kB present:1032064kB managed:978944kB mlocked:0kB bounce:0kB free_pcp:500kB local_pcp:248kB free_cma:0kB
[ 48.793118] lowmem_reserve[]: 0 0 0 0 0
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
---
v2:
- fix build when CONFIG_ZSMALLOC is not enabled
---
mm/show_mem.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/mm/show_mem.c b/mm/show_mem.c
index 41999e94a56d623726ea92f3f38785e8b218afe5..c563d9adfa87765a8736e91c1f68d824b03eaea8 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,11 @@ 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)),
+#else
+ 0UL,
+#endif
K(zone->present_pages),
K(zone_managed_pages(zone)),
K(zone_page_state(zone, NR_MLOCK)),
---
base-commit: b320789d6883cc00ac78ce83bccbfe7ed58afcf0
change-id: 20250902-show_mem_zspages-d090ea0bd1d4
Best regards,
--
Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v2] mm: show_mem: show number of zspages in show_free_areas
2025-09-02 12:49 [PATCH v2] mm: show_mem: show number of zspages in show_free_areas Thadeu Lima de Souza Cascardo
@ 2025-09-02 13:12 ` Lorenzo Stoakes
2025-09-02 13:54 ` Vlastimil Babka
` (6 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Lorenzo Stoakes @ 2025-09-02 13:12 UTC (permalink / raw)
To: Thadeu Lima de Souza Cascardo
Cc: Andrew Morton, Vlastimil Babka, Suren Baghdasaryan, Michal Hocko,
Brendan Jackman, Johannes Weiner, Zi Yan, Minchan Kim,
Sergey Senozhatsky, Yosry Ahmed, Nhat Pham, Chengming Zhou,
SeongJae Park, linux-mm, linux-kernel, kernel-dev
On Tue, Sep 02, 2025 at 09:49:21AM -0300, Thadeu Lima de Souza Cascardo wrote:
> When OOM is triggered, it will show where the pages might be for each zone.
> When using zram or zswap, it might look like lots of pages are missing.
> After this patch, zspages are shown as below.
>
> [ 48.792859] Node 0 DMA free:2812kB boost:0kB min:60kB low:72kB high:84kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB writepending:0kB zspages:11160kB present:15992kB managed:15360kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB
> [ 48.792962] lowmem_reserve[]: 0 956 956 956 956
> [ 48.792988] Node 0 DMA32 free:3512kB boost:0kB min:3912kB low:4888kB high:5864kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:28kB active_file:8kB inactive_file:16kB unevictable:0kB writepending:0kB zspages:916780kB present:1032064kB managed:978944kB mlocked:0kB bounce:0kB free_pcp:500kB local_pcp:248kB free_cma:0kB
> [ 48.793118] lowmem_reserve[]: 0 0 0 0 0
>
> Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Thanks!
LGTM so:
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
> ---
> v2:
> - fix build when CONFIG_ZSMALLOC is not enabled
> ---
> mm/show_mem.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/mm/show_mem.c b/mm/show_mem.c
> index 41999e94a56d623726ea92f3f38785e8b218afe5..c563d9adfa87765a8736e91c1f68d824b03eaea8 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,11 @@ 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)),
> +#else
> + 0UL,
> +#endif
> K(zone->present_pages),
> K(zone_managed_pages(zone)),
> K(zone_page_state(zone, NR_MLOCK)),
>
> ---
> base-commit: b320789d6883cc00ac78ce83bccbfe7ed58afcf0
> change-id: 20250902-show_mem_zspages-d090ea0bd1d4
>
> Best regards,
> --
> Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] mm: show_mem: show number of zspages in show_free_areas
2025-09-02 12:49 [PATCH v2] mm: show_mem: show number of zspages in show_free_areas Thadeu Lima de Souza Cascardo
2025-09-02 13:12 ` Lorenzo Stoakes
@ 2025-09-02 13:54 ` Vlastimil Babka
2025-09-02 16:01 ` Zi Yan
` (5 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Vlastimil Babka @ 2025-09-02 13:54 UTC (permalink / raw)
To: Thadeu Lima de Souza Cascardo, Andrew Morton, Suren Baghdasaryan,
Michal Hocko, Brendan Jackman, Johannes Weiner, Zi Yan,
Minchan Kim, Sergey Senozhatsky, Yosry Ahmed, Nhat Pham,
Chengming Zhou, SeongJae Park, Lorenzo Stoakes
Cc: linux-mm, linux-kernel, kernel-dev
On 9/2/25 14:49, Thadeu Lima de Souza Cascardo wrote:
> When OOM is triggered, it will show where the pages might be for each zone.
> When using zram or zswap, it might look like lots of pages are missing.
> After this patch, zspages are shown as below.
>
> [ 48.792859] Node 0 DMA free:2812kB boost:0kB min:60kB low:72kB high:84kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB writepending:0kB zspages:11160kB present:15992kB managed:15360kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB
> [ 48.792962] lowmem_reserve[]: 0 956 956 956 956
> [ 48.792988] Node 0 DMA32 free:3512kB boost:0kB min:3912kB low:4888kB high:5864kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:28kB active_file:8kB inactive_file:16kB unevictable:0kB writepending:0kB zspages:916780kB present:1032064kB managed:978944kB mlocked:0kB bounce:0kB free_pcp:500kB local_pcp:248kB free_cma:0kB
> [ 48.793118] lowmem_reserve[]: 0 0 0 0 0
>
> Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
> ---
> v2:
> - fix build when CONFIG_ZSMALLOC is not enabled
> ---
> mm/show_mem.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/mm/show_mem.c b/mm/show_mem.c
> index 41999e94a56d623726ea92f3f38785e8b218afe5..c563d9adfa87765a8736e91c1f68d824b03eaea8 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,11 @@ 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)),
> +#else
> + 0UL,
> +#endif
> K(zone->present_pages),
> K(zone_managed_pages(zone)),
> K(zone_page_state(zone, NR_MLOCK)),
>
> ---
> base-commit: b320789d6883cc00ac78ce83bccbfe7ed58afcf0
> change-id: 20250902-show_mem_zspages-d090ea0bd1d4
>
> Best regards,
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] mm: show_mem: show number of zspages in show_free_areas
2025-09-02 12:49 [PATCH v2] mm: show_mem: show number of zspages in show_free_areas Thadeu Lima de Souza Cascardo
2025-09-02 13:12 ` Lorenzo Stoakes
2025-09-02 13:54 ` Vlastimil Babka
@ 2025-09-02 16:01 ` Zi Yan
2025-09-03 1:31 ` SeongJae Park
` (4 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Zi Yan @ 2025-09-02 16:01 UTC (permalink / raw)
To: Thadeu Lima de Souza Cascardo
Cc: Andrew Morton, Vlastimil Babka, Suren Baghdasaryan, Michal Hocko,
Brendan Jackman, Johannes Weiner, Minchan Kim, Sergey Senozhatsky,
Yosry Ahmed, Nhat Pham, Chengming Zhou, SeongJae Park,
Lorenzo Stoakes, linux-mm, linux-kernel, kernel-dev
On 2 Sep 2025, at 8:49, Thadeu Lima de Souza Cascardo wrote:
> When OOM is triggered, it will show where the pages might be for each zone.
> When using zram or zswap, it might look like lots of pages are missing.
> After this patch, zspages are shown as below.
>
> [ 48.792859] Node 0 DMA free:2812kB boost:0kB min:60kB low:72kB high:84kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB writepending:0kB zspages:11160kB present:15992kB managed:15360kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB
> [ 48.792962] lowmem_reserve[]: 0 956 956 956 956
> [ 48.792988] Node 0 DMA32 free:3512kB boost:0kB min:3912kB low:4888kB high:5864kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:28kB active_file:8kB inactive_file:16kB unevictable:0kB writepending:0kB zspages:916780kB present:1032064kB managed:978944kB mlocked:0kB bounce:0kB free_pcp:500kB local_pcp:248kB free_cma:0kB
> [ 48.793118] lowmem_reserve[]: 0 0 0 0 0
>
> Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
> ---
> v2:
> - fix build when CONFIG_ZSMALLOC is not enabled
> ---
> mm/show_mem.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
Acked-by: Zi Yan <ziy@nvidia.com>
Best Regards,
Yan, Zi
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] mm: show_mem: show number of zspages in show_free_areas
2025-09-02 12:49 [PATCH v2] mm: show_mem: show number of zspages in show_free_areas Thadeu Lima de Souza Cascardo
` (2 preceding siblings ...)
2025-09-02 16:01 ` Zi Yan
@ 2025-09-03 1:31 ` SeongJae Park
2025-09-03 1:39 ` Chengming Zhou
` (3 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: SeongJae Park @ 2025-09-03 1:31 UTC (permalink / raw)
To: Thadeu Lima de Souza Cascardo
Cc: SeongJae Park, Andrew Morton, Vlastimil Babka, Suren Baghdasaryan,
Michal Hocko, Brendan Jackman, Johannes Weiner, Zi Yan,
Minchan Kim, Sergey Senozhatsky, Yosry Ahmed, Nhat Pham,
Chengming Zhou, Lorenzo Stoakes, linux-mm, linux-kernel,
kernel-dev
On Tue, 2 Sep 2025 09:49:21 -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 or zswap, it might look like lots of pages are missing.
> After this patch, zspages are shown as below.
>
> [ 48.792859] Node 0 DMA free:2812kB boost:0kB min:60kB low:72kB high:84kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB writepending:0kB zspages:11160kB present:15992kB managed:15360kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB
> [ 48.792962] lowmem_reserve[]: 0 956 956 956 956
> [ 48.792988] Node 0 DMA32 free:3512kB boost:0kB min:3912kB low:4888kB high:5864kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:28kB active_file:8kB inactive_file:16kB unevictable:0kB writepending:0kB zspages:916780kB present:1032064kB managed:978944kB mlocked:0kB bounce:0kB free_pcp:500kB local_pcp:248kB free_cma:0kB
> [ 48.793118] lowmem_reserve[]: 0 0 0 0 0
>
> Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Acked-by: SeongJae Park <sj@kernel.org>
Thanks,
SJ
[...]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] mm: show_mem: show number of zspages in show_free_areas
2025-09-02 12:49 [PATCH v2] mm: show_mem: show number of zspages in show_free_areas Thadeu Lima de Souza Cascardo
` (3 preceding siblings ...)
2025-09-03 1:31 ` SeongJae Park
@ 2025-09-03 1:39 ` Chengming Zhou
2025-09-04 6:39 ` Johannes Weiner
` (2 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Chengming Zhou @ 2025-09-03 1:39 UTC (permalink / raw)
To: Thadeu Lima de Souza Cascardo, Andrew Morton, Vlastimil Babka,
Suren Baghdasaryan, Michal Hocko, Brendan Jackman,
Johannes Weiner, Zi Yan, Minchan Kim, Sergey Senozhatsky,
Yosry Ahmed, Nhat Pham, SeongJae Park, Lorenzo Stoakes
Cc: linux-mm, linux-kernel, kernel-dev
On 2025/9/2 20:49, Thadeu Lima de Souza Cascardo wrote:
> When OOM is triggered, it will show where the pages might be for each zone.
> When using zram or zswap, it might look like lots of pages are missing.
> After this patch, zspages are shown as below.
>
> [ 48.792859] Node 0 DMA free:2812kB boost:0kB min:60kB low:72kB high:84kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB writepending:0kB zspages:11160kB present:15992kB managed:15360kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB
> [ 48.792962] lowmem_reserve[]: 0 956 956 956 956
> [ 48.792988] Node 0 DMA32 free:3512kB boost:0kB min:3912kB low:4888kB high:5864kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:28kB active_file:8kB inactive_file:16kB unevictable:0kB writepending:0kB zspages:916780kB present:1032064kB managed:978944kB mlocked:0kB bounce:0kB free_pcp:500kB local_pcp:248kB free_cma:0kB
> [ 48.793118] lowmem_reserve[]: 0 0 0 0 0
>
> Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Reviewed-by: Chengming Zhou <chengming.zhou@linux.dev>
Thanks!
> ---
> v2:
> - fix build when CONFIG_ZSMALLOC is not enabled
> ---
> mm/show_mem.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/mm/show_mem.c b/mm/show_mem.c
> index 41999e94a56d623726ea92f3f38785e8b218afe5..c563d9adfa87765a8736e91c1f68d824b03eaea8 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,11 @@ 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)),
> +#else
> + 0UL,
> +#endif
> K(zone->present_pages),
> K(zone_managed_pages(zone)),
> K(zone_page_state(zone, NR_MLOCK)),
>
> ---
> base-commit: b320789d6883cc00ac78ce83bccbfe7ed58afcf0
> change-id: 20250902-show_mem_zspages-d090ea0bd1d4
>
> Best regards,
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] mm: show_mem: show number of zspages in show_free_areas
2025-09-02 12:49 [PATCH v2] mm: show_mem: show number of zspages in show_free_areas Thadeu Lima de Souza Cascardo
` (4 preceding siblings ...)
2025-09-03 1:39 ` Chengming Zhou
@ 2025-09-04 6:39 ` Johannes Weiner
2025-09-04 6:44 ` Sergey Senozhatsky
2025-09-05 17:43 ` Nhat Pham
7 siblings, 0 replies; 10+ messages in thread
From: Johannes Weiner @ 2025-09-04 6:39 UTC (permalink / raw)
To: Thadeu Lima de Souza Cascardo
Cc: Andrew Morton, Vlastimil Babka, Suren Baghdasaryan, Michal Hocko,
Brendan Jackman, Zi Yan, Minchan Kim, Sergey Senozhatsky,
Yosry Ahmed, Nhat Pham, Chengming Zhou, SeongJae Park,
Lorenzo Stoakes, linux-mm, linux-kernel, kernel-dev
On Tue, Sep 02, 2025 at 09:49:21AM -0300, Thadeu Lima de Souza Cascardo wrote:
> When OOM is triggered, it will show where the pages might be for each zone.
> When using zram or zswap, it might look like lots of pages are missing.
> After this patch, zspages are shown as below.
>
> [ 48.792859] Node 0 DMA free:2812kB boost:0kB min:60kB low:72kB high:84kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB writepending:0kB zspages:11160kB present:15992kB managed:15360kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB
> [ 48.792962] lowmem_reserve[]: 0 956 956 956 956
> [ 48.792988] Node 0 DMA32 free:3512kB boost:0kB min:3912kB low:4888kB high:5864kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:28kB active_file:8kB inactive_file:16kB unevictable:0kB writepending:0kB zspages:916780kB present:1032064kB managed:978944kB mlocked:0kB bounce:0kB free_pcp:500kB local_pcp:248kB free_cma:0kB
> [ 48.793118] lowmem_reserve[]: 0 0 0 0 0
>
> Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
> @@ -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,11 @@ 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)),
> +#else
> + 0UL,
> +#endif
> K(zone->present_pages),
> K(zone_managed_pages(zone)),
> K(zone_page_state(zone, NR_MLOCK)),
Longer-term, it might make sense to simply iterate enum zone_stat_item
and enum node_stat_item and print them all.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] mm: show_mem: show number of zspages in show_free_areas
2025-09-02 12:49 [PATCH v2] mm: show_mem: show number of zspages in show_free_areas Thadeu Lima de Souza Cascardo
` (5 preceding siblings ...)
2025-09-04 6:39 ` Johannes Weiner
@ 2025-09-04 6:44 ` Sergey Senozhatsky
2025-09-05 17:46 ` Nhat Pham
2025-09-05 17:43 ` Nhat Pham
7 siblings, 1 reply; 10+ messages in thread
From: Sergey Senozhatsky @ 2025-09-04 6:44 UTC (permalink / raw)
To: Thadeu Lima de Souza Cascardo
Cc: Andrew Morton, Vlastimil Babka, Suren Baghdasaryan, Michal Hocko,
Brendan Jackman, Johannes Weiner, Zi Yan, Minchan Kim,
Sergey Senozhatsky, Yosry Ahmed, Nhat Pham, Chengming Zhou,
SeongJae Park, Lorenzo Stoakes, linux-mm, linux-kernel,
kernel-dev
On (25/09/02 09:49), Thadeu Lima de Souza Cascardo wrote:
> When OOM is triggered, it will show where the pages might be for each zone.
> When using zram or zswap, it might look like lots of pages are missing.
> After this patch, zspages are shown as below.
>
> [ 48.792859] Node 0 DMA free:2812kB boost:0kB min:60kB low:72kB high:84kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB writepending:0kB zspages:11160kB present:15992kB managed:15360kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB
> [ 48.792962] lowmem_reserve[]: 0 956 956 956 956
> [ 48.792988] Node 0 DMA32 free:3512kB boost:0kB min:3912kB low:4888kB high:5864kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:28kB active_file:8kB inactive_file:16kB unevictable:0kB writepending:0kB zspages:916780kB present:1032064kB managed:978944kB mlocked:0kB bounce:0kB free_pcp:500kB local_pcp:248kB free_cma:0kB
> [ 48.793118] lowmem_reserve[]: 0 0 0 0 0
>
> Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
> ---
> v2:
> - fix build when CONFIG_ZSMALLOC is not enabled
> ---
> mm/show_mem.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/mm/show_mem.c b/mm/show_mem.c
> index 41999e94a56d623726ea92f3f38785e8b218afe5..c563d9adfa87765a8736e91c1f68d824b03eaea8 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"
A little "preliminary optimization" idea: do we want to specifically
refer to it as "zspages" or do we want a more generic term, just in
case if zsmalloc goes away, or if there is (are) another allocator(s)
for compressed swaps?
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] mm: show_mem: show number of zspages in show_free_areas
2025-09-02 12:49 [PATCH v2] mm: show_mem: show number of zspages in show_free_areas Thadeu Lima de Souza Cascardo
` (6 preceding siblings ...)
2025-09-04 6:44 ` Sergey Senozhatsky
@ 2025-09-05 17:43 ` Nhat Pham
7 siblings, 0 replies; 10+ messages in thread
From: Nhat Pham @ 2025-09-05 17:43 UTC (permalink / raw)
To: Thadeu Lima de Souza Cascardo
Cc: Andrew Morton, Vlastimil Babka, Suren Baghdasaryan, Michal Hocko,
Brendan Jackman, Johannes Weiner, Zi Yan, Minchan Kim,
Sergey Senozhatsky, Yosry Ahmed, Chengming Zhou, SeongJae Park,
Lorenzo Stoakes, linux-mm, linux-kernel, kernel-dev
On Tue, Sep 2, 2025 at 5:50 AM 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 or zswap, it might look like lots of pages are missing.
> After this patch, zspages are shown as below.
>
> [ 48.792859] Node 0 DMA free:2812kB boost:0kB min:60kB low:72kB high:84kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB writepending:0kB zspages:11160kB present:15992kB managed:15360kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB
> [ 48.792962] lowmem_reserve[]: 0 956 956 956 956
> [ 48.792988] Node 0 DMA32 free:3512kB boost:0kB min:3912kB low:4888kB high:5864kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:28kB active_file:8kB inactive_file:16kB unevictable:0kB writepending:0kB zspages:916780kB present:1032064kB managed:978944kB mlocked:0kB bounce:0kB free_pcp:500kB local_pcp:248kB free_cma:0kB
> [ 48.793118] lowmem_reserve[]: 0 0 0 0 0
>
> Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
> ---
> v2:
> - fix build when CONFIG_ZSMALLOC is not enabled
> ---
> mm/show_mem.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/mm/show_mem.c b/mm/show_mem.c
> index 41999e94a56d623726ea92f3f38785e8b218afe5..c563d9adfa87765a8736e91c1f68d824b03eaea8 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,11 @@ 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)),
> +#else
> + 0UL,
> +#endif
> K(zone->present_pages),
> K(zone_managed_pages(zone)),
> K(zone_page_state(zone, NR_MLOCK)),
>
> ---
> base-commit: b320789d6883cc00ac78ce83bccbfe7ed58afcf0
> change-id: 20250902-show_mem_zspages-d090ea0bd1d4
>
> Best regards,
> --
> Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
>
FWIW:
Acked-by: Nhat Pham <nphamcs@gmail.com>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] mm: show_mem: show number of zspages in show_free_areas
2025-09-04 6:44 ` Sergey Senozhatsky
@ 2025-09-05 17:46 ` Nhat Pham
0 siblings, 0 replies; 10+ messages in thread
From: Nhat Pham @ 2025-09-05 17:46 UTC (permalink / raw)
To: Sergey Senozhatsky
Cc: Thadeu Lima de Souza Cascardo, Andrew Morton, Vlastimil Babka,
Suren Baghdasaryan, Michal Hocko, Brendan Jackman,
Johannes Weiner, Zi Yan, Minchan Kim, Yosry Ahmed, Chengming Zhou,
SeongJae Park, Lorenzo Stoakes, linux-mm, linux-kernel,
kernel-dev
On Wed, Sep 3, 2025 at 11:44 PM Sergey Senozhatsky
<senozhatsky@chromium.org> wrote:
>
> On (25/09/02 09:49), Thadeu Lima de Souza Cascardo wrote:
> > When OOM is triggered, it will show where the pages might be for each zone.
> > When using zram or zswap, it might look like lots of pages are missing.
> > After this patch, zspages are shown as below.
> >
> > [ 48.792859] Node 0 DMA free:2812kB boost:0kB min:60kB low:72kB high:84kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB writepending:0kB zspages:11160kB present:15992kB managed:15360kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB
> > [ 48.792962] lowmem_reserve[]: 0 956 956 956 956
> > [ 48.792988] Node 0 DMA32 free:3512kB boost:0kB min:3912kB low:4888kB high:5864kB reserved_highatomic:0KB free_highatomic:0KB active_anon:0kB inactive_anon:28kB active_file:8kB inactive_file:16kB unevictable:0kB writepending:0kB zspages:916780kB present:1032064kB managed:978944kB mlocked:0kB bounce:0kB free_pcp:500kB local_pcp:248kB free_cma:0kB
> > [ 48.793118] lowmem_reserve[]: 0 0 0 0 0
> >
> > Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
> > ---
> > v2:
> > - fix build when CONFIG_ZSMALLOC is not enabled
> > ---
> > mm/show_mem.c | 6 ++++++
> > 1 file changed, 6 insertions(+)
> >
> > diff --git a/mm/show_mem.c b/mm/show_mem.c
> > index 41999e94a56d623726ea92f3f38785e8b218afe5..c563d9adfa87765a8736e91c1f68d824b03eaea8 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"
>
> A little "preliminary optimization" idea: do we want to specifically
> refer to it as "zspages" or do we want a more generic term, just in
> case if zsmalloc goes away, or if there is (are) another allocator(s)
> for compressed swaps?
Hmmm, zpage? z is a common prefix for "compressed".
I'm honestly fine with zspage though. We can just have any new
allocator call it zspage too ;)
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2025-09-05 17:46 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-02 12:49 [PATCH v2] mm: show_mem: show number of zspages in show_free_areas Thadeu Lima de Souza Cascardo
2025-09-02 13:12 ` Lorenzo Stoakes
2025-09-02 13:54 ` Vlastimil Babka
2025-09-02 16:01 ` Zi Yan
2025-09-03 1:31 ` SeongJae Park
2025-09-03 1:39 ` Chengming Zhou
2025-09-04 6:39 ` Johannes Weiner
2025-09-04 6:44 ` Sergey Senozhatsky
2025-09-05 17:46 ` Nhat Pham
2025-09-05 17:43 ` Nhat Pham
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).