hulk inclusion category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/IAFWQH ---------------------------------------- Currently, zram usage is only charged in memory.usage_in_bytes, and isn't charged in memory.memsw.usage_in_bytes. This leads to memory.swap.max fail to restrict the swap usage, because memsw - memory is smaller than swap usage. To fix it, charge zram usage to memory.memsw.usage_in_bytes too. Fixes: 03cbd28fc3ca ("[Huawei] zram: charge zram usage in memory cgroup") Signed-off-by: Jinjiang Tu <tujinjiang@huawei.com> --- mm/memcontrol.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index feb48eccf578..0d0a3a0c8bd9 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -4183,6 +4183,7 @@ void memcg_charge_zram(struct mem_cgroup *memcg, unsigned int nr_pages) return; page_counter_charge(&memcg->memory, nr_pages); + page_counter_charge(&memcg->memsw, nr_pages); atomic_long_add(nr_pages, &memcg->zram_usage); } EXPORT_SYMBOL_GPL(memcg_charge_zram); @@ -4196,6 +4197,7 @@ void memcg_uncharge_zram(struct mem_cgroup *memcg, unsigned int nr_pages) return; page_counter_uncharge(&memcg->memory, nr_pages); + page_counter_uncharge(&memcg->memsw, nr_pages); atomic_long_sub(nr_pages, &memcg->zram_usage); } EXPORT_SYMBOL_GPL(memcg_uncharge_zram); -- 2.43.0