Lines Matching refs:p
101 struct task_struct *find_lock_task_mm(struct task_struct *p) in find_lock_task_mm() argument
107 for_each_thread(p, t) { in find_lock_task_mm()
121 static bool oom_unkillable_task(struct task_struct *p, in oom_unkillable_task() argument
124 if (is_global_init(p)) in oom_unkillable_task()
126 if (p->flags & PF_KTHREAD) in oom_unkillable_task()
130 if (memcg && !task_in_mem_cgroup(p, memcg)) in oom_unkillable_task()
134 if (!has_intersects_mems_allowed(p, nodemask)) in oom_unkillable_task()
149 unsigned long oom_badness(struct task_struct *p, struct mem_cgroup *memcg, in oom_badness() argument
155 if (oom_unkillable_task(p, memcg, nodemask)) in oom_badness()
158 p = find_lock_task_mm(p); in oom_badness()
159 if (!p) in oom_badness()
162 adj = (long)p->signal->oom_score_adj; in oom_badness()
164 task_unlock(p); in oom_badness()
172 points = get_mm_rss(p->mm) + get_mm_counter(p->mm, MM_SWAPENTS) + in oom_badness()
173 atomic_long_read(&p->mm->nr_ptes) + mm_nr_pmds(p->mm); in oom_badness()
174 task_unlock(p); in oom_badness()
180 if (has_capability_noaudit(p, CAP_SYS_ADMIN)) in oom_badness()
298 struct task_struct *g, *p; in select_bad_process() local
303 for_each_process_thread(g, p) { in select_bad_process()
306 switch (oom_scan_process_thread(p, totalpages, nodemask, in select_bad_process()
309 chosen = p; in select_bad_process()
320 points = oom_badness(p, NULL, nodemask, totalpages); in select_bad_process()
327 chosen = p; in select_bad_process()
351 struct task_struct *p; in dump_tasks() local
356 for_each_process(p) { in dump_tasks()
357 if (oom_unkillable_task(p, memcg, nodemask)) in dump_tasks()
360 task = find_lock_task_mm(p); in dump_tasks()
382 static void dump_header(struct task_struct *p, gfp_t gfp_mask, int order, in dump_header() argument
394 mem_cgroup_print_oom_info(memcg, p); in dump_header()
501 void oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order, in oom_kill_process() argument
506 struct task_struct *victim = p; in oom_kill_process()
518 task_lock(p); in oom_kill_process()
519 if (p->mm && task_will_free_mem(p)) { in oom_kill_process()
520 mark_tsk_oom_victim(p); in oom_kill_process()
521 task_unlock(p); in oom_kill_process()
522 put_task_struct(p); in oom_kill_process()
525 task_unlock(p); in oom_kill_process()
528 dump_header(p, gfp_mask, order, memcg, nodemask); in oom_kill_process()
530 task_lock(p); in oom_kill_process()
532 message, task_pid_nr(p), p->comm, points); in oom_kill_process()
533 task_unlock(p); in oom_kill_process()
542 for_each_thread(p, t) { in oom_kill_process()
546 if (child->mm == p->mm) in oom_kill_process()
563 p = find_lock_task_mm(victim); in oom_kill_process()
564 if (!p) { in oom_kill_process()
567 } else if (victim != p) { in oom_kill_process()
568 get_task_struct(p); in oom_kill_process()
570 victim = p; in oom_kill_process()
592 for_each_process(p) in oom_kill_process()
593 if (p->mm == mm && !same_thread_group(p, victim) && in oom_kill_process()
594 !(p->flags & PF_KTHREAD)) { in oom_kill_process()
595 if (p->signal->oom_score_adj == OOM_SCORE_ADJ_MIN) in oom_kill_process()
598 task_lock(p); /* Protect ->comm from prctl() */ in oom_kill_process()
600 task_pid_nr(p), p->comm); in oom_kill_process()
601 task_unlock(p); in oom_kill_process()
602 do_send_sig_info(SIGKILL, SEND_SIG_FORCED, p, true); in oom_kill_process()
711 struct task_struct *p; in __out_of_memory() local
756 p = select_bad_process(&points, totalpages, mpol_mask, force_kill); in __out_of_memory()
758 if (!p) { in __out_of_memory()
762 if (p != (void *)-1UL) { in __out_of_memory()
763 oom_kill_process(p, gfp_mask, order, points, totalpages, NULL, in __out_of_memory()