Lines Matching full:ug
6113 static inline void uncharge_gather_clear(struct uncharge_gather *ug) in uncharge_gather_clear() argument
6115 memset(ug, 0, sizeof(*ug)); in uncharge_gather_clear()
6118 static void uncharge_batch(const struct uncharge_gather *ug) in uncharge_batch() argument
6120 unsigned long nr_pages = ug->nr_anon + ug->nr_file + ug->nr_kmem; in uncharge_batch()
6123 if (!mem_cgroup_is_root(ug->memcg)) { in uncharge_batch()
6124 page_counter_uncharge(&ug->memcg->memory, nr_pages); in uncharge_batch()
6126 page_counter_uncharge(&ug->memcg->memsw, nr_pages); in uncharge_batch()
6127 if (!cgroup_subsys_on_dfl(memory_cgrp_subsys) && ug->nr_kmem) in uncharge_batch()
6128 page_counter_uncharge(&ug->memcg->kmem, ug->nr_kmem); in uncharge_batch()
6129 memcg_oom_recover(ug->memcg); in uncharge_batch()
6133 __mod_memcg_state(ug->memcg, MEMCG_RSS, -ug->nr_anon); in uncharge_batch()
6134 __mod_memcg_state(ug->memcg, MEMCG_CACHE, -ug->nr_file); in uncharge_batch()
6135 __mod_memcg_state(ug->memcg, MEMCG_RSS_HUGE, -ug->nr_huge); in uncharge_batch()
6136 __mod_memcg_state(ug->memcg, NR_SHMEM, -ug->nr_shmem); in uncharge_batch()
6137 __count_memcg_events(ug->memcg, PGPGOUT, ug->pgpgout); in uncharge_batch()
6138 __this_cpu_add(ug->memcg->stat_cpu->nr_page_events, nr_pages); in uncharge_batch()
6139 memcg_check_events(ug->memcg, ug->dummy_page); in uncharge_batch()
6142 if (!mem_cgroup_is_root(ug->memcg)) in uncharge_batch()
6143 css_put_many(&ug->memcg->css, nr_pages); in uncharge_batch()
6146 static void uncharge_page(struct page *page, struct uncharge_gather *ug) in uncharge_page() argument
6161 if (ug->memcg != page->mem_cgroup) { in uncharge_page()
6162 if (ug->memcg) { in uncharge_page()
6163 uncharge_batch(ug); in uncharge_page()
6164 uncharge_gather_clear(ug); in uncharge_page()
6166 ug->memcg = page->mem_cgroup; in uncharge_page()
6174 ug->nr_huge += nr_pages; in uncharge_page()
6177 ug->nr_anon += nr_pages; in uncharge_page()
6179 ug->nr_file += nr_pages; in uncharge_page()
6181 ug->nr_shmem += nr_pages; in uncharge_page()
6183 ug->pgpgout++; in uncharge_page()
6185 ug->nr_kmem += 1 << compound_order(page); in uncharge_page()
6189 ug->dummy_page = page; in uncharge_page()
6195 struct uncharge_gather ug; in uncharge_list() local
6198 uncharge_gather_clear(&ug); in uncharge_list()
6211 uncharge_page(page, &ug); in uncharge_list()
6214 if (ug.memcg) in uncharge_list()
6215 uncharge_batch(&ug); in uncharge_list()
6227 struct uncharge_gather ug; in mem_cgroup_uncharge() local
6236 uncharge_gather_clear(&ug); in mem_cgroup_uncharge()
6237 uncharge_page(page, &ug); in mem_cgroup_uncharge()
6238 uncharge_batch(&ug); in mem_cgroup_uncharge()