mem_cgroup_get_oom_group(9)
π mem_cgroup_get_oom_group(9) π
okay so this is a page from the Kernel API Manual, and honestly? it's a little baddie. it's called mem_cgroup_get_oom_group and it's giving "who do we gotta yeet when memory runs out" energy. let's get into it π«Ά
β¨ NAME β¨
mem_cgroup_get_oom_group β get a memory cgroup to clean up after OOM
like, literally what the name says bestie, it grabs you the memcg that needs the cleanup after an out-of-memory situation π
πΈ SYNOPSIS πΈ
struct mem_cgroup * mem_cgroup_get_oom_group (struct task_struct *victim
, struct mem_cgroup *oom_domain );
look at that signature, she's iconic π₯
π ARGUMENTS π
victimβ the task that the OOM killer is gonna kill π that's the whole vibe, it's the sacrificeoom_domainβ the memcg when it's a memcg OOM, orNULLwhen it's a system-wide OOM. two moods, one param π¦
π DESCRIPTION π
So it returns a pointer to a memory cgroup, right? and that cgroup has to be cleaned up by killing all the belonging OOM-killable tasks. no cap, that's the job, that's the assignment π
β οΈ important bestie: the caller has to callmem_cgroup_puton the returned non-NULLmemcg. not "should", not "maybe" β has to. don't leave her hanging π
π SEE ALSO π
okay this list is LONG, she ate and left no crumbs π. Kernel file ./mm/memcontrol.c, plus:
get_mem_cgroup_css_from_folio(9)page_cgroup_ino(9)lruvec_page_state_monotonic(9)mod_memcg_state(9)mod_lruvec_state(9)count_memcg_events(9)get_mem_cgroup_from_mm(9)get_mem_cgroup_from_current(9)get_mem_cgroup_from_folio(9)mem_cgroup_iter(9)mem_cgroup_iter_break(9)mem_cgroup_scan_tasks(9)folio_lruvec_lock(9)folio_lruvec_lock_irq(9)folio_lruvec_lock_irqsave(9)mem_cgroup_update_lru_size(9)mem_cgroup_margin(9)mem_cgroup_print_oom_context(9)mem_cgroup_print_oom_meminfo(9)consume_stock(9)__memcg_kmem_charge_page(9)__memcg_kmem_uncharge_page(9)mem_cgroup_wb_stats(9)mem_cgroup_from_private_id(9)mem_cgroup_css_reset(9)mem_cgroup_calculate_protection(9)mem_cgroup_charge_hugetlb(9)mem_cgroup_swapin_charge_folio(9)mem_cgroup_replace_folio(9)mem_cgroup_migrate(9)mem_cgroup_sk_charge(9)mem_cgroup_sk_uncharge(9)__mem_cgroup_try_charge_swap(9)__mem_cgroup_uncharge_swap(9)obj_cgroup_may_zswap(9)obj_cgroup_charge_zswap(9)obj_cgroup_uncharge_zswap(9)
and that's the whole page, bestie!! β¨ source is ./mm, dated October 2026, and this little moment of kernel lore is officially over π go call mem_cgroup_put like the good noodle you are π§π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms