| From: Shakeel Butt <shakeel.butt@linux.dev> |
| Subject: memcg: bypass root memcg check for skmem charging |
| Date: Thu, 27 Feb 2025 18:23:54 -0800 |
| |
| The root memcg is never associated with a socket in mem_cgroup_sk_alloc, |
| so there is no need to check if the given memcg is root for the skmem |
| charging code path. |
| |
| Link: https://lkml.kernel.org/r/20250228022354.2624249-1-shakeel.butt@linux.dev |
| Signed-off-by: Shakeel Butt <shakeel.butt@linux.dev> |
| Cc: Johannes Weiner <hannes@cmpxchg.org> |
| Cc: Michal Hocko <mhocko@kernel.org> |
| Cc: Muchun Song <muchun.song@linux.dev> |
| Cc: Roman Gushchin (Cruise) <roman.gushchin@linux.dev> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| mm/memcontrol.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/mm/memcontrol.c~memcg-bypass-root-memcg-check-for-skmem-charging |
| +++ a/mm/memcontrol.c |
| @@ -4881,7 +4881,7 @@ bool mem_cgroup_charge_skmem(struct mem_ |
| if (!cgroup_subsys_on_dfl(memory_cgrp_subsys)) |
| return memcg1_charge_skmem(memcg, nr_pages, gfp_mask); |
| |
| - if (try_charge(memcg, gfp_mask, nr_pages) == 0) { |
| + if (try_charge_memcg(memcg, gfp_mask, nr_pages) == 0) { |
| mod_memcg_state(memcg, MEMCG_SOCK, nr_pages); |
| return true; |
| } |
| _ |