Message ID | 1467029719-17602-2-git-send-email-mhocko@kernel.org (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
On Mon, Jun 27, 2016 at 2:15 PM, Michal Hocko <mhocko@kernel.org> wrote: > From: Michal Hocko <mhocko@suse.com> > > freezing_slow_path is checking TIF_MEMDIE to skip OOM killed > tasks. It is, however, checking the flag on the current task rather than > the given one. This is really confusing because freezing() can be called > also on !current tasks. It would end up working correctly for its main > purpose because __refrigerator will be always called on the current task > so the oom victim will never get frozen. But it could lead to surprising > results when a task which is freezing a cgroup got oom killed because > only part of the cgroup would get frozen. This is highly unlikely but > worth fixing as the resulting code would be more clear anyway. > > Signed-off-by: Michal Hocko <mhocko@suse.com> Looks reasonable to me, so ACK. > --- > kernel/freezer.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/freezer.c b/kernel/freezer.c > index a8900a3bc27a..6f56a9e219fa 100644 > --- a/kernel/freezer.c > +++ b/kernel/freezer.c > @@ -42,7 +42,7 @@ bool freezing_slow_path(struct task_struct *p) > if (p->flags & (PF_NOFREEZE | PF_SUSPEND_TASK)) > return false; > > - if (test_thread_flag(TIF_MEMDIE)) > + if (test_tsk_thread_flag(p, TIF_MEMDIE)) > return false; > > if (pm_nosig_freezing || cgroup_freezing(p)) > -- -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/kernel/freezer.c b/kernel/freezer.c index a8900a3bc27a..6f56a9e219fa 100644 --- a/kernel/freezer.c +++ b/kernel/freezer.c @@ -42,7 +42,7 @@ bool freezing_slow_path(struct task_struct *p) if (p->flags & (PF_NOFREEZE | PF_SUSPEND_TASK)) return false; - if (test_thread_flag(TIF_MEMDIE)) + if (test_tsk_thread_flag(p, TIF_MEMDIE)) return false; if (pm_nosig_freezing || cgroup_freezing(p))