/Linux-v4.19/mm/ |
D | memcontrol.c | 145 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 …]
|
D | vmpressure.c | 81 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 …]
|
D | workingset.c | 210 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 …]
|
D | vmscan.c | 257 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 …]
|
D | list_lru.c | 77 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 …]
|
D | oom_kill.c | 150 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 …]
|
D | slab_common.c | 143 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 …]
|
D | khugepaged.c | 945 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 …]
|
D | userfaultfd.c | 30 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()
|
D | huge_memory.c | 548 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 …]
|
D | rmap.c | 748 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()
|
D | memory.c | 2496 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 …]
|
D | backing-dev.c | 539 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/ |
D | memcontrol.h | 146 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 …]
|
D | vmpressure.h | 33 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
|
D | list_lru.h | 116 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()
|
D | swap.h | 348 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
|
D | oom.h | 30 struct mem_cgroup *memcg; member 101 struct mem_cgroup *memcg, const nodemask_t *nodemask,
|
D | rmap.h | 196 struct mem_cgroup *memcg, unsigned long *vm_flags); 285 struct mem_cgroup *memcg, in page_referenced() argument
|
D | shrinker.h | 33 struct mem_cgroup *memcg; member
|
D | backing-dev.h | 232 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/ |
D | test_memcontrol.c | 157 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/ |
D | memcg_test.txt | 5 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/ |
D | mm.h | 262 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/ |
D | group.c | 40 mem_cgroup_put(group->memcg); in fsnotify_final_destroy_group()
|