Lines Matching refs:memcg

208 static struct shrinker_info *shrinker_info_protected(struct mem_cgroup *memcg,  in shrinker_info_protected()  argument
211 return rcu_dereference_protected(memcg->nodeinfo[nid]->shrinker_info, in shrinker_info_protected()
215 static int expand_one_shrinker_info(struct mem_cgroup *memcg, in expand_one_shrinker_info() argument
225 pn = memcg->nodeinfo[nid]; in expand_one_shrinker_info()
226 old = shrinker_info_protected(memcg, nid); in expand_one_shrinker_info()
253 void free_shrinker_info(struct mem_cgroup *memcg) in free_shrinker_info() argument
260 pn = memcg->nodeinfo[nid]; in free_shrinker_info()
267 int alloc_shrinker_info(struct mem_cgroup *memcg) in alloc_shrinker_info() argument
280 free_shrinker_info(memcg); in alloc_shrinker_info()
286 rcu_assign_pointer(memcg->nodeinfo[nid]->shrinker_info, info); in alloc_shrinker_info()
305 struct mem_cgroup *memcg; in expand_shrinker_info() local
320 memcg = mem_cgroup_iter(NULL, NULL, NULL); in expand_shrinker_info()
322 ret = expand_one_shrinker_info(memcg, map_size, defer_size, in expand_shrinker_info()
325 mem_cgroup_iter_break(NULL, memcg); in expand_shrinker_info()
328 } while ((memcg = mem_cgroup_iter(NULL, memcg, NULL)) != NULL); in expand_shrinker_info()
336 void set_shrinker_bit(struct mem_cgroup *memcg, int nid, int shrinker_id) in set_shrinker_bit() argument
338 if (shrinker_id >= 0 && memcg && !mem_cgroup_is_root(memcg)) { in set_shrinker_bit()
342 info = rcu_dereference(memcg->nodeinfo[nid]->shrinker_info); in set_shrinker_bit()
390 struct mem_cgroup *memcg) in xchg_nr_deferred_memcg() argument
394 info = shrinker_info_protected(memcg, nid); in xchg_nr_deferred_memcg()
399 struct mem_cgroup *memcg) in add_nr_deferred_memcg() argument
403 info = shrinker_info_protected(memcg, nid); in add_nr_deferred_memcg()
407 void reparent_shrinker_deferred(struct mem_cgroup *memcg) in reparent_shrinker_deferred() argument
414 parent = parent_mem_cgroup(memcg); in reparent_shrinker_deferred()
421 child_info = shrinker_info_protected(memcg, nid); in reparent_shrinker_deferred()
470 struct mem_cgroup *memcg) in xchg_nr_deferred_memcg() argument
476 struct mem_cgroup *memcg) in add_nr_deferred_memcg() argument
500 if (sc->memcg && in xchg_nr_deferred()
503 sc->memcg); in xchg_nr_deferred()
517 if (sc->memcg && in add_nr_deferred()
520 sc->memcg); in add_nr_deferred()
542 static inline bool can_reclaim_anon_pages(struct mem_cgroup *memcg, in can_reclaim_anon_pages() argument
546 if (memcg == NULL) { in can_reclaim_anon_pages()
555 if (mem_cgroup_get_nr_swap_pages(memcg) > 0) in can_reclaim_anon_pages()
806 struct mem_cgroup *memcg, int priority) in shrink_slab_memcg() argument
812 if (!mem_cgroup_online(memcg)) in shrink_slab_memcg()
818 info = shrinker_info_protected(memcg, nid); in shrink_slab_memcg()
826 .memcg = memcg, in shrink_slab_memcg()
865 set_shrinker_bit(memcg, nid, i); in shrink_slab_memcg()
880 struct mem_cgroup *memcg, int priority) in shrink_slab_memcg() argument
907 struct mem_cgroup *memcg, in shrink_slab() argument
920 if (!mem_cgroup_disabled() && !mem_cgroup_is_root(memcg)) in shrink_slab()
921 return shrink_slab_memcg(gfp_mask, nid, memcg, priority); in shrink_slab()
930 .memcg = memcg, in shrink_slab()
960 struct mem_cgroup *memcg = NULL; in drop_slab_node() local
966 memcg = mem_cgroup_iter(NULL, NULL, NULL); in drop_slab_node()
968 freed += shrink_slab(GFP_KERNEL, nid, memcg, 0); in drop_slab_node()
969 } while ((memcg = mem_cgroup_iter(NULL, memcg, NULL)) != NULL); in drop_slab_node()
2732 struct mem_cgroup *memcg = lruvec_memcg(lruvec); in get_scan_count() local
2734 int swappiness = mem_cgroup_swappiness(memcg); in get_scan_count()
2742 if (!sc->may_swap || !can_reclaim_anon_pages(memcg, pgdat->node_id, sc)) { in get_scan_count()
2824 mem_cgroup_protection(sc->target_mem_cgroup, memcg, in get_scan_count()
2857 unsigned long cgroup_size = mem_cgroup_size(memcg); in get_scan_count()
2890 if (!scan && !mem_cgroup_online(memcg)) in get_scan_count()
2905 scan = mem_cgroup_online(memcg) ? in get_scan_count()
3129 struct mem_cgroup *memcg; in shrink_node_memcgs() local
3131 memcg = mem_cgroup_iter(target_memcg, NULL, NULL); in shrink_node_memcgs()
3133 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); in shrink_node_memcgs()
3145 mem_cgroup_calculate_protection(target_memcg, memcg); in shrink_node_memcgs()
3147 if (mem_cgroup_below_min(memcg)) { in shrink_node_memcgs()
3153 } else if (mem_cgroup_below_low(memcg)) { in shrink_node_memcgs()
3164 memcg_memory_event(memcg, MEMCG_LOW); in shrink_node_memcgs()
3172 shrink_slab(sc->gfp_mask, pgdat->node_id, memcg, in shrink_node_memcgs()
3176 vmpressure(sc->gfp_mask, memcg, false, in shrink_node_memcgs()
3180 } while ((memcg = mem_cgroup_iter(target_memcg, memcg, NULL))); in shrink_node_memcgs()
3834 unsigned long mem_cgroup_shrink_node(struct mem_cgroup *memcg, in mem_cgroup_shrink_node() argument
3839 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat); in mem_cgroup_shrink_node()
3842 .target_mem_cgroup = memcg, in mem_cgroup_shrink_node()
3873 unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup *memcg, in try_to_free_mem_cgroup_pages() argument
3885 .target_mem_cgroup = memcg, in try_to_free_mem_cgroup_pages()
3915 struct mem_cgroup *memcg; in age_active_anon() local
3925 memcg = mem_cgroup_iter(NULL, NULL, NULL); in age_active_anon()
3927 lruvec = mem_cgroup_lruvec(memcg, pgdat); in age_active_anon()
3930 memcg = mem_cgroup_iter(NULL, memcg, NULL); in age_active_anon()
3931 } while (memcg); in age_active_anon()