]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mm: memcg: export workingset refault stats for cgroup v1
authorYang Shi <shy828301@gmail.com>
Tue, 16 Aug 2022 18:58:01 +0000 (11:58 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 22 Aug 2022 22:58:18 +0000 (15:58 -0700)
Workingset refault stats are important and useful metrics to measure how
well reclaimer and swapping work and how healthy the services are, but
they are just available for cgroup v2.  There are still plenty users with
cgroup v1, export the stats for cgroup v1.

Link: https://lkml.kernel.org/r/20220816185801.651091-1-shy828301@gmail.com
Signed-off-by: Yang Shi <shy828301@gmail.com>
Acked-by: Shakeel Butt <shakeelb@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Muchun Song <songmuchun@bytedance.com>
Cc: Roman Gushchin <roman.gushchin@linux.dev>
Cc: Yosry Ahmed <yosryahmed@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/memcontrol.c

index 4d59c6ff9435f44a27851e58ebb14b26fd9e0302..5e0fa278eb538d59fb4946bcf1429b60410aa3be 100644 (file)
@@ -3976,6 +3976,8 @@ static const unsigned int memcg1_stats[] = {
        NR_FILE_MAPPED,
        NR_FILE_DIRTY,
        NR_WRITEBACK,
+       WORKINGSET_REFAULT_ANON,
+       WORKINGSET_REFAULT_FILE,
        MEMCG_SWAP,
 };
 
@@ -3989,6 +3991,8 @@ static const char *const memcg1_stat_names[] = {
        "mapped_file",
        "dirty",
        "writeback",
+       "workingset_refault_anon",
+       "workingset_refault_file",
        "swap",
 };
 
@@ -4017,7 +4021,8 @@ static int memcg_stat_show(struct seq_file *m, void *v)
                if (memcg1_stats[i] == MEMCG_SWAP && !do_memsw_account())
                        continue;
                nr = memcg_page_state_local(memcg, memcg1_stats[i]);
-               seq_printf(m, "%s %lu\n", memcg1_stat_names[i], nr * PAGE_SIZE);
+               seq_printf(m, "%s %lu\n", memcg1_stat_names[i],
+                          nr * memcg_page_state_unit(memcg1_stats[i]));
        }
 
        for (i = 0; i < ARRAY_SIZE(memcg1_events); i++)
@@ -4048,7 +4053,7 @@ static int memcg_stat_show(struct seq_file *m, void *v)
                        continue;
                nr = memcg_page_state(memcg, memcg1_stats[i]);
                seq_printf(m, "total_%s %llu\n", memcg1_stat_names[i],
-                                               (u64)nr * PAGE_SIZE);
+                          (u64)nr * memcg_page_state_unit(memcg1_stats[i]));
        }
 
        for (i = 0; i < ARRAY_SIZE(memcg1_events); i++)