Messages in this thread | | | Date | Mon, 11 Aug 2014 17:34:39 -0700 | Subject | Re: [Patch] freezer: check OOM kill signal while being frozen | From | Cong Wang <> |
| |
On Mon, Aug 11, 2014 at 6:18 AM, Michal Hocko <mhocko@suse.cz> wrote: > > OK, so the system/memcg is still OOM and a new allocation/charge > would trigger killer again, right? Then oom_scan_process_thread sees > TIF_MEMDIE frozen task and thaw it so it can go away and die. So this > shouldn't be a permanent state. Or am I missing something? >
Good point!
Reading the code again, I think David's commit (f660daac) doesn't work any more, __thaw_task() just checks if it's frozen and then wakes it up, but the frozen task, after waking up, will check if it's freezing() and continue to freeze itself if so. __thaw_task() can't make freezing() return false since it doesn't change any of these conditions, especially cgroup_freezing().
This reminds me I should revert that code in oom_killer, checking TIF_MEMDIE in __refrigerator() is more correct and clear.
I will update my patch.
Thanks!
| |