]> git.baikalelectronics.ru Git - kernel.git/commitdiff
mm: memcontrol: use do_memsw_account() in a few more places
authorJohannes Weiner <hannes@cmpxchg.org>
Mon, 26 Sep 2022 13:57:03 +0000 (09:57 -0400)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 3 Oct 2022 21:03:36 +0000 (14:03 -0700)
It's slightly more descriptive and consistent with other places that
distinguish cgroup1's combined memory+swap accounting scheme from
cgroup2's dedicated swap accounting.

Link: https://lkml.kernel.org/r/20220926135704.400818-4-hannes@cmpxchg.org
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Shakeel Butt <shakeelb@google.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Roman Gushchin <roman.gushchin@linux.dev>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/memcontrol.c

index 4be1b48b9659608bf0dfaf4fa649f104d860b6e8..76bb0a18a2f3d420724381cb3c4eeb1485c6dbf0 100644 (file)
@@ -1667,17 +1667,17 @@ unsigned long mem_cgroup_get_max(struct mem_cgroup *memcg)
 {
        unsigned long max = READ_ONCE(memcg->memory.max);
 
-       if (cgroup_subsys_on_dfl(memory_cgrp_subsys)) {
-               if (mem_cgroup_swappiness(memcg))
-                       max += min(READ_ONCE(memcg->swap.max),
-                                  (unsigned long)total_swap_pages);
-       } else { /* v1 */
+       if (do_memsw_account()) {
                if (mem_cgroup_swappiness(memcg)) {
                        /* Calculate swap excess capacity from memsw limit */
                        unsigned long swap = READ_ONCE(memcg->memsw.max) - max;
 
                        max += min(swap, (unsigned long)total_swap_pages);
                }
+       } else {
+               if (mem_cgroup_swappiness(memcg))
+                       max += min(READ_ONCE(memcg->swap.max),
+                                  (unsigned long)total_swap_pages);
        }
        return max;
 }
@@ -7334,7 +7334,7 @@ void mem_cgroup_swapout(struct folio *folio, swp_entry_t entry)
        if (mem_cgroup_disabled())
                return;
 
-       if (cgroup_subsys_on_dfl(memory_cgrp_subsys))
+       if (!do_memsw_account())
                return;
 
        memcg = folio_memcg(folio);
@@ -7399,7 +7399,7 @@ int __mem_cgroup_try_charge_swap(struct folio *folio, swp_entry_t entry)
        struct mem_cgroup *memcg;
        unsigned short oldid;
 
-       if (!cgroup_subsys_on_dfl(memory_cgrp_subsys))
+       if (do_memsw_account())
                return 0;
 
        memcg = folio_memcg(folio);
@@ -7451,10 +7451,10 @@ void __mem_cgroup_uncharge_swap(swp_entry_t entry, unsigned int nr_pages)
        memcg = mem_cgroup_from_id(id);
        if (memcg) {
                if (!mem_cgroup_is_root(memcg)) {
-                       if (cgroup_subsys_on_dfl(memory_cgrp_subsys))
-                               page_counter_uncharge(&memcg->swap, nr_pages);
-                       else
+                       if (do_memsw_account())
                                page_counter_uncharge(&memcg->memsw, nr_pages);
+                       else
+                               page_counter_uncharge(&memcg->swap, nr_pages);
                }
                mod_memcg_state(memcg, MEMCG_SWAP, -nr_pages);
                mem_cgroup_id_put_many(memcg, nr_pages);