Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1303715 > unrolled thread
| Started by | Johannes Weiner <hannes@cmpxchg.org> |
|---|---|
| First post | 2016-01-07 17:30 +0100 |
| Last post | 2016-01-08 14:50 +0100 |
| Articles | 4 — 3 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [PATCH] mm,oom: Exclude TIF_MEMDIE processes from candidates. Johannes Weiner <hannes@cmpxchg.org> - 2016-01-07 17:30 +0100
Re: [PATCH] mm,oom: Exclude TIF_MEMDIE processes from candidates. Michal Hocko <mhocko@kernel.org> - 2016-01-08 13:40 +0100
Re: [PATCH] mm,oom: Exclude TIF_MEMDIE processes from candidates. Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> - 2016-01-08 14:20 +0100
Re: [PATCH] mm,oom: Exclude TIF_MEMDIE processes from candidates. Michal Hocko <mhocko@kernel.org> - 2016-01-08 14:50 +0100
| From | Johannes Weiner <hannes@cmpxchg.org> |
|---|---|
| Date | 2016-01-07 17:30 +0100 |
| Subject | Re: [PATCH] mm,oom: Exclude TIF_MEMDIE processes from candidates. |
| Message-ID | <qOlBL-29Y-1@gated-at.bofh.it> |
On Tue, Dec 29, 2015 at 10:58:22PM +0900, Tetsuo Handa wrote: > >From 8bb9e36891a803e82c589ef78077838026ce0f7d Mon Sep 17 00:00:00 2001 > From: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> > Date: Tue, 29 Dec 2015 22:20:58 +0900 > Subject: [PATCH] mm,oom: Exclude TIF_MEMDIE processes from candidates. > > The OOM reaper kernel thread can reclaim OOM victim's memory before the victim > terminates. But since oom_kill_process() tries to kill children of the memory > hog process first, the OOM reaper can not reclaim enough memory for terminating > the victim if the victim is consuming little memory. The result is OOM livelock > as usual, for timeout based next OOM victim selection is not implemented. What we should be doing is have the OOM reaper clear TIF_MEMDIE after it's done. There is no reason to wait for and prioritize the exit of a task that doesn't even have memory anymore. Once a task's memory has been reaped, subsequent OOM invocations should evaluate anew the most desirable OOM victim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Michal Hocko <mhocko@kernel.org> |
|---|---|
| Date | 2016-01-08 13:40 +0100 |
| Message-ID | <qOEuL-6IK-29@gated-at.bofh.it> |
| In reply to | #1303715 |
On Thu 07-01-16 11:28:15, Johannes Weiner wrote: > On Tue, Dec 29, 2015 at 10:58:22PM +0900, Tetsuo Handa wrote: > > >From 8bb9e36891a803e82c589ef78077838026ce0f7d Mon Sep 17 00:00:00 2001 > > From: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> > > Date: Tue, 29 Dec 2015 22:20:58 +0900 > > Subject: [PATCH] mm,oom: Exclude TIF_MEMDIE processes from candidates. > > > > The OOM reaper kernel thread can reclaim OOM victim's memory before the victim > > terminates. But since oom_kill_process() tries to kill children of the memory > > hog process first, the OOM reaper can not reclaim enough memory for terminating > > the victim if the victim is consuming little memory. The result is OOM livelock > > as usual, for timeout based next OOM victim selection is not implemented. > > What we should be doing is have the OOM reaper clear TIF_MEMDIE after > it's done. There is no reason to wait for and prioritize the exit of a > task that doesn't even have memory anymore. Once a task's memory has > been reaped, subsequent OOM invocations should evaluate anew the most > desirable OOM victim. This is an interesting idea. It definitely sounds better than timeout based solutions. I will cook up a patch for this. The API between oom killer and the reaper has to change slightly but that shouldn't be a big deal. Thanks! -- Michal Hocko SUSE Labs
[toc] | [prev] | [next] | [standalone]
| From | Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> |
|---|---|
| Date | 2016-01-08 14:20 +0100 |
| Message-ID | <qOF7r-7eQ-5@gated-at.bofh.it> |
| In reply to | #1304494 |
Michal Hocko wrote: > On Thu 07-01-16 11:28:15, Johannes Weiner wrote: > > On Tue, Dec 29, 2015 at 10:58:22PM +0900, Tetsuo Handa wrote: > > > >From 8bb9e36891a803e82c589ef78077838026ce0f7d Mon Sep 17 00:00:00 2001 > > > From: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> > > > Date: Tue, 29 Dec 2015 22:20:58 +0900 > > > Subject: [PATCH] mm,oom: Exclude TIF_MEMDIE processes from candidates. > > > > > > The OOM reaper kernel thread can reclaim OOM victim's memory before the victim > > > terminates. But since oom_kill_process() tries to kill children of the memory > > > hog process first, the OOM reaper can not reclaim enough memory for terminating > > > the victim if the victim is consuming little memory. The result is OOM livelock > > > as usual, for timeout based next OOM victim selection is not implemented. > > > > What we should be doing is have the OOM reaper clear TIF_MEMDIE after > > it's done. There is no reason to wait for and prioritize the exit of a > > task that doesn't even have memory anymore. Once a task's memory has > > been reaped, subsequent OOM invocations should evaluate anew the most > > desirable OOM victim. > > This is an interesting idea. It definitely sounds better than timeout > based solutions. I will cook up a patch for this. The API between oom > killer and the reaper has to change slightly but that shouldn't be a big > deal. That is part of what I suggested at http://lkml.kernel.org/r/201512052133.IAE00551.LSOQFtMFFVOHOJ@I-love.SAKURA.ne.jp . | What about marking current OOM victim unkillable by updating | victim->signal->oom_score_adj to OOM_SCORE_ADJ_MIN and clearing victim's | TIF_MEMDIE flag when the victim is still alive for a second after | oom_reap_vmas() completed? Can we update victim's oom_score_adj as well? Otherwise, the OOM killer might choose the same victim if victim's oom_score_adj was set to 1000.
[toc] | [prev] | [next] | [standalone]
| From | Michal Hocko <mhocko@kernel.org> |
|---|---|
| Date | 2016-01-08 14:50 +0100 |
| Message-ID | <qOFAu-7qR-7@gated-at.bofh.it> |
| In reply to | #1304520 |
On Fri 08-01-16 22:14:54, Tetsuo Handa wrote: > Michal Hocko wrote: > > On Thu 07-01-16 11:28:15, Johannes Weiner wrote: > > > On Tue, Dec 29, 2015 at 10:58:22PM +0900, Tetsuo Handa wrote: > > > > >From 8bb9e36891a803e82c589ef78077838026ce0f7d Mon Sep 17 00:00:00 2001 > > > > From: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> > > > > Date: Tue, 29 Dec 2015 22:20:58 +0900 > > > > Subject: [PATCH] mm,oom: Exclude TIF_MEMDIE processes from candidates. > > > > > > > > The OOM reaper kernel thread can reclaim OOM victim's memory before the victim > > > > terminates. But since oom_kill_process() tries to kill children of the memory > > > > hog process first, the OOM reaper can not reclaim enough memory for terminating > > > > the victim if the victim is consuming little memory. The result is OOM livelock > > > > as usual, for timeout based next OOM victim selection is not implemented. > > > > > > What we should be doing is have the OOM reaper clear TIF_MEMDIE after > > > it's done. There is no reason to wait for and prioritize the exit of a > > > task that doesn't even have memory anymore. Once a task's memory has > > > been reaped, subsequent OOM invocations should evaluate anew the most > > > desirable OOM victim. > > > > This is an interesting idea. It definitely sounds better than timeout > > based solutions. I will cook up a patch for this. The API between oom > > killer and the reaper has to change slightly but that shouldn't be a big > > deal. > > That is part of what I suggested at > http://lkml.kernel.org/r/201512052133.IAE00551.LSOQFtMFFVOHOJ@I-love.SAKURA.ne.jp . > | What about marking current OOM victim unkillable by updating > | victim->signal->oom_score_adj to OOM_SCORE_ADJ_MIN and clearing victim's > | TIF_MEMDIE flag when the victim is still alive for a second after > | oom_reap_vmas() completed? Sorry, I must have missed this part. I have added your Suggested-by to the patch description. > Can we update victim's oom_score_adj as well? Otherwise, the OOM killer > might choose the same victim if victim's oom_score_adj was set to 1000. Yes I've done that in the patch I am testing ATM. -- Michal Hocko SUSE Labs
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web