aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/linux/oom.h11
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);