Lines Matching refs:ug
6624 static inline void uncharge_gather_clear(struct uncharge_gather *ug) in uncharge_gather_clear() argument
6626 memset(ug, 0, sizeof(*ug)); in uncharge_gather_clear()
6629 static void uncharge_batch(const struct uncharge_gather *ug) in uncharge_batch() argument
6631 unsigned long nr_pages = ug->nr_anon + ug->nr_file + ug->nr_kmem; in uncharge_batch()
6634 if (!mem_cgroup_is_root(ug->memcg)) { in uncharge_batch()
6635 page_counter_uncharge(&ug->memcg->memory, nr_pages); in uncharge_batch()
6637 page_counter_uncharge(&ug->memcg->memsw, nr_pages); in uncharge_batch()
6638 if (!cgroup_subsys_on_dfl(memory_cgrp_subsys) && ug->nr_kmem) in uncharge_batch()
6639 page_counter_uncharge(&ug->memcg->kmem, ug->nr_kmem); in uncharge_batch()
6640 memcg_oom_recover(ug->memcg); in uncharge_batch()
6644 __mod_memcg_state(ug->memcg, MEMCG_RSS, -ug->nr_anon); in uncharge_batch()
6645 __mod_memcg_state(ug->memcg, MEMCG_CACHE, -ug->nr_file); in uncharge_batch()
6646 __mod_memcg_state(ug->memcg, MEMCG_RSS_HUGE, -ug->nr_huge); in uncharge_batch()
6647 __mod_memcg_state(ug->memcg, NR_SHMEM, -ug->nr_shmem); in uncharge_batch()
6648 __count_memcg_events(ug->memcg, PGPGOUT, ug->pgpgout); in uncharge_batch()
6649 __this_cpu_add(ug->memcg->vmstats_percpu->nr_page_events, nr_pages); in uncharge_batch()
6650 memcg_check_events(ug->memcg, ug->dummy_page); in uncharge_batch()
6653 if (!mem_cgroup_is_root(ug->memcg)) in uncharge_batch()
6654 css_put_many(&ug->memcg->css, nr_pages); in uncharge_batch()
6657 static void uncharge_page(struct page *page, struct uncharge_gather *ug) in uncharge_page() argument
6672 if (ug->memcg != page->mem_cgroup) { in uncharge_page()
6673 if (ug->memcg) { in uncharge_page()
6674 uncharge_batch(ug); in uncharge_page()
6675 uncharge_gather_clear(ug); in uncharge_page()
6677 ug->memcg = page->mem_cgroup; in uncharge_page()
6685 ug->nr_huge += nr_pages; in uncharge_page()
6688 ug->nr_anon += nr_pages; in uncharge_page()
6690 ug->nr_file += nr_pages; in uncharge_page()
6692 ug->nr_shmem += nr_pages; in uncharge_page()
6694 ug->pgpgout++; in uncharge_page()
6696 ug->nr_kmem += compound_nr(page); in uncharge_page()
6700 ug->dummy_page = page; in uncharge_page()
6706 struct uncharge_gather ug; in uncharge_list() local
6709 uncharge_gather_clear(&ug); in uncharge_list()
6722 uncharge_page(page, &ug); in uncharge_list()
6725 if (ug.memcg) in uncharge_list()
6726 uncharge_batch(&ug); in uncharge_list()
6738 struct uncharge_gather ug; in mem_cgroup_uncharge() local
6747 uncharge_gather_clear(&ug); in mem_cgroup_uncharge()
6748 uncharge_page(page, &ug); in mem_cgroup_uncharge()
6749 uncharge_batch(&ug); in mem_cgroup_uncharge()