diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/oom.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/oom.h b/include/linux/oom.h index fbb0bead6..3ce57d6cf 100644 --- a/include/linux/oom.h +++ b/include/linux/oom.h @@ -87,6 +87,17 @@ static inline void oom_killer_enable(void) 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); +} + extern void dump_tasks(const struct mem_cgroup *memcg, const nodemask_t *nodemask); |
