Lines Matching refs:memcg
127 struct mem_cgroup *memcg; /* Back pointer, we cannot */ member
197 struct mem_cgroup *memcg; member
358 static inline bool mem_cgroup_is_root(struct mem_cgroup *memcg) in mem_cgroup_is_root() argument
360 return (memcg == root_mem_cgroup); in mem_cgroup_is_root()
369 struct mem_cgroup *memcg, in mem_cgroup_protection() argument
411 if (root == memcg) in mem_cgroup_protection()
414 *min = READ_ONCE(memcg->memory.emin); in mem_cgroup_protection()
415 *low = READ_ONCE(memcg->memory.elow); in mem_cgroup_protection()
419 struct mem_cgroup *memcg);
421 static inline bool mem_cgroup_supports_protection(struct mem_cgroup *memcg) in mem_cgroup_supports_protection() argument
427 return !mem_cgroup_disabled() && !mem_cgroup_is_root(memcg); in mem_cgroup_supports_protection()
431 static inline bool mem_cgroup_below_low(struct mem_cgroup *memcg) in mem_cgroup_below_low() argument
433 if (!mem_cgroup_supports_protection(memcg)) in mem_cgroup_below_low()
436 return READ_ONCE(memcg->memory.elow) >= in mem_cgroup_below_low()
437 page_counter_read(&memcg->memory); in mem_cgroup_below_low()
440 static inline bool mem_cgroup_below_min(struct mem_cgroup *memcg) in mem_cgroup_below_min() argument
442 if (!mem_cgroup_supports_protection(memcg)) in mem_cgroup_below_min()
445 return READ_ONCE(memcg->memory.emin) >= in mem_cgroup_below_min()
446 page_counter_read(&memcg->memory); in mem_cgroup_below_min()
478 mem_cgroup_nodeinfo(struct mem_cgroup *memcg, int nid) in mem_cgroup_nodeinfo() argument
480 return memcg->nodeinfo[nid]; in mem_cgroup_nodeinfo()
491 static inline struct lruvec *mem_cgroup_lruvec(struct mem_cgroup *memcg, in mem_cgroup_lruvec() argument
502 if (!memcg) in mem_cgroup_lruvec()
503 memcg = root_mem_cgroup; in mem_cgroup_lruvec()
505 mz = mem_cgroup_nodeinfo(memcg, pgdat->node_id); in mem_cgroup_lruvec()
555 return READ_ONCE(objcg->memcg); in obj_cgroup_memcg()
558 static inline void mem_cgroup_put(struct mem_cgroup *memcg) in mem_cgroup_put() argument
560 if (memcg) in mem_cgroup_put()
561 css_put(&memcg->css); in mem_cgroup_put()
574 static inline unsigned short mem_cgroup_id(struct mem_cgroup *memcg) in mem_cgroup_id() argument
579 return memcg->id.id; in mem_cgroup_id()
596 return mz->memcg; in lruvec_memcg()
606 static inline struct mem_cgroup *parent_mem_cgroup(struct mem_cgroup *memcg) in parent_mem_cgroup() argument
608 if (!memcg->memory.parent) in parent_mem_cgroup()
610 return mem_cgroup_from_counter(memcg->memory.parent, memory); in parent_mem_cgroup()
613 static inline bool mem_cgroup_is_descendant(struct mem_cgroup *memcg, in mem_cgroup_is_descendant() argument
616 if (root == memcg) in mem_cgroup_is_descendant()
620 return cgroup_is_descendant(memcg->css.cgroup, root->css.cgroup); in mem_cgroup_is_descendant()
624 struct mem_cgroup *memcg) in mm_match_cgroup() argument
632 match = mem_cgroup_is_descendant(task_memcg, memcg); in mm_match_cgroup()
640 static inline bool mem_cgroup_online(struct mem_cgroup *memcg) in mem_cgroup_online() argument
644 return !!(memcg->css.flags & CSS_ONLINE); in mem_cgroup_online()
650 int mem_cgroup_select_victim_node(struct mem_cgroup *memcg);
667 unsigned long mem_cgroup_get_max(struct mem_cgroup *memcg);
669 unsigned long mem_cgroup_size(struct mem_cgroup *memcg);
671 void mem_cgroup_print_oom_context(struct mem_cgroup *memcg,
674 void mem_cgroup_print_oom_meminfo(struct mem_cgroup *memcg);
696 void mem_cgroup_print_oom_group(struct mem_cgroup *memcg);
703 void __unlock_page_memcg(struct mem_cgroup *memcg);
710 static inline unsigned long memcg_page_state(struct mem_cgroup *memcg, int idx) in memcg_page_state() argument
712 long x = atomic_long_read(&memcg->vmstats[idx]); in memcg_page_state()
724 static inline unsigned long memcg_page_state_local(struct mem_cgroup *memcg, in memcg_page_state_local() argument
731 x += per_cpu(memcg->vmstats_local->stat[idx], cpu); in memcg_page_state_local()
739 void __mod_memcg_state(struct mem_cgroup *memcg, int idx, int val);
742 static inline void mod_memcg_state(struct mem_cgroup *memcg, in mod_memcg_state() argument
748 __mod_memcg_state(memcg, idx, val); in mod_memcg_state()
890 void __count_memcg_events(struct mem_cgroup *memcg, enum vm_event_item idx,
893 static inline void count_memcg_events(struct mem_cgroup *memcg, in count_memcg_events() argument
900 __count_memcg_events(memcg, idx, count); in count_memcg_events()
914 struct mem_cgroup *memcg; in count_memcg_event_mm() local
920 memcg = mem_cgroup_from_task(rcu_dereference(mm->owner)); in count_memcg_event_mm()
921 if (likely(memcg)) in count_memcg_event_mm()
922 count_memcg_events(memcg, idx, 1); in count_memcg_event_mm()
926 static inline void memcg_memory_event(struct mem_cgroup *memcg, in memcg_memory_event() argument
932 atomic_long_inc(&memcg->memory_events_local[event]); in memcg_memory_event()
934 cgroup_file_notify(&memcg->events_local_file); in memcg_memory_event()
937 atomic_long_inc(&memcg->memory_events[event]); in memcg_memory_event()
939 cgroup_file_notify(&memcg->swap_events_file); in memcg_memory_event()
941 cgroup_file_notify(&memcg->events_file); in memcg_memory_event()
947 } while ((memcg = parent_mem_cgroup(memcg)) && in memcg_memory_event()
948 !mem_cgroup_is_root(memcg)); in memcg_memory_event()
954 struct mem_cgroup *memcg; in memcg_memory_event_mm() local
960 memcg = mem_cgroup_from_task(rcu_dereference(mm->owner)); in memcg_memory_event_mm()
961 if (likely(memcg)) in memcg_memory_event_mm()
962 memcg_memory_event(memcg, event); in memcg_memory_event_mm()
984 static inline bool mem_cgroup_is_root(struct mem_cgroup *memcg) in mem_cgroup_is_root() argument
994 static inline void memcg_memory_event(struct mem_cgroup *memcg, in memcg_memory_event() argument
1005 struct mem_cgroup *memcg, in mem_cgroup_protection() argument
1013 struct mem_cgroup *memcg) in mem_cgroup_calculate_protection() argument
1017 static inline bool mem_cgroup_below_low(struct mem_cgroup *memcg) in mem_cgroup_below_low() argument
1022 static inline bool mem_cgroup_below_min(struct mem_cgroup *memcg) in mem_cgroup_below_min() argument
1045 static inline struct lruvec *mem_cgroup_lruvec(struct mem_cgroup *memcg, in mem_cgroup_lruvec() argument
1057 static inline struct mem_cgroup *parent_mem_cgroup(struct mem_cgroup *memcg) in parent_mem_cgroup() argument
1063 struct mem_cgroup *memcg) in mm_match_cgroup() argument
1078 static inline void mem_cgroup_put(struct mem_cgroup *memcg) in mem_cgroup_put() argument
1095 static inline int mem_cgroup_scan_tasks(struct mem_cgroup *memcg, in mem_cgroup_scan_tasks() argument
1101 static inline unsigned short mem_cgroup_id(struct mem_cgroup *memcg) in mem_cgroup_id() argument
1123 static inline bool mem_cgroup_online(struct mem_cgroup *memcg) in mem_cgroup_online() argument
1135 static inline unsigned long mem_cgroup_get_max(struct mem_cgroup *memcg) in mem_cgroup_get_max() argument
1140 static inline unsigned long mem_cgroup_size(struct mem_cgroup *memcg) in mem_cgroup_size() argument
1146 mem_cgroup_print_oom_context(struct mem_cgroup *memcg, struct task_struct *p) in mem_cgroup_print_oom_context() argument
1151 mem_cgroup_print_oom_meminfo(struct mem_cgroup *memcg) in mem_cgroup_print_oom_meminfo() argument
1160 static inline void __unlock_page_memcg(struct mem_cgroup *memcg) in __unlock_page_memcg() argument
1196 static inline void mem_cgroup_print_oom_group(struct mem_cgroup *memcg) in mem_cgroup_print_oom_group() argument
1200 static inline unsigned long memcg_page_state(struct mem_cgroup *memcg, int idx) in memcg_page_state() argument
1205 static inline unsigned long memcg_page_state_local(struct mem_cgroup *memcg, in memcg_page_state_local() argument
1211 static inline void __mod_memcg_state(struct mem_cgroup *memcg, in __mod_memcg_state() argument
1217 static inline void mod_memcg_state(struct mem_cgroup *memcg, in mod_memcg_state() argument
1308 static inline void count_memcg_events(struct mem_cgroup *memcg, in count_memcg_events() argument
1314 static inline void __count_memcg_events(struct mem_cgroup *memcg, in __count_memcg_events() argument
1332 static inline void __inc_memcg_state(struct mem_cgroup *memcg, in __inc_memcg_state() argument
1335 __mod_memcg_state(memcg, idx, 1); in __inc_memcg_state()
1339 static inline void __dec_memcg_state(struct mem_cgroup *memcg, in __dec_memcg_state() argument
1342 __mod_memcg_state(memcg, idx, -1); in __dec_memcg_state()
1394 static inline void inc_memcg_state(struct mem_cgroup *memcg, in inc_memcg_state() argument
1397 mod_memcg_state(memcg, idx, 1); in inc_memcg_state()
1401 static inline void dec_memcg_state(struct mem_cgroup *memcg, in dec_memcg_state() argument
1404 mod_memcg_state(memcg, idx, -1); in dec_memcg_state()
1447 struct mem_cgroup *memcg; in parent_lruvec() local
1449 memcg = lruvec_memcg(lruvec); in parent_lruvec()
1450 if (!memcg) in parent_lruvec()
1452 memcg = parent_mem_cgroup(memcg); in parent_lruvec()
1453 if (!memcg) in parent_lruvec()
1455 return mem_cgroup_lruvec(memcg, lruvec_pgdat(lruvec)); in parent_lruvec()
1507 bool mem_cgroup_charge_skmem(struct mem_cgroup *memcg, unsigned int nr_pages);
1508 void mem_cgroup_uncharge_skmem(struct mem_cgroup *memcg, unsigned int nr_pages);
1514 static inline bool mem_cgroup_under_socket_pressure(struct mem_cgroup *memcg) in mem_cgroup_under_socket_pressure() argument
1516 if (!cgroup_subsys_on_dfl(memory_cgrp_subsys) && memcg->tcpmem_pressure) in mem_cgroup_under_socket_pressure()
1519 if (time_before(jiffies, memcg->socket_pressure)) in mem_cgroup_under_socket_pressure()
1521 } while ((memcg = parent_mem_cgroup(memcg))); in mem_cgroup_under_socket_pressure()
1527 extern void memcg_set_shrinker_bit(struct mem_cgroup *memcg,
1533 static inline bool mem_cgroup_under_socket_pressure(struct mem_cgroup *memcg) in mem_cgroup_under_socket_pressure() argument
1538 static inline void memcg_set_shrinker_bit(struct mem_cgroup *memcg, in memcg_set_shrinker_bit() argument
1545 int __memcg_kmem_charge(struct mem_cgroup *memcg, gfp_t gfp,
1547 void __memcg_kmem_uncharge(struct mem_cgroup *memcg, unsigned int nr_pages);
1589 static inline int memcg_kmem_charge(struct mem_cgroup *memcg, gfp_t gfp, in memcg_kmem_charge() argument
1593 return __memcg_kmem_charge(memcg, gfp, nr_pages); in memcg_kmem_charge()
1597 static inline void memcg_kmem_uncharge(struct mem_cgroup *memcg, in memcg_kmem_uncharge() argument
1601 __memcg_kmem_uncharge(memcg, nr_pages); in memcg_kmem_uncharge()
1609 static inline int memcg_cache_id(struct mem_cgroup *memcg) in memcg_cache_id() argument
1611 return memcg ? memcg->kmemcg_id : -1; in memcg_cache_id()
1646 static inline int memcg_cache_id(struct mem_cgroup *memcg) in memcg_cache_id() argument