]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
memcg: move mem_cgroup_usage memcontrol-v1.c
authorChen Ridong <chenridong@huawei.com>
Thu, 11 Dec 2025 01:30:18 +0000 (01:30 +0000)
committerAndrew Morton <akpm@linux-foundation.org>
Wed, 21 Jan 2026 03:24:41 +0000 (19:24 -0800)
Patch series "memcg cleanups", v3.

Two code moves/removals with no behavior change.

This patch (of 2):

Currently, mem_cgroup_usage is only used for v1, just move it to
memcontrol-v1.c

Link: https://lkml.kernel.org/r/20251211013019.2080004-1-chenridong@huaweicloud.com
Link: https://lkml.kernel.org/r/20251211013019.2080004-2-chenridong@huaweicloud.com
Signed-off-by: Chen Ridong <chenridong@huawei.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Shakeel Butt <shakeel.butt@linux.dev>
Acked-by: Michal Koutný <mkoutny@suse.com>
Cc: Axel Rasmussen <axelrasmussen@google.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Lu Jialin <lujialin4@huawei.com>
Cc: Muchun Song <muchun.song@linux.dev>
Cc: Qi Zheng <zhengqi.arch@bytedance.com>
Cc: Roman Gushchin <roman.gushchin@linux.dev>
Cc: Wei Xu <weixugc@google.com>
Cc: Yuanchu Xie <yuanchu@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/memcontrol-v1.c
mm/memcontrol-v1.h
mm/memcontrol.c

index 6eed14bff74261492efa421e9da7d3e4808d2642..0b50cb122ff3d5c0c960480db75941c8d329e064 100644 (file)
@@ -427,6 +427,28 @@ static int mem_cgroup_move_charge_write(struct cgroup_subsys_state *css,
 }
 #endif
 
+static unsigned long mem_cgroup_usage(struct mem_cgroup *memcg, bool swap)
+{
+       unsigned long val;
+
+       if (mem_cgroup_is_root(memcg)) {
+               /*
+                * Approximate root's usage from global state. This isn't
+                * perfect, but the root usage was always an approximation.
+                */
+               val = global_node_page_state(NR_FILE_PAGES) +
+                       global_node_page_state(NR_ANON_MAPPED);
+               if (swap)
+                       val += total_swap_pages - get_nr_swap_pages();
+       } else {
+               if (!swap)
+                       val = page_counter_read(&memcg->memory);
+               else
+                       val = page_counter_read(&memcg->memsw);
+       }
+       return val;
+}
+
 static void __mem_cgroup_threshold(struct mem_cgroup *memcg, bool swap)
 {
        struct mem_cgroup_threshold_ary *t;
index 6358464bb41605c4219bb5a456fe58a26b630ddf..e92b21af92b1ba369d093747aae5ad12d9428f8d 100644 (file)
@@ -22,8 +22,6 @@
             iter != NULL;                              \
             iter = mem_cgroup_iter(NULL, iter, NULL))
 
-unsigned long mem_cgroup_usage(struct mem_cgroup *memcg, bool swap);
-
 void drain_all_stock(struct mem_cgroup *root_memcg);
 
 unsigned long memcg_events(struct mem_cgroup *memcg, int event);
index 86f43b7e5f71042b142096832432ebd555bac536..7d4b93d30eb0da90fcc5d93f9974e561e5011d53 100644 (file)
@@ -3272,28 +3272,6 @@ void folio_split_memcg_refs(struct folio *folio, unsigned old_order,
        css_get_many(&__folio_memcg(folio)->css, new_refs);
 }
 
-unsigned long mem_cgroup_usage(struct mem_cgroup *memcg, bool swap)
-{
-       unsigned long val;
-
-       if (mem_cgroup_is_root(memcg)) {
-               /*
-                * Approximate root's usage from global state. This isn't
-                * perfect, but the root usage was always an approximation.
-                */
-               val = global_node_page_state(NR_FILE_PAGES) +
-                       global_node_page_state(NR_ANON_MAPPED);
-               if (swap)
-                       val += total_swap_pages - get_nr_swap_pages();
-       } else {
-               if (!swap)
-                       val = page_counter_read(&memcg->memory);
-               else
-                       val = page_counter_read(&memcg->memsw);
-       }
-       return val;
-}
-
 static int memcg_online_kmem(struct mem_cgroup *memcg)
 {
        struct obj_cgroup *objcg;