/Linux-v6.1/mm/ |
D | memcontrol.c | 134 struct mem_cgroup *memcg; member 148 int (*register_event)(struct mem_cgroup *memcg, 155 void (*unregister_event)(struct mem_cgroup *memcg, 167 static void mem_cgroup_threshold(struct mem_cgroup *memcg); 168 static void mem_cgroup_oom_notify(struct mem_cgroup *memcg); 236 struct vmpressure *memcg_to_vmpressure(struct mem_cgroup *memcg) in memcg_to_vmpressure() argument 238 if (!memcg) in memcg_to_vmpressure() 239 memcg = root_mem_cgroup; in memcg_to_vmpressure() 240 return &memcg->vmpressure; in memcg_to_vmpressure() 320 static void memcg_reparent_objcgs(struct mem_cgroup *memcg, in memcg_reparent_objcgs() argument [all …]
|
D | shrinker_debug.c | 17 struct mem_cgroup *memcg, in shrinker_count_objects() argument 28 .memcg = memcg, in shrinker_count_objects() 49 struct mem_cgroup *memcg; in shrinker_debugfs_count_show() local 67 memcg = mem_cgroup_iter(NULL, NULL, NULL); in shrinker_debugfs_count_show() 69 if (memcg && !mem_cgroup_online(memcg)) in shrinker_debugfs_count_show() 73 memcg_aware ? memcg : NULL, in shrinker_debugfs_count_show() 76 seq_printf(m, "%lu", mem_cgroup_ino(memcg)); in shrinker_debugfs_count_show() 83 mem_cgroup_iter_break(NULL, memcg); in shrinker_debugfs_count_show() 88 mem_cgroup_iter_break(NULL, memcg); in shrinker_debugfs_count_show() 92 } while ((memcg = mem_cgroup_iter(NULL, memcg, NULL)) != NULL); in shrinker_debugfs_count_show() [all …]
|
D | list_lru.c | 69 struct mem_cgroup *memcg = NULL; in list_lru_from_kmem() local 74 memcg = mem_cgroup_from_slab_obj(ptr); in list_lru_from_kmem() 75 if (!memcg) in list_lru_from_kmem() 78 l = list_lru_from_memcg_idx(lru, nid, memcg_kmem_id(memcg)); in list_lru_from_kmem() 81 *memcg_ptr = memcg; in list_lru_from_kmem() 123 struct mem_cgroup *memcg; in list_lru_add() local 128 l = list_lru_from_kmem(lru, nid, item, &memcg); in list_lru_add() 132 set_shrinker_bit(memcg, nid, in list_lru_add() 179 int nid, struct mem_cgroup *memcg) in list_lru_count_one() argument 185 l = list_lru_from_memcg_idx(lru, nid, memcg_kmem_id(memcg)); in list_lru_count_one() [all …]
|
D | vmpressure.c | 77 struct mem_cgroup *memcg = vmpressure_to_memcg(vmpr); in vmpressure_parent() local 79 memcg = parent_mem_cgroup(memcg); in vmpressure_parent() 80 if (!memcg) in vmpressure_parent() 82 return memcg_to_vmpressure(memcg); in vmpressure_parent() 239 void vmpressure(gfp_t gfp, struct mem_cgroup *memcg, bool tree, in vmpressure() argument 247 vmpr = memcg_to_vmpressure(memcg); in vmpressure() 287 if (!memcg || mem_cgroup_is_root(memcg)) in vmpressure() 311 WRITE_ONCE(memcg->socket_pressure, jiffies + HZ); in vmpressure() 327 void vmpressure_prio(gfp_t gfp, struct mem_cgroup *memcg, int prio) in vmpressure_prio() argument 343 vmpressure(gfp, memcg, true, vmpressure_win, 0); in vmpressure_prio() [all …]
|
D | vmscan.c | 223 static struct shrinker_info *shrinker_info_protected(struct mem_cgroup *memcg, in shrinker_info_protected() argument 226 return rcu_dereference_protected(memcg->nodeinfo[nid]->shrinker_info, in shrinker_info_protected() 230 static int expand_one_shrinker_info(struct mem_cgroup *memcg, in expand_one_shrinker_info() argument 240 pn = memcg->nodeinfo[nid]; in expand_one_shrinker_info() 241 old = shrinker_info_protected(memcg, nid); in expand_one_shrinker_info() 268 void free_shrinker_info(struct mem_cgroup *memcg) in free_shrinker_info() argument 275 pn = memcg->nodeinfo[nid]; in free_shrinker_info() 282 int alloc_shrinker_info(struct mem_cgroup *memcg) in alloc_shrinker_info() argument 295 free_shrinker_info(memcg); in alloc_shrinker_info() 301 rcu_assign_pointer(memcg->nodeinfo[nid]->shrinker_info, info); in alloc_shrinker_info() [all …]
|
D | workingset.c | 231 struct mem_cgroup *memcg = folio_memcg(folio); in lru_gen_eviction() local 236 lruvec = mem_cgroup_lruvec(memcg, pgdat); in lru_gen_eviction() 244 return pack_shadow(mem_cgroup_id(memcg), pgdat, token, refs); in lru_gen_eviction() 256 struct mem_cgroup *memcg; in lru_gen_refault() local 268 memcg = folio_memcg_rcu(folio); in lru_gen_refault() 269 if (memcg_id != mem_cgroup_id(memcg)) in lru_gen_refault() 272 lruvec = mem_cgroup_lruvec(memcg, pgdat); in lru_gen_refault() 393 struct mem_cgroup *memcg; in workingset_refault() local 459 memcg = folio_memcg(folio); in workingset_refault() 460 lruvec = mem_cgroup_lruvec(memcg, pgdat); in workingset_refault() [all …]
|
D | mmap_lock.c | 202 struct mem_cgroup *memcg = get_mem_cgroup_from_mm(mm); in get_mm_memcg_path() local 204 if (memcg == NULL) in get_mm_memcg_path() 206 if (unlikely(memcg->css.cgroup == NULL)) in get_mm_memcg_path() 213 cgroup_path(memcg->css.cgroup, buf, MEMCG_PATH_BUF_SIZE); in get_mm_memcg_path() 216 css_put(&memcg->css); in get_mm_memcg_path()
|
D | oom_kill.c | 73 return oc->memcg != NULL; in is_memcg_oom() 260 oc->totalpages = mem_cgroup_get_max(oc->memcg) ?: 1; in constrained_alloc() 369 mem_cgroup_scan_tasks(oc->memcg, oom_evaluate_task, oc); in select_bad_process() 429 mem_cgroup_scan_tasks(oc->memcg, dump_task, oc); in dump_tasks() 447 mem_cgroup_print_oom_context(oc->memcg, victim); in dump_oom_summary() 462 mem_cgroup_print_oom_meminfo(oc->memcg); in dump_header() 1043 oom_group = mem_cgroup_get_oom_group(victim, oc->memcg); in oom_kill_process()
|
D | page_owner.c | 364 struct mem_cgroup *memcg; in print_page_owner_memcg() local 377 memcg = page_memcg_check(page); in print_page_owner_memcg() 378 if (!memcg) in print_page_owner_memcg() 381 online = (memcg->css.flags & CSS_ONLINE); in print_page_owner_memcg() 382 cgroup_name(memcg->css.cgroup, name, sizeof(name)); in print_page_owner_memcg()
|
D | page_io.c | 224 struct mem_cgroup *memcg; in bio_associate_blkg_from_page() local 226 memcg = page_memcg(page); in bio_associate_blkg_from_page() 227 if (!memcg) in bio_associate_blkg_from_page() 231 css = cgroup_e_css(memcg->css.cgroup, &io_cgrp_subsys); in bio_associate_blkg_from_page()
|
/Linux-v6.1/include/linux/ |
D | memcontrol.h | 137 struct mem_cgroup *memcg; /* Back pointer, we cannot */ member 192 struct mem_cgroup *memcg; member 362 return READ_ONCE(objcg->memcg); in obj_cgroup_memcg() 513 struct mem_cgroup *memcg; in get_mem_cgroup_from_objcg() local 517 memcg = obj_cgroup_memcg(objcg); in get_mem_cgroup_from_objcg() 518 if (unlikely(!css_tryget(&memcg->css))) in get_mem_cgroup_from_objcg() 522 return memcg; in get_mem_cgroup_from_objcg() 555 static inline bool mem_cgroup_is_root(struct mem_cgroup *memcg) in mem_cgroup_is_root() argument 557 return (memcg == root_mem_cgroup); in mem_cgroup_is_root() 566 struct mem_cgroup *memcg, in mem_cgroup_protection() argument [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 | 70 int memcg_list_lru_alloc(struct mem_cgroup *memcg, struct list_lru *lru, 72 void memcg_reparent_list_lrus(struct mem_cgroup *memcg, struct mem_cgroup *parent); 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 | 426 extern unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup *memcg, 627 static inline int mem_cgroup_swappiness(struct mem_cgroup *memcg) in mem_cgroup_swappiness() argument 634 if (mem_cgroup_disabled() || mem_cgroup_is_root(memcg)) in mem_cgroup_swappiness() 637 return memcg->swappiness; in mem_cgroup_swappiness() 688 extern long mem_cgroup_get_nr_swap_pages(struct mem_cgroup *memcg); 706 static inline long mem_cgroup_get_nr_swap_pages(struct mem_cgroup *memcg) in mem_cgroup_get_nr_swap_pages() argument
|
D | backing-dev.h | 150 void wb_memcg_offline(struct mem_cgroup *memcg); 354 static inline void wb_memcg_offline(struct mem_cgroup *memcg) in wb_memcg_offline() argument
|
D | oom.h | 37 struct mem_cgroup *memcg; member
|
/Linux-v6.1/tools/testing/selftests/cgroup/ |
D | test_memcontrol.c | 165 char *memcg; in test_memcg_current() local 167 memcg = cg_name(root, "memcg_test"); in test_memcg_current() 168 if (!memcg) in test_memcg_current() 171 if (cg_create(memcg)) in test_memcg_current() 174 current = cg_read_long(memcg, "memory.current"); in test_memcg_current() 178 if (cg_run(memcg, alloc_anon_50M_check, NULL)) in test_memcg_current() 181 if (cg_run(memcg, alloc_pagecache_50M_check, NULL)) in test_memcg_current() 187 cg_destroy(memcg); in test_memcg_current() 188 free(memcg); in test_memcg_current() 480 char *memcg; in test_memcg_high() local [all …]
|
D | memcg_protection.m | 5 % This script simulates reclaim protection behavior on a single level of memcg 65 % commit 1bc63fb1272b ("mm, memcg: make scan aggression always exclude protection")
|
/Linux-v6.1/tools/cgroup/ |
D | memcg_slabinfo.py | 42 memcg = container_of(css, 'struct mem_cgroup', 'css') 43 MEMCGS[css.cgroup.kn.id.value_()] = memcg 171 memcg = MEMCGS[cgroup_id] 187 obj_cgroups.add(memcg.objcg.value_()) 189 memcg.objcg_list.address_of_(), 221 memcg.kmem_caches.address_of_(),
|
/Linux-v6.1/Documentation/admin-guide/cgroup-v1/ |
D | memcg_test.rst | 9 Because VM is getting complex (one of reasons is memcg...), memcg's behavior 10 is complex. This is a document for memcg's internal behavior. 61 At commit(), the page is associated with the memcg. 114 But brief explanation of the behavior of memcg around shmem will be 136 Each memcg has its own vector of LRUs (inactive anon, active anon, 138 each LRU handled under a single lru_lock for that memcg and node. 145 9.1 Small limit to memcg. 148 When you do test to do racy case, it's good test to set memcg's limit 158 Historically, memcg's shmem handling was poor and we saw some amount 248 Besides management of swap is one of complicated parts of memcg, [all …]
|
/Linux-v6.1/include/linux/sched/ |
D | mm.h | 378 set_active_memcg(struct mem_cgroup *memcg) in set_active_memcg() argument 384 this_cpu_write(int_active_memcg, memcg); in set_active_memcg() 387 current->active_memcg = memcg; in set_active_memcg() 394 set_active_memcg(struct mem_cgroup *memcg) in set_active_memcg() argument
|
/Linux-v6.1/Documentation/translations/zh_CN/mm/ |
D | hwpoison.rst | 119 corrupt-filter-memcg 120 限制注入到memgroup拥有的页面。由memcg的inode号指定。 130 echo $memcg_ino > /debug/hwpoison/corrupt-filter-memcg
|
/Linux-v6.1/Documentation/admin-guide/mm/ |
D | shrinker_debugfs.rst | 16 trigger *count_objects()* and *scan_objects()* callbacks for each memcg and 61 If the shrinker is not memcg-aware or CONFIG_MEMCG is off, 0 is printed 114 For a non-memcg-aware shrinker or on a system with no memory
|
/Linux-v6.1/kernel/bpf/ |
D | memalloc.c | 166 struct mem_cgroup *memcg = NULL, *old_memcg; in alloc_bulk() local 171 memcg = get_memcg(c); in alloc_bulk() 172 old_memcg = set_active_memcg(memcg); in alloc_bulk() 198 mem_cgroup_put(memcg); in alloc_bulk()
|
/Linux-v6.1/arch/x86/kernel/cpu/sgx/ |
D | encl.c | 965 struct mem_cgroup *memcg = NULL; in sgx_encl_get_mem_cgroup() local 987 memcg = get_mem_cgroup_from_mm(encl_mm->mm); in sgx_encl_get_mem_cgroup() 1002 if (!memcg) in sgx_encl_get_mem_cgroup() 1005 return memcg; in sgx_encl_get_mem_cgroup() 1029 struct mem_cgroup *memcg = set_active_memcg(encl_memcg); in sgx_encl_alloc_backing() local 1034 set_active_memcg(memcg); in sgx_encl_alloc_backing()
|