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++) _