Home
last modified time | relevance | path

Searched refs:memcg (Results 1 – 25 of 46) sorted by relevance

12

/Linux-v4.19/mm/
Dmemcontrol.c145 struct mem_cgroup *memcg; member
159 int (*register_event)(struct mem_cgroup *memcg,
166 void (*unregister_event)(struct mem_cgroup *memcg,
178 static void mem_cgroup_threshold(struct mem_cgroup *memcg);
179 static void mem_cgroup_oom_notify(struct mem_cgroup *memcg);
252 struct vmpressure *memcg_to_vmpressure(struct mem_cgroup *memcg) in memcg_to_vmpressure() argument
254 if (!memcg) in memcg_to_vmpressure()
255 memcg = root_mem_cgroup; in memcg_to_vmpressure()
256 return &memcg->vmpressure; in memcg_to_vmpressure()
326 static int memcg_expand_one_shrinker_map(struct mem_cgroup *memcg, in memcg_expand_one_shrinker_map() argument
[all …]
Dvmpressure.c81 struct mem_cgroup *memcg = mem_cgroup_from_css(css); in vmpressure_parent() local
83 memcg = parent_mem_cgroup(memcg); in vmpressure_parent()
84 if (!memcg) in vmpressure_parent()
86 return memcg_to_vmpressure(memcg); in vmpressure_parent()
243 void vmpressure(gfp_t gfp, struct mem_cgroup *memcg, bool tree, in vmpressure() argument
246 struct vmpressure *vmpr = memcg_to_vmpressure(memcg); in vmpressure()
286 if (!memcg || memcg == root_mem_cgroup) in vmpressure()
310 memcg->socket_pressure = jiffies + HZ; in vmpressure()
326 void vmpressure_prio(gfp_t gfp, struct mem_cgroup *memcg, int prio) in vmpressure_prio() argument
342 vmpressure(gfp, memcg, true, vmpressure_win, 0); in vmpressure_prio()
[all …]
Dworkingset.c210 struct mem_cgroup *memcg = page_memcg(page); in workingset_eviction() local
212 int memcgid = mem_cgroup_id(memcg); in workingset_eviction()
221 lruvec = mem_cgroup_lruvec(pgdat, memcg); in workingset_eviction()
239 struct mem_cgroup *memcg; in workingset_refault() local
265 memcg = mem_cgroup_from_id(memcgid); in workingset_refault()
266 if (!mem_cgroup_disabled() && !memcg) { in workingset_refault()
270 lruvec = mem_cgroup_lruvec(pgdat, memcg); in workingset_refault()
309 struct mem_cgroup *memcg; in workingset_activation() local
320 memcg = page_memcg_rcu(page); in workingset_activation()
321 if (!mem_cgroup_disabled() && !memcg) in workingset_activation()
[all …]
Dvmscan.c257 struct mem_cgroup *memcg = sc->target_mem_cgroup; in sane_reclaim() local
259 if (!memcg) in sane_reclaim()
269 struct mem_cgroup *memcg, in set_memcg_congestion() argument
274 if (!memcg) in set_memcg_congestion()
277 mn = mem_cgroup_nodeinfo(memcg, pgdat->node_id); in set_memcg_congestion()
282 struct mem_cgroup *memcg) in memcg_congested() argument
286 mn = mem_cgroup_nodeinfo(memcg, pgdat->node_id); in memcg_congested()
302 struct mem_cgroup *memcg, bool congested) in set_memcg_congestion() argument
307 struct mem_cgroup *memcg) in memcg_congested() argument
580 struct mem_cgroup *memcg, int priority) in shrink_slab_memcg() argument
[all …]
Dlist_lru.c77 struct mem_cgroup *memcg = NULL; in list_lru_from_kmem() local
82 memcg = mem_cgroup_from_kmem(ptr); in list_lru_from_kmem()
83 if (!memcg) in list_lru_from_kmem()
86 l = list_lru_from_memcg_idx(nlru, memcg_cache_id(memcg)); in list_lru_from_kmem()
89 *memcg_ptr = memcg; in list_lru_from_kmem()
131 struct mem_cgroup *memcg; in list_lru_add() local
136 l = list_lru_from_kmem(nlru, item, &memcg); in list_lru_add()
140 memcg_set_shrinker_bit(memcg, nid, in list_lru_add()
187 int nid, struct mem_cgroup *memcg) in list_lru_count_one() argument
194 l = list_lru_from_memcg_idx(nlru, memcg_cache_id(memcg)); in list_lru_count_one()
[all …]
Doom_kill.c150 return oc->memcg != NULL; in is_memcg_oom()
155 struct mem_cgroup *memcg, const nodemask_t *nodemask) in oom_unkillable_task() argument
163 if (memcg && !task_in_mem_cgroup(p, memcg)) in oom_unkillable_task()
203 unsigned long oom_badness(struct task_struct *p, struct mem_cgroup *memcg, in oom_badness() argument
209 if (oom_unkillable_task(p, memcg, nodemask)) in oom_badness()
267 oc->totalpages = mem_cgroup_get_max(oc->memcg) ?: 1; in constrained_alloc()
373 mem_cgroup_scan_tasks(oc->memcg, oom_evaluate_task, oc); in select_bad_process()
398 static void dump_tasks(struct mem_cgroup *memcg, const nodemask_t *nodemask) in dump_tasks() argument
407 if (oom_unkillable_task(p, memcg, nodemask)) in dump_tasks()
443 mem_cgroup_print_oom_info(oc->memcg, p); in dump_header()
[all …]
Dslab_common.c143 struct mem_cgroup *memcg, struct kmem_cache *root_cache) in init_memcg_params() argument
149 s->memcg_params.memcg = memcg; in init_memcg_params()
232 &s->memcg_params.memcg->kmem_caches); in memcg_link_cache()
247 struct mem_cgroup *memcg, struct kmem_cache *root_cache) in init_memcg_params() argument
367 struct mem_cgroup *memcg, struct kmem_cache *root_cache) in create_cache() argument
387 err = init_memcg_params(s, memcg, root_cache); in create_cache()
597 void memcg_create_kmem_cache(struct mem_cgroup *memcg, in memcg_create_kmem_cache() argument
601 struct cgroup_subsys_state *css = &memcg->css; in memcg_create_kmem_cache()
616 if (memcg->kmem_state != KMEM_ONLINE || root_cache->memcg_params.dying) in memcg_create_kmem_cache()
619 idx = memcg_cache_id(memcg); in memcg_create_kmem_cache()
[all …]
Dkhugepaged.c945 struct mem_cgroup *memcg; in collapse_huge_page() local
969 if (unlikely(mem_cgroup_try_charge(new_page, mm, gfp, &memcg, true))) { in collapse_huge_page()
977 mem_cgroup_cancel_charge(new_page, memcg, true); in collapse_huge_page()
985 mem_cgroup_cancel_charge(new_page, memcg, true); in collapse_huge_page()
996 mem_cgroup_cancel_charge(new_page, memcg, true); in collapse_huge_page()
1078 mem_cgroup_commit_charge(new_page, memcg, false, true); in collapse_huge_page()
1095 mem_cgroup_cancel_charge(new_page, memcg, true); in collapse_huge_page()
1310 struct mem_cgroup *memcg; in collapse_shmem() local
1328 if (unlikely(mem_cgroup_try_charge(new_page, mm, gfp, &memcg, true))) { in collapse_shmem()
1516 mem_cgroup_commit_charge(new_page, memcg, false, true); in collapse_shmem()
[all …]
Duserfaultfd.c30 struct mem_cgroup *memcg; in mcopy_atomic_pte() local
69 if (mem_cgroup_try_charge(page, dst_mm, GFP_KERNEL, &memcg, false)) in mcopy_atomic_pte()
83 mem_cgroup_commit_charge(page, memcg, false, false); in mcopy_atomic_pte()
97 mem_cgroup_cancel_charge(page, memcg, false); in mcopy_atomic_pte()
Dhuge_memory.c548 struct mem_cgroup *memcg; in __do_huge_pmd_anonymous_page() local
555 if (mem_cgroup_try_charge_delay(page, vma->vm_mm, gfp, &memcg, true)) { in __do_huge_pmd_anonymous_page()
590 mem_cgroup_cancel_charge(page, memcg, true); in __do_huge_pmd_anonymous_page()
601 mem_cgroup_commit_charge(page, memcg, false, true); in __do_huge_pmd_anonymous_page()
617 mem_cgroup_cancel_charge(page, memcg, true); in __do_huge_pmd_anonymous_page()
1126 struct mem_cgroup *memcg; in do_huge_pmd_wp_page_fallback() local
1147 GFP_KERNEL, &memcg, false))) { in do_huge_pmd_wp_page_fallback()
1151 memcg = (void *)page_private(pages[i]); in do_huge_pmd_wp_page_fallback()
1153 mem_cgroup_cancel_charge(pages[i], memcg, in do_huge_pmd_wp_page_fallback()
1161 set_page_private(pages[i], (unsigned long)memcg); in do_huge_pmd_wp_page_fallback()
[all …]
Drmap.c748 struct mem_cgroup *memcg; member
818 struct mem_cgroup *memcg = pra->memcg; in invalid_page_referenced_vma() local
820 if (!mm_match_cgroup(vma->vm_mm, memcg)) in invalid_page_referenced_vma()
838 struct mem_cgroup *memcg, in page_referenced() argument
844 .memcg = memcg, in page_referenced()
870 if (memcg) { in page_referenced()
Dmemory.c2496 struct mem_cgroup *memcg; in wp_page_copy() local
2514 if (mem_cgroup_try_charge_delay(new_page, mm, GFP_KERNEL, &memcg, false)) in wp_page_copy()
2546 mem_cgroup_commit_charge(new_page, memcg, false, false); in wp_page_copy()
2585 mem_cgroup_cancel_charge(new_page, memcg, false); in wp_page_copy()
2904 struct mem_cgroup *memcg; in do_swap_page() local
3015 &memcg, false)) { in do_swap_page()
3062 mem_cgroup_commit_charge(page, memcg, false, false); in do_swap_page()
3066 mem_cgroup_commit_charge(page, memcg, true, false); in do_swap_page()
3102 mem_cgroup_cancel_charge(page, memcg, false); in do_swap_page()
3123 struct mem_cgroup *memcg; in do_anonymous_page() local
[all …]
Dbacking-dev.c539 struct mem_cgroup *memcg; in cgwb_create() local
547 memcg = mem_cgroup_from_css(memcg_css); in cgwb_create()
550 memcg_cgwb_list = &memcg->cgwb_list; in cgwb_create()
733 void wb_memcg_offline(struct mem_cgroup *memcg) in wb_memcg_offline() argument
735 struct list_head *memcg_cgwb_list = &memcg->cgwb_list; in wb_memcg_offline()
/Linux-v4.19/include/linux/
Dmemcontrol.h146 struct mem_cgroup *memcg; /* Back pointer, we cannot */ member
326 static inline bool mem_cgroup_is_root(struct mem_cgroup *memcg) in mem_cgroup_is_root() argument
328 return (memcg == root_mem_cgroup); in mem_cgroup_is_root()
337 struct mem_cgroup *memcg);
345 void mem_cgroup_commit_charge(struct page *page, struct mem_cgroup *memcg,
347 void mem_cgroup_cancel_charge(struct page *page, struct mem_cgroup *memcg,
355 mem_cgroup_nodeinfo(struct mem_cgroup *memcg, int nid) in mem_cgroup_nodeinfo() argument
357 return memcg->nodeinfo[nid]; in mem_cgroup_nodeinfo()
370 struct mem_cgroup *memcg) in mem_cgroup_lruvec() argument
380 mz = mem_cgroup_nodeinfo(memcg, pgdat->node_id); in mem_cgroup_lruvec()
[all …]
Dvmpressure.h33 extern void vmpressure(gfp_t gfp, struct mem_cgroup *memcg, bool tree,
35 extern void vmpressure_prio(gfp_t gfp, struct mem_cgroup *memcg, int prio);
39 extern struct vmpressure *memcg_to_vmpressure(struct mem_cgroup *memcg);
41 extern int vmpressure_register_event(struct mem_cgroup *memcg,
44 extern void vmpressure_unregister_event(struct mem_cgroup *memcg,
47 static inline void vmpressure(gfp_t gfp, struct mem_cgroup *memcg, bool tree, in vmpressure() argument
49 static inline void vmpressure_prio(gfp_t gfp, struct mem_cgroup *memcg, in vmpressure_prio() argument
Dlist_lru.h116 int nid, struct mem_cgroup *memcg);
122 return list_lru_count_one(lru, sc->nid, sc->memcg); in list_lru_shrink_count()
166 int nid, struct mem_cgroup *memcg,
183 int nid, struct mem_cgroup *memcg,
194 return list_lru_walk_one(lru, sc->nid, sc->memcg, isolate, cb_arg, in list_lru_shrink_walk()
202 return list_lru_walk_one_irq(lru, sc->nid, sc->memcg, isolate, cb_arg, in list_lru_shrink_walk_irq()
Dswap.h348 extern unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup *memcg,
620 static inline int mem_cgroup_swappiness(struct mem_cgroup *memcg) in mem_cgroup_swappiness() argument
627 if (mem_cgroup_disabled() || !memcg->css.parent) in mem_cgroup_swappiness()
630 return memcg->swappiness; in mem_cgroup_swappiness()
640 extern void mem_cgroup_throttle_swaprate(struct mem_cgroup *memcg, int node,
643 static inline void mem_cgroup_throttle_swaprate(struct mem_cgroup *memcg, in mem_cgroup_throttle_swaprate() argument
653 extern long mem_cgroup_get_nr_swap_pages(struct mem_cgroup *memcg);
671 static inline long mem_cgroup_get_nr_swap_pages(struct mem_cgroup *memcg) in mem_cgroup_get_nr_swap_pages() argument
Doom.h30 struct mem_cgroup *memcg; member
101 struct mem_cgroup *memcg, const nodemask_t *nodemask,
Drmap.h196 struct mem_cgroup *memcg, unsigned long *vm_flags);
285 struct mem_cgroup *memcg, in page_referenced() argument
Dshrinker.h33 struct mem_cgroup *memcg; member
Dbacking-dev.h232 void wb_memcg_offline(struct mem_cgroup *memcg);
449 static inline void wb_memcg_offline(struct mem_cgroup *memcg) in wb_memcg_offline() argument
/Linux-v4.19/tools/testing/selftests/cgroup/
Dtest_memcontrol.c157 char *memcg; in test_memcg_current() local
159 memcg = cg_name(root, "memcg_test"); in test_memcg_current()
160 if (!memcg) in test_memcg_current()
163 if (cg_create(memcg)) in test_memcg_current()
166 current = cg_read_long(memcg, "memory.current"); in test_memcg_current()
170 if (cg_run(memcg, alloc_anon_50M_check, NULL)) in test_memcg_current()
173 if (cg_run(memcg, alloc_pagecache_50M_check, NULL)) in test_memcg_current()
179 cg_destroy(memcg); in test_memcg_current()
180 free(memcg); in test_memcg_current()
586 char *memcg; in test_memcg_high() local
[all …]
/Linux-v4.19/Documentation/cgroup-v1/
Dmemcg_test.txt5 Because VM is getting complex (one of reasons is memcg...), memcg's behavior
6 is complex. This is a document for memcg's internal behavior.
47 At commit(), the page is associated with the memcg.
91 But brief explanation of the behavior of memcg around shmem will be
109 Each memcg has its own private LRU. Now, its handling is under global
111 Almost all routines around memcg's LRU is called by global LRU's
115 memcg's private LRU and call __isolate_lru_page() to extract a page
125 9.1 Small limit to memcg.
126 When you do test to do racy case, it's good test to set memcg's limit
133 Historically, memcg's shmem handling was poor and we saw some amount
[all …]
/Linux-v4.19/include/linux/sched/
Dmm.h262 static inline void memalloc_use_memcg(struct mem_cgroup *memcg) in memalloc_use_memcg() argument
265 current->active_memcg = memcg; in memalloc_use_memcg()
279 static inline void memalloc_use_memcg(struct mem_cgroup *memcg) in memalloc_use_memcg() argument
/Linux-v4.19/fs/notify/
Dgroup.c40 mem_cgroup_put(group->memcg); in fsnotify_final_destroy_group()

12