Loading mm/oom_kill.c +4 −26 Original line number Diff line number Diff line Loading @@ -52,6 +52,8 @@ #define CREATE_TRACE_POINTS #include <trace/events/oom.h> #define ULMK_MAGIC "lmkd" int sysctl_panic_on_oom = IS_ENABLED(CONFIG_DEBUG_PANIC_ON_OOM) ? 2 : 0; int sysctl_oom_kill_allocating_task; Loading Loading @@ -1230,30 +1232,6 @@ void pagefault_out_of_memory(void) mutex_unlock(&oom_lock); } /* Call this function with task_lock being held as we're accessing ->mm */ void dump_killed_info(struct task_struct *selected) { int selected_tasksize = get_mm_rss(selected->mm); pr_info_ratelimited("Killing '%s' (%d), adj %hd,\n" " to free %ldkB on behalf of '%s' (%d)\n" " Free CMA is %ldkB\n" " Total reserve is %ldkB\n" " Total free pages is %ldkB\n" " Total file cache is %ldkB\n", selected->comm, selected->pid, selected->signal->oom_score_adj, selected_tasksize * (long)(PAGE_SIZE / 1024), current->comm, current->pid, global_zone_page_state(NR_FREE_CMA_PAGES) * (long)(PAGE_SIZE / 1024), totalreserve_pages * (long)(PAGE_SIZE / 1024), global_zone_page_state(NR_FREE_PAGES) * (long)(PAGE_SIZE / 1024), global_node_page_state(NR_FILE_PAGES) * (long)(PAGE_SIZE / 1024)); } void add_to_oom_reaper(struct task_struct *p) { static DEFINE_RATELIMIT_STATE(reaper_rs, DEFAULT_RATELIMIT_INTERVAL, Loading @@ -1272,10 +1250,10 @@ void add_to_oom_reaper(struct task_struct *p) wake_oom_reaper(p); } dump_killed_info(p); task_unlock(p); if (__ratelimit(&reaper_rs) && p->signal->oom_score_adj == 0) { if (strcmp(current->comm, ULMK_MAGIC) && __ratelimit(&reaper_rs) && p->signal->oom_score_adj == 0) { show_mem(SHOW_MEM_FILTER_NODES, NULL); show_mem_call_notifiers(); if (sysctl_oom_dump_tasks) Loading Loading
mm/oom_kill.c +4 −26 Original line number Diff line number Diff line Loading @@ -52,6 +52,8 @@ #define CREATE_TRACE_POINTS #include <trace/events/oom.h> #define ULMK_MAGIC "lmkd" int sysctl_panic_on_oom = IS_ENABLED(CONFIG_DEBUG_PANIC_ON_OOM) ? 2 : 0; int sysctl_oom_kill_allocating_task; Loading Loading @@ -1230,30 +1232,6 @@ void pagefault_out_of_memory(void) mutex_unlock(&oom_lock); } /* Call this function with task_lock being held as we're accessing ->mm */ void dump_killed_info(struct task_struct *selected) { int selected_tasksize = get_mm_rss(selected->mm); pr_info_ratelimited("Killing '%s' (%d), adj %hd,\n" " to free %ldkB on behalf of '%s' (%d)\n" " Free CMA is %ldkB\n" " Total reserve is %ldkB\n" " Total free pages is %ldkB\n" " Total file cache is %ldkB\n", selected->comm, selected->pid, selected->signal->oom_score_adj, selected_tasksize * (long)(PAGE_SIZE / 1024), current->comm, current->pid, global_zone_page_state(NR_FREE_CMA_PAGES) * (long)(PAGE_SIZE / 1024), totalreserve_pages * (long)(PAGE_SIZE / 1024), global_zone_page_state(NR_FREE_PAGES) * (long)(PAGE_SIZE / 1024), global_node_page_state(NR_FILE_PAGES) * (long)(PAGE_SIZE / 1024)); } void add_to_oom_reaper(struct task_struct *p) { static DEFINE_RATELIMIT_STATE(reaper_rs, DEFAULT_RATELIMIT_INTERVAL, Loading @@ -1272,10 +1250,10 @@ void add_to_oom_reaper(struct task_struct *p) wake_oom_reaper(p); } dump_killed_info(p); task_unlock(p); if (__ratelimit(&reaper_rs) && p->signal->oom_score_adj == 0) { if (strcmp(current->comm, ULMK_MAGIC) && __ratelimit(&reaper_rs) && p->signal->oom_score_adj == 0) { show_mem(SHOW_MEM_FILTER_NODES, NULL); show_mem_call_notifiers(); if (sysctl_oom_dump_tasks) Loading