Re: + mm-memcontrol-correct-the-nr_anon_thps-counter-of-hierarchical-memcg-fix.patch added to -mm tree

From: Andrew Morton
Date: Wed Oct 28 2020 - 19:26:28 EST


On Tue, 27 Oct 2020 08:21:57 +0100 Michal Hocko <mhocko@xxxxxxxx> wrote:

> > --- a/mm/memcontrol.c~mm-memcontrol-correct-the-nr_anon_thps-counter-of-hierarchical-memcg-fix
> > +++ a/mm/memcontrol.c
> > @@ -4107,7 +4107,7 @@ static int memcg_stat_show(struct seq_fi
> > if (memcg1_stats[i] == NR_ANON_THPS)
> > nr *= HPAGE_PMD_NR;
> > #endif
> > - seq_printf(m, "total_%s %llu\n", memcg1_stat_names[i],
> > + seq_printf(m, "total_%s %lu\n", memcg1_stat_names[i],
> > nr * PAGE_SIZE);
>
> Shouldn't we cast to u64 instead? 32b systems with a lot of memory are
> quite rare but going over 4G here is not something unimaginable. The
> similar is true for other counters.

Sure..

--- a/mm/memcontrol.c~mm-memcontrol-correct-the-nr_anon_thps-counter-of-hierarchical-memcg-fix-fix
+++ a/mm/memcontrol.c
@@ -4119,8 +4119,8 @@ static int memcg_stat_show(struct seq_fi
if (memcg1_stats[i] == NR_ANON_THPS)
nr *= HPAGE_PMD_NR;
#endif
- seq_printf(m, "total_%s %lu\n", memcg1_stat_names[i],
- nr * PAGE_SIZE);
+ seq_printf(m, "total_%s %llu\n", memcg1_stat_names[i],
+ (u64)nr * PAGE_SIZE);
}

for (i = 0; i < ARRAY_SIZE(memcg1_events); i++)
_