linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] mm: hide incomplete nr_indirectly_reclaimable in /proc/zoneinfo
@ 2018-10-30 17:48 Roman Gushchin
  2018-10-31  8:12 ` Vlastimil Babka
  2018-11-29 12:52 ` Greg KH
  0 siblings, 2 replies; 5+ messages in thread
From: Roman Gushchin @ 2018-10-30 17:48 UTC (permalink / raw)
  To: stable
  Cc: Yongqin Liu, linux-mm, linux-kernel, Kernel Team, Roman Gushchin,
	Vlastimil Babka, Andrew Morton

Yongqin reported that /proc/zoneinfo format is broken in 4.14
due to commit 7aaf77272358 ("mm: don't show nr_indirectly_reclaimable
in /proc/vmstat")

Node 0, zone      DMA
  per-node stats
      nr_inactive_anon 403
      nr_active_anon 89123
      nr_inactive_file 128887
      nr_active_file 47377
      nr_unevictable 2053
      nr_slab_reclaimable 7510
      nr_slab_unreclaimable 10775
      nr_isolated_anon 0
      nr_isolated_file 0
      <...>
      nr_vmscan_write 0
      nr_vmscan_immediate_reclaim 0
      nr_dirtied   6022
      nr_written   5985
                   74240
      ^^^^^^^^^^
  pages free     131656

The problem is caused by the nr_indirectly_reclaimable counter,
which is hidden from the /proc/vmstat, but not from the
/proc/zoneinfo. Let's fix this inconsistency and hide the
counter from /proc/zoneinfo exactly as from /proc/vmstat.

BTW, in 4.19+ the counter has been renamed and exported by
the commit b29940c1abd7 ("mm: rename and change semantics of
nr_indirectly_reclaimable_bytes"), so there is no such a problem
anymore.

Cc: <stable@vger.kernel.org> # 4.14.x-4.18.x
Fixes: 7aaf77272358 ("mm: don't show nr_indirectly_reclaimable in /proc/vmstat")
Reported-by: Yongqin Liu <yongqin.liu@linaro.org>
Signed-off-by: Roman Gushchin <guro@fb.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Andrew Morton <akpm@linux-foundation.org>
---
 mm/vmstat.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/mm/vmstat.c b/mm/vmstat.c
index 527ae727d547..6389e876c7a7 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -1500,6 +1500,10 @@ static void zoneinfo_show_print(struct seq_file *m, pg_data_t *pgdat,
 	if (is_zone_first_populated(pgdat, zone)) {
 		seq_printf(m, "\n  per-node stats");
 		for (i = 0; i < NR_VM_NODE_STAT_ITEMS; i++) {
+			/* Skip hidden vmstat items. */
+			if (*vmstat_text[i + NR_VM_ZONE_STAT_ITEMS +
+					 NR_VM_NUMA_STAT_ITEMS] == '\0')
+				continue;
 			seq_printf(m, "\n      %-12s %lu",
 				vmstat_text[i + NR_VM_ZONE_STAT_ITEMS +
 				NR_VM_NUMA_STAT_ITEMS],
-- 
2.17.2


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] mm: hide incomplete nr_indirectly_reclaimable in /proc/zoneinfo
  2018-10-30 17:48 [PATCH] mm: hide incomplete nr_indirectly_reclaimable in /proc/zoneinfo Roman Gushchin
@ 2018-10-31  8:12 ` Vlastimil Babka
  2018-11-29 12:52 ` Greg KH
  1 sibling, 0 replies; 5+ messages in thread
From: Vlastimil Babka @ 2018-10-31  8:12 UTC (permalink / raw)
  To: Roman Gushchin, stable
  Cc: Yongqin Liu, linux-mm, linux-kernel, Kernel Team, Andrew Morton

On 10/30/18 6:48 PM, Roman Gushchin wrote:
> Yongqin reported that /proc/zoneinfo format is broken in 4.14
> due to commit 7aaf77272358 ("mm: don't show nr_indirectly_reclaimable
> in /proc/vmstat")
> 
> Node 0, zone      DMA
>   per-node stats
>       nr_inactive_anon 403
>       nr_active_anon 89123
>       nr_inactive_file 128887
>       nr_active_file 47377
>       nr_unevictable 2053
>       nr_slab_reclaimable 7510
>       nr_slab_unreclaimable 10775
>       nr_isolated_anon 0
>       nr_isolated_file 0
>       <...>
>       nr_vmscan_write 0
>       nr_vmscan_immediate_reclaim 0
>       nr_dirtied   6022
>       nr_written   5985
>                    74240
>       ^^^^^^^^^^
>   pages free     131656
> 
> The problem is caused by the nr_indirectly_reclaimable counter,
> which is hidden from the /proc/vmstat, but not from the
> /proc/zoneinfo. Let's fix this inconsistency and hide the
> counter from /proc/zoneinfo exactly as from /proc/vmstat.

Ooops, good catch.

> BTW, in 4.19+ the counter has been renamed and exported by
> the commit b29940c1abd7 ("mm: rename and change semantics of
> nr_indirectly_reclaimable_bytes"), so there is no such a problem
> anymore.

Yeah and that commit depends on introducing a new set kmalloc
reclaimable caches, which is definitely not a stable material, so a
stable-only patch seems to be the only option.

> Cc: <stable@vger.kernel.org> # 4.14.x-4.18.x
> Fixes: 7aaf77272358 ("mm: don't show nr_indirectly_reclaimable in /proc/vmstat")
> Reported-by: Yongqin Liu <yongqin.liu@linaro.org>
> Signed-off-by: Roman Gushchin <guro@fb.com>
> Cc: Vlastimil Babka <vbabka@suse.cz>
> Cc: Andrew Morton <akpm@linux-foundation.org>

Acked-by: Vlastimil Babka <vbabka@suse.cz>

> ---
>  mm/vmstat.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/mm/vmstat.c b/mm/vmstat.c
> index 527ae727d547..6389e876c7a7 100644
> --- a/mm/vmstat.c
> +++ b/mm/vmstat.c
> @@ -1500,6 +1500,10 @@ static void zoneinfo_show_print(struct seq_file *m, pg_data_t *pgdat,
>  	if (is_zone_first_populated(pgdat, zone)) {
>  		seq_printf(m, "\n  per-node stats");
>  		for (i = 0; i < NR_VM_NODE_STAT_ITEMS; i++) {
> +			/* Skip hidden vmstat items. */
> +			if (*vmstat_text[i + NR_VM_ZONE_STAT_ITEMS +
> +					 NR_VM_NUMA_STAT_ITEMS] == '\0')
> +				continue;
>  			seq_printf(m, "\n      %-12s %lu",
>  				vmstat_text[i + NR_VM_ZONE_STAT_ITEMS +
>  				NR_VM_NUMA_STAT_ITEMS],
> 


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] mm: hide incomplete nr_indirectly_reclaimable in /proc/zoneinfo
  2018-10-30 17:48 [PATCH] mm: hide incomplete nr_indirectly_reclaimable in /proc/zoneinfo Roman Gushchin
  2018-10-31  8:12 ` Vlastimil Babka
@ 2018-11-29 12:52 ` Greg KH
  2018-11-29 14:54   ` Vlastimil Babka
  1 sibling, 1 reply; 5+ messages in thread
From: Greg KH @ 2018-11-29 12:52 UTC (permalink / raw)
  To: Roman Gushchin
  Cc: stable, Yongqin Liu, linux-mm, linux-kernel, Kernel Team,
	Vlastimil Babka, Andrew Morton

On Tue, Oct 30, 2018 at 05:48:25PM +0000, Roman Gushchin wrote:
> Yongqin reported that /proc/zoneinfo format is broken in 4.14
> due to commit 7aaf77272358 ("mm: don't show nr_indirectly_reclaimable
> in /proc/vmstat")
> 
> Node 0, zone      DMA
>   per-node stats
>       nr_inactive_anon 403
>       nr_active_anon 89123
>       nr_inactive_file 128887
>       nr_active_file 47377
>       nr_unevictable 2053
>       nr_slab_reclaimable 7510
>       nr_slab_unreclaimable 10775
>       nr_isolated_anon 0
>       nr_isolated_file 0
>       <...>
>       nr_vmscan_write 0
>       nr_vmscan_immediate_reclaim 0
>       nr_dirtied   6022
>       nr_written   5985
>                    74240
>       ^^^^^^^^^^
>   pages free     131656
> 
> The problem is caused by the nr_indirectly_reclaimable counter,
> which is hidden from the /proc/vmstat, but not from the
> /proc/zoneinfo. Let's fix this inconsistency and hide the
> counter from /proc/zoneinfo exactly as from /proc/vmstat.
> 
> BTW, in 4.19+ the counter has been renamed and exported by
> the commit b29940c1abd7 ("mm: rename and change semantics of
> nr_indirectly_reclaimable_bytes"), so there is no such a problem
> anymore.
> 
> Cc: <stable@vger.kernel.org> # 4.14.x-4.18.x
> Fixes: 7aaf77272358 ("mm: don't show nr_indirectly_reclaimable in /proc/vmstat")
> Reported-by: Yongqin Liu <yongqin.liu@linaro.org>
> Signed-off-by: Roman Gushchin <guro@fb.com>
> Cc: Vlastimil Babka <vbabka@suse.cz>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> ---
>  mm/vmstat.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/mm/vmstat.c b/mm/vmstat.c
> index 527ae727d547..6389e876c7a7 100644
> --- a/mm/vmstat.c
> +++ b/mm/vmstat.c
> @@ -1500,6 +1500,10 @@ static void zoneinfo_show_print(struct seq_file *m, pg_data_t *pgdat,
>  	if (is_zone_first_populated(pgdat, zone)) {
>  		seq_printf(m, "\n  per-node stats");
>  		for (i = 0; i < NR_VM_NODE_STAT_ITEMS; i++) {
> +			/* Skip hidden vmstat items. */
> +			if (*vmstat_text[i + NR_VM_ZONE_STAT_ITEMS +
> +					 NR_VM_NUMA_STAT_ITEMS] == '\0')
> +				continue;
>  			seq_printf(m, "\n      %-12s %lu",
>  				vmstat_text[i + NR_VM_ZONE_STAT_ITEMS +
>  				NR_VM_NUMA_STAT_ITEMS],
> -- 
> 2.17.2
> 

I do not see this patch in Linus's tree, do you?

If not, what am I supposed to do with this?

confused,

greg k-h

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] mm: hide incomplete nr_indirectly_reclaimable in /proc/zoneinfo
  2018-11-29 12:52 ` Greg KH
@ 2018-11-29 14:54   ` Vlastimil Babka
  2018-12-06 11:13     ` Greg KH
  0 siblings, 1 reply; 5+ messages in thread
From: Vlastimil Babka @ 2018-11-29 14:54 UTC (permalink / raw)
  To: Greg KH, Roman Gushchin
  Cc: stable, Yongqin Liu, linux-mm, linux-kernel, Kernel Team, Andrew Morton

On 11/29/18 1:52 PM, Greg KH wrote:
> On Tue, Oct 30, 2018 at 05:48:25PM +0000, Roman Gushchin wrote:
>> BTW, in 4.19+ the counter has been renamed and exported by
>> the commit b29940c1abd7 ("mm: rename and change semantics of
>> nr_indirectly_reclaimable_bytes"), so there is no such a problem
>> anymore.
>>
>> Cc: <stable@vger.kernel.org> # 4.14.x-4.18.x
>> Fixes: 7aaf77272358 ("mm: don't show nr_indirectly_reclaimable in /proc/vmstat")

...

> I do not see this patch in Linus's tree, do you?
> 
> If not, what am I supposed to do with this?

Yeah it wasn't probably clear enough, but this is stable-only patch, as
upstream avoided the (then-unknown) problem in 4.19 as part of a far
more intrusive series. As I've said in my previous reply to this thread,
I don't think we can backport that series to stable (e.g. it introduces
a set of new kmalloc caches that will suddenly appear in /proc/slabinfo)
so I think this is a case for exception from the stable rules.

Vlastimil

> confused,
> 
> greg k-h
> 


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] mm: hide incomplete nr_indirectly_reclaimable in /proc/zoneinfo
  2018-11-29 14:54   ` Vlastimil Babka
@ 2018-12-06 11:13     ` Greg KH
  0 siblings, 0 replies; 5+ messages in thread
From: Greg KH @ 2018-12-06 11:13 UTC (permalink / raw)
  To: Vlastimil Babka
  Cc: Roman Gushchin, stable, Yongqin Liu, linux-mm, linux-kernel,
	Kernel Team, Andrew Morton

On Thu, Nov 29, 2018 at 03:54:10PM +0100, Vlastimil Babka wrote:
> On 11/29/18 1:52 PM, Greg KH wrote:
> > On Tue, Oct 30, 2018 at 05:48:25PM +0000, Roman Gushchin wrote:
> >> BTW, in 4.19+ the counter has been renamed and exported by
> >> the commit b29940c1abd7 ("mm: rename and change semantics of
> >> nr_indirectly_reclaimable_bytes"), so there is no such a problem
> >> anymore.
> >>
> >> Cc: <stable@vger.kernel.org> # 4.14.x-4.18.x
> >> Fixes: 7aaf77272358 ("mm: don't show nr_indirectly_reclaimable in /proc/vmstat")
> 
> ...
> 
> > I do not see this patch in Linus's tree, do you?
> > 
> > If not, what am I supposed to do with this?
> 
> Yeah it wasn't probably clear enough, but this is stable-only patch, as
> upstream avoided the (then-unknown) problem in 4.19 as part of a far
> more intrusive series. As I've said in my previous reply to this thread,
> I don't think we can backport that series to stable (e.g. it introduces
> a set of new kmalloc caches that will suddenly appear in /proc/slabinfo)
> so I think this is a case for exception from the stable rules.

Ok, now queued up, thanks.

greg k-h

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-12-06 11:13 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-30 17:48 [PATCH] mm: hide incomplete nr_indirectly_reclaimable in /proc/zoneinfo Roman Gushchin
2018-10-31  8:12 ` Vlastimil Babka
2018-11-29 12:52 ` Greg KH
2018-11-29 14:54   ` Vlastimil Babka
2018-12-06 11:13     ` Greg KH

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).