On Tue, 27 Oct 2020 08:21:57 +0100 Michal Hocko <mho...@suse.com> 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++)
_

Reply via email to