memcg: manually inline __refill_stock
authorShakeel Butt <shakeel.butt@linux.dev>
Fri, 4 Apr 2025 01:39:08 +0000 (18:39 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 12 May 2025 00:48:11 +0000 (17:48 -0700)
There are no more multiple callers of __refill_stock(), so simply inline
it to refill_stock().

Link: https://lkml.kernel.org/r/20250404013913.1663035-5-shakeel.butt@linux.dev
Signed-off-by: Shakeel Butt <shakeel.butt@linux.dev>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Reviewed-by: Roman Gushchin <roman.gushchin@linux.dev>
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 dfb3f14c1178a243832350e6457c5604cd335018..03a2be6d4a6771c1a844e5233a766ee2f15d189f 100644 (file)
@@ -1871,14 +1871,22 @@ static void drain_local_stock(struct work_struct *dummy)
        obj_cgroup_put(old);
 }
 
-/*
- * Cache charges(val) to local per_cpu area.
- * This will be consumed by consume_stock() function, later.
- */
-static void __refill_stock(struct mem_cgroup *memcg, unsigned int nr_pages)
+static void refill_stock(struct mem_cgroup *memcg, unsigned int nr_pages)
 {
        struct memcg_stock_pcp *stock;
        unsigned int stock_pages;
+       unsigned long flags;
+
+       VM_WARN_ON_ONCE(mem_cgroup_is_root(memcg));
+
+       if (!local_trylock_irqsave(&memcg_stock.stock_lock, flags)) {
+               /*
+                * In case of unlikely failure to lock percpu stock_lock
+                * uncharge memcg directly.
+                */
+               memcg_uncharge(memcg, nr_pages);
+               return;
+       }
 
        stock = this_cpu_ptr(&memcg_stock);
        if (READ_ONCE(stock->cached) != memcg) { /* reset if necessary */
@@ -1891,23 +1899,7 @@ static void __refill_stock(struct mem_cgroup *memcg, unsigned int nr_pages)
 
        if (stock_pages > MEMCG_CHARGE_BATCH)
                drain_stock(stock);
-}
-
-static void refill_stock(struct mem_cgroup *memcg, unsigned int nr_pages)
-{
-       unsigned long flags;
-
-       VM_WARN_ON_ONCE(mem_cgroup_is_root(memcg));
 
-       if (!local_trylock_irqsave(&memcg_stock.stock_lock, flags)) {
-               /*
-                * In case of unlikely failure to lock percpu stock_lock
-                * uncharge memcg directly.
-                */
-               memcg_uncharge(memcg, nr_pages);
-               return;
-       }
-       __refill_stock(memcg, nr_pages);
        local_unlock_irqrestore(&memcg_stock.stock_lock, flags);
 }