Lines Matching refs:ug
6023 static inline void uncharge_gather_clear(struct uncharge_gather *ug) in uncharge_gather_clear() argument
6025 memset(ug, 0, sizeof(*ug)); in uncharge_gather_clear()
6028 static void uncharge_batch(const struct uncharge_gather *ug) in uncharge_batch() argument
6030 unsigned long nr_pages = ug->nr_anon + ug->nr_file + ug->nr_kmem; in uncharge_batch()
6033 if (!mem_cgroup_is_root(ug->memcg)) { in uncharge_batch()
6034 page_counter_uncharge(&ug->memcg->memory, nr_pages); in uncharge_batch()
6036 page_counter_uncharge(&ug->memcg->memsw, nr_pages); in uncharge_batch()
6037 if (!cgroup_subsys_on_dfl(memory_cgrp_subsys) && ug->nr_kmem) in uncharge_batch()
6038 page_counter_uncharge(&ug->memcg->kmem, ug->nr_kmem); in uncharge_batch()
6039 memcg_oom_recover(ug->memcg); in uncharge_batch()
6043 __mod_memcg_state(ug->memcg, MEMCG_RSS, -ug->nr_anon); in uncharge_batch()
6044 __mod_memcg_state(ug->memcg, MEMCG_CACHE, -ug->nr_file); in uncharge_batch()
6045 __mod_memcg_state(ug->memcg, MEMCG_RSS_HUGE, -ug->nr_huge); in uncharge_batch()
6046 __mod_memcg_state(ug->memcg, NR_SHMEM, -ug->nr_shmem); in uncharge_batch()
6047 __count_memcg_events(ug->memcg, PGPGOUT, ug->pgpgout); in uncharge_batch()
6048 __this_cpu_add(ug->memcg->stat_cpu->nr_page_events, nr_pages); in uncharge_batch()
6049 memcg_check_events(ug->memcg, ug->dummy_page); in uncharge_batch()
6052 if (!mem_cgroup_is_root(ug->memcg)) in uncharge_batch()
6053 css_put_many(&ug->memcg->css, nr_pages); in uncharge_batch()
6056 static void uncharge_page(struct page *page, struct uncharge_gather *ug) in uncharge_page() argument
6071 if (ug->memcg != page->mem_cgroup) { in uncharge_page()
6072 if (ug->memcg) { in uncharge_page()
6073 uncharge_batch(ug); in uncharge_page()
6074 uncharge_gather_clear(ug); in uncharge_page()
6076 ug->memcg = page->mem_cgroup; in uncharge_page()
6084 ug->nr_huge += nr_pages; in uncharge_page()
6087 ug->nr_anon += nr_pages; in uncharge_page()
6089 ug->nr_file += nr_pages; in uncharge_page()
6091 ug->nr_shmem += nr_pages; in uncharge_page()
6093 ug->pgpgout++; in uncharge_page()
6095 ug->nr_kmem += 1 << compound_order(page); in uncharge_page()
6099 ug->dummy_page = page; in uncharge_page()
6105 struct uncharge_gather ug; in uncharge_list() local
6108 uncharge_gather_clear(&ug); in uncharge_list()
6121 uncharge_page(page, &ug); in uncharge_list()
6124 if (ug.memcg) in uncharge_list()
6125 uncharge_batch(&ug); in uncharge_list()
6137 struct uncharge_gather ug; in mem_cgroup_uncharge() local
6146 uncharge_gather_clear(&ug); in mem_cgroup_uncharge()
6147 uncharge_page(page, &ug); in mem_cgroup_uncharge()
6148 uncharge_batch(&ug); in mem_cgroup_uncharge()