/linux-6.3-rc2/mm/ |
A D | memcontrol.c | 497 for (; memcg; memcg = parent_mem_cgroup(memcg)) { in mem_cgroup_update_tree() 782 memcg = pn->memcg; in __mod_memcg_lruvec_state() 1704 .memcg = memcg, in mem_cgroup_out_of_memory() 1897 if (memcg && memcg->under_oom) in memcg_oom_recover() 1988 owait.memcg = memcg; in mem_cgroup_oom_synchronize() 2069 for (; memcg; memcg = parent_mem_cgroup(memcg)) { in mem_cgroup_get_oom_group() 3752 objcg->memcg = memcg; in memcg_online_kmem() 4880 event->memcg = memcg; in memcg_write_event_control() 5236 pn->memcg = memcg; in alloc_mem_cgroup_per_node_info() 7118 if (ug->memcg != memcg) { in uncharge_folio() [all …]
|
A 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 69 if (memcg && !mem_cgroup_online(memcg)) in shrinker_debugfs_count_show() 92 } while ((memcg = mem_cgroup_iter(NULL, memcg, NULL)) != NULL); in shrinker_debugfs_count_show() 117 struct mem_cgroup *memcg = NULL; in shrinker_debugfs_scan_write() local 138 if (!memcg || IS_ERR(memcg)) in shrinker_debugfs_scan_write() 142 mem_cgroup_put(memcg); in shrinker_debugfs_scan_write() 151 mem_cgroup_put(memcg); in shrinker_debugfs_scan_write() 156 sc.memcg = memcg; in shrinker_debugfs_scan_write() [all …]
|
A 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() 81 *memcg_ptr = memcg; in list_lru_from_kmem() 123 struct mem_cgroup *memcg; in list_lru_add() local 132 set_shrinker_bit(memcg, nid, in list_lru_add() 434 int src_idx = memcg->kmemcg_id; in memcg_reparent_list_lrus() 467 int idx = memcg->kmemcg_id; in memcg_list_lru_allocated() 479 struct mem_cgroup *memcg; in memcg_list_lru_alloc() member 496 for (i = 0; memcg; memcg = parent_mem_cgroup(memcg), i++) { in memcg_list_lru_alloc() [all …]
|
A 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() 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() 343 vmpressure(gfp, memcg, true, vmpressure_win, 0); in vmpressure_prio() 366 int vmpressure_register_event(struct mem_cgroup *memcg, in vmpressure_register_event() argument 369 struct vmpressure *vmpr = memcg_to_vmpressure(memcg); in vmpressure_register_event() [all …]
|
A D | vmscan.c | 906 .memcg = memcg, in shrink_slab_memcg() 1010 .memcg = memcg, in shrink_slab() 3197 if (memcg) { in get_lruvec() 3344 if (memcg) in get_mm_list() 3361 mm->lru_gen.memcg = memcg; in lru_gen_add_mm() 3388 memcg = mm->lru_gen.memcg; in lru_gen_del_mm() 3441 if (memcg == mm->lru_gen.memcg) in lru_gen_migrate_mm() 4562 } while ((memcg = mem_cgroup_iter(NULL, memcg, NULL))); in lru_gen_age_node() 5792 memcg = mem_cgroup_iter(NULL, memcg, NULL); in lru_gen_seq_next() 5869 if (memcg) in lru_gen_seq_show() [all …]
|
A D | workingset.c | 236 lruvec = mem_cgroup_lruvec(memcg, pgdat); 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() 513 struct mem_cgroup *memcg; in workingset_activation() local 523 memcg = folio_memcg_rcu(folio); in workingset_activation() 524 if (!mem_cgroup_disabled() && !memcg) in workingset_activation() [all …]
|
A 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()
|
A 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()
|
A D | page_owner.c | 366 struct mem_cgroup *memcg; in print_page_owner_memcg() local 379 memcg = page_memcg_check(page); in print_page_owner_memcg() 380 if (!memcg) in print_page_owner_memcg() 383 online = (memcg->css.flags & CSS_ONLINE); in print_page_owner_memcg() 384 cgroup_name(memcg->css.cgroup, name, sizeof(name)); in print_page_owner_memcg()
|
A 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-6.3-rc2/tools/testing/selftests/cgroup/ |
A D | test_memcontrol.c | 165 char *memcg; in test_memcg_current() local 168 if (!memcg) in test_memcg_current() 188 free(memcg); in test_memcg_current() 495 if (!memcg) in test_memcg_high() 559 if (!memcg) in test_memcg_high_sync() 620 if (!memcg) in test_memcg_max() 712 if (!memcg) in test_memcg_reclaim() 813 if (!memcg) in test_memcg_swap_max() 873 if (!memcg) in test_memcg_oom_events() 1031 if (!memcg) in test_memcg_sock() [all …]
|
A 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-6.3-rc2/include/linux/ |
A D | memcontrol.h | 730 if (!memcg) in mem_cgroup_lruvec() 806 return !memcg || css_tryget(&memcg->css); in mem_cgroup_tryget() 811 if (memcg) in mem_cgroup_put() 837 return memcg ? cgroup_ino(memcg->css.cgroup) : 0; in mem_cgroup_ino() 994 if (memcg) in mod_memcg_page_state() 1085 if (memcg) in count_memcg_page_event() 1094 if (memcg) in count_memcg_folio_events() 1134 } while ((memcg = parent_mem_cgroup(memcg)) && in memcg_memory_event() 1620 memcg = parent_mem_cgroup(memcg); in parent_lruvec() 1745 } while ((memcg = parent_mem_cgroup(memcg))); in mem_cgroup_under_socket_pressure() [all …]
|
A 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
|
A 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()
|
A D | swap.h | 418 extern unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup *memcg, 619 static inline int mem_cgroup_swappiness(struct mem_cgroup *memcg) in mem_cgroup_swappiness() argument 626 if (mem_cgroup_disabled() || mem_cgroup_is_root(memcg)) in mem_cgroup_swappiness() 629 return memcg->swappiness; in mem_cgroup_swappiness() 680 extern long mem_cgroup_get_nr_swap_pages(struct mem_cgroup *memcg); 698 static inline long mem_cgroup_get_nr_swap_pages(struct mem_cgroup *memcg) in mem_cgroup_get_nr_swap_pages() argument
|
A D | mmzone.h | 546 void lru_gen_init_memcg(struct mem_cgroup *memcg); 547 void lru_gen_exit_memcg(struct mem_cgroup *memcg); 548 void lru_gen_online_memcg(struct mem_cgroup *memcg); 549 void lru_gen_offline_memcg(struct mem_cgroup *memcg); 550 void lru_gen_release_memcg(struct mem_cgroup *memcg); 582 static inline void lru_gen_init_memcg(struct mem_cgroup *memcg) in lru_gen_init_memcg() argument 586 static inline void lru_gen_exit_memcg(struct mem_cgroup *memcg) in lru_gen_exit_memcg() argument 590 static inline void lru_gen_online_memcg(struct mem_cgroup *memcg) in lru_gen_online_memcg() argument 594 static inline void lru_gen_offline_memcg(struct mem_cgroup *memcg) in lru_gen_offline_memcg() argument 598 static inline void lru_gen_release_memcg(struct mem_cgroup *memcg) in lru_gen_release_memcg() argument
|
/linux-6.3-rc2/tools/cgroup/ |
A 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-6.3-rc2/Documentation/admin-guide/cgroup-v1/ |
A 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. 248 Besides management of swap is one of complicated parts of memcg, 275 Out-of-memory caused by memcg's limit will kill tasks under 276 the memcg. When hierarchy is used, a task under hierarchy [all …]
|
/linux-6.3-rc2/include/linux/sched/ |
A 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-6.3-rc2/Documentation/translations/zh_CN/mm/ |
A D | hwpoison.rst | 119 corrupt-filter-memcg 120 限制注入到memgroup拥有的页面。由memcg的inode号指定。 130 echo $memcg_ino > /debug/hwpoison/corrupt-filter-memcg
|
/linux-6.3-rc2/mm/damon/ |
A D | paddr.c | 195 struct mem_cgroup *memcg; in __damos_pa_filter_out() local 203 memcg = folio_memcg_check(folio); in __damos_pa_filter_out() 204 if (!memcg) in __damos_pa_filter_out() 207 matched = filter->memcg_id == mem_cgroup_id(memcg); in __damos_pa_filter_out()
|
A D | sysfs-schemes.c | 1405 static bool damon_sysfs_memcg_path_eq(struct mem_cgroup *memcg, in damon_sysfs_memcg_path_eq() argument 1409 cgroup_path(memcg->css.cgroup, memcg_path_buf, PATH_MAX); in damon_sysfs_memcg_path_eq() 1418 struct mem_cgroup *memcg; in damon_sysfs_memcg_path_to_id() local 1429 for (memcg = mem_cgroup_iter(NULL, NULL, NULL); memcg; in damon_sysfs_memcg_path_to_id() 1430 memcg = mem_cgroup_iter(NULL, memcg, NULL)) { in damon_sysfs_memcg_path_to_id() 1432 if (!mem_cgroup_id(memcg)) in damon_sysfs_memcg_path_to_id() 1434 if (damon_sysfs_memcg_path_eq(memcg, path, memcg_path)) { in damon_sysfs_memcg_path_to_id() 1435 *id = mem_cgroup_id(memcg); in damon_sysfs_memcg_path_to_id()
|
/linux-6.3-rc2/Documentation/admin-guide/mm/ |
A D | shrinker_debugfs.rst | 14 trigger *count_objects()* and *scan_objects()* callbacks for each memcg and 59 If the shrinker is not memcg-aware or CONFIG_MEMCG is off, 0 is printed 112 For a non-memcg-aware shrinker or on a system with no memory
|
/linux-6.3-rc2/kernel/bpf/ |
A 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() 213 mem_cgroup_put(memcg); in alloc_bulk()
|