diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2015-01-15 09:46:14 -0800 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2015-01-15 09:46:14 -0800 |
commit | 0c49cd295d42d0032af11d55e2140dbec11dc8d0 (patch) | |
tree | 1e7d0e50b6b6d6e4de1fb6bb0b6d856c3932da58 /include/linux/oom.h | |
parent | 0c3e99437a66e4c869c60c2398449e6d98f3a988 (diff) | |
parent | eaa27f34e91a14cdceed26ed6c6793ec1d186115 (diff) |
Merge tag 'v3.19-rc4' into next
Merge with mainline to bring in the latest thermal and other changes.
Diffstat (limited to 'include/linux/oom.h')
-rw-r--r-- | include/linux/oom.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/include/linux/oom.h b/include/linux/oom.h index 647395a1a55..853698c721f 100644 --- a/include/linux/oom.h +++ b/include/linux/oom.h @@ -50,6 +50,9 @@ static inline bool oom_task_origin(const struct task_struct *p) extern unsigned long oom_badness(struct task_struct *p, struct mem_cgroup *memcg, const nodemask_t *nodemask, unsigned long totalpages); + +extern int oom_kills_count(void); +extern void note_oom_kill(void); extern void oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order, unsigned int points, unsigned long totalpages, struct mem_cgroup *memcg, nodemask_t *nodemask, @@ -89,6 +92,17 @@ static inline bool oom_gfp_allowed(gfp_t gfp_mask) extern struct task_struct *find_lock_task_mm(struct task_struct *p); +static inline bool task_will_free_mem(struct task_struct *task) +{ + /* + * A coredumping process may sleep for an extended period in exit_mm(), + * so the oom killer cannot assume that the process will promptly exit + * and release memory. + */ + return (task->flags & PF_EXITING) && + !(task->signal->flags & SIGNAL_GROUP_COREDUMP); +} + /* sysctls */ extern int sysctl_oom_dump_tasks; extern int sysctl_oom_kill_allocating_task; |