memcg: manually inline replace_stock_objcg
authorShakeel Butt <shakeel.butt@linux.dev>
Fri, 4 Apr 2025 01:39:13 +0000 (18:39 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 12 May 2025 00:48:12 +0000 (17:48 -0700)
The replace_stock_objcg() is being called by only refill_obj_stock, so
manually inline it.

Link: https://lkml.kernel.org/r/20250404013913.1663035-10-shakeel.butt@linux.dev
Signed-off-by: Shakeel Butt <shakeel.butt@linux.dev>
Reviewed-by: Roman Gushchin <roman.gushchin@linux.dev>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Muchun Song <muchun.song@linux.dev>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/memcontrol.c

index 3bb02f672e39ecbd4401b4ba7cca4b6d058ce5f5..aebb1f2c8657b572155436916526b50df49ad146 100644 (file)
@@ -2763,17 +2763,6 @@ void __memcg_kmem_uncharge_page(struct page *page, int order)
        obj_cgroup_put(objcg);
 }
 
-/* Replace the stock objcg with objcg, return the old objcg */
-static void replace_stock_objcg(struct memcg_stock_pcp *stock,
-                               struct obj_cgroup *objcg)
-{
-       drain_obj_stock(stock);
-       obj_cgroup_get(objcg);
-       stock->nr_bytes = atomic_read(&objcg->nr_charged_bytes)
-                       ? atomic_xchg(&objcg->nr_charged_bytes, 0) : 0;
-       WRITE_ONCE(stock->cached_objcg, objcg);
-}
-
 static void __account_obj_stock(struct obj_cgroup *objcg,
                                struct memcg_stock_pcp *stock, int nr,
                                struct pglist_data *pgdat, enum node_stat_item idx)
@@ -2934,7 +2923,12 @@ static void refill_obj_stock(struct obj_cgroup *objcg, unsigned int nr_bytes,
 
        stock = this_cpu_ptr(&memcg_stock);
        if (READ_ONCE(stock->cached_objcg) != objcg) { /* reset if necessary */
-               replace_stock_objcg(stock, objcg);
+               drain_obj_stock(stock);
+               obj_cgroup_get(objcg);
+               stock->nr_bytes = atomic_read(&objcg->nr_charged_bytes)
+                               ? atomic_xchg(&objcg->nr_charged_bytes, 0) : 0;
+               WRITE_ONCE(stock->cached_objcg, objcg);
+
                allow_uncharge = true;  /* Allow uncharge when objcg changes */
        }
        stock->nr_bytes += nr_bytes;