Message ID | 20181030174649.16778-1-guro@fb.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | mm: hide incomplete nr_indirectly_reclaimable in /proc/zoneinfo | expand |
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], >
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
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 >
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
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],
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(+)