Lines Matching refs:ug
6605 static inline void uncharge_gather_clear(struct uncharge_gather *ug) in uncharge_gather_clear() argument
6607 memset(ug, 0, sizeof(*ug)); in uncharge_gather_clear()
6610 static void uncharge_batch(const struct uncharge_gather *ug) in uncharge_batch() argument
6612 unsigned long nr_pages = ug->nr_anon + ug->nr_file + ug->nr_kmem; in uncharge_batch()
6615 if (!mem_cgroup_is_root(ug->memcg)) { in uncharge_batch()
6616 page_counter_uncharge(&ug->memcg->memory, nr_pages); in uncharge_batch()
6618 page_counter_uncharge(&ug->memcg->memsw, nr_pages); in uncharge_batch()
6619 if (!cgroup_subsys_on_dfl(memory_cgrp_subsys) && ug->nr_kmem) in uncharge_batch()
6620 page_counter_uncharge(&ug->memcg->kmem, ug->nr_kmem); in uncharge_batch()
6621 memcg_oom_recover(ug->memcg); in uncharge_batch()
6625 __mod_memcg_state(ug->memcg, MEMCG_RSS, -ug->nr_anon); in uncharge_batch()
6626 __mod_memcg_state(ug->memcg, MEMCG_CACHE, -ug->nr_file); in uncharge_batch()
6627 __mod_memcg_state(ug->memcg, MEMCG_RSS_HUGE, -ug->nr_huge); in uncharge_batch()
6628 __mod_memcg_state(ug->memcg, NR_SHMEM, -ug->nr_shmem); in uncharge_batch()
6629 __count_memcg_events(ug->memcg, PGPGOUT, ug->pgpgout); in uncharge_batch()
6630 __this_cpu_add(ug->memcg->vmstats_percpu->nr_page_events, nr_pages); in uncharge_batch()
6631 memcg_check_events(ug->memcg, ug->dummy_page); in uncharge_batch()
6634 if (!mem_cgroup_is_root(ug->memcg)) in uncharge_batch()
6635 css_put_many(&ug->memcg->css, nr_pages); in uncharge_batch()
6638 static void uncharge_page(struct page *page, struct uncharge_gather *ug) in uncharge_page() argument
6653 if (ug->memcg != page->mem_cgroup) { in uncharge_page()
6654 if (ug->memcg) { in uncharge_page()
6655 uncharge_batch(ug); in uncharge_page()
6656 uncharge_gather_clear(ug); in uncharge_page()
6658 ug->memcg = page->mem_cgroup; in uncharge_page()
6666 ug->nr_huge += nr_pages; in uncharge_page()
6669 ug->nr_anon += nr_pages; in uncharge_page()
6671 ug->nr_file += nr_pages; in uncharge_page()
6673 ug->nr_shmem += nr_pages; in uncharge_page()
6675 ug->pgpgout++; in uncharge_page()
6677 ug->nr_kmem += compound_nr(page); in uncharge_page()
6681 ug->dummy_page = page; in uncharge_page()
6687 struct uncharge_gather ug; in uncharge_list() local
6690 uncharge_gather_clear(&ug); in uncharge_list()
6703 uncharge_page(page, &ug); in uncharge_list()
6706 if (ug.memcg) in uncharge_list()
6707 uncharge_batch(&ug); in uncharge_list()
6719 struct uncharge_gather ug; in mem_cgroup_uncharge() local
6728 uncharge_gather_clear(&ug); in mem_cgroup_uncharge()
6729 uncharge_page(page, &ug); in mem_cgroup_uncharge()
6730 uncharge_batch(&ug); in mem_cgroup_uncharge()