On Mon 12-09-16 21:42:28, zhong jiang wrote: > On 2016/9/12 19:13, Michal Hocko wrote: > > On Mon 12-09-16 17:51:06, zhong jiang wrote: > > [...] > >> hi, Michal > >> oom reaper indeed can accelerate the recovery of memory, but the patch > >> solve the extreme scenario, I hit it by runing trinity. I think the > >> scenario can happen whether oom reaper or not. > > could you be more specific about the case when the oom reaper and the > > current oom code led to the oom deadlock? > > It is not the oom deadlock. It will lead to hungtask. The explain is > as follows. > > process A occupy a resource and lock it. then A need to allocate > memory when memory is very low. at the some time, oom will come up and > return directly. because it find other process is freeing memory in > same zone. > > however, the freed memory is taken away by another process. > it will lead to A oom again and again. > > process B still wait some resource holded by A. so B will obtain the > lock until A release the resource. therefor, if A spend much time to > obtain memory, B will hungtask. OK, I see what you are aiming for. And indeed such a starvation and resulting priority inversion is possible. It is a hard problem to solve and your patch doesn't address it either. You can spend enough time reclaiming and retrying without ever getting to the oom path to trigger this hungtask warning. If you want to solve this problem properly then you would have to give tasks which are looping in the page allocator access to some portion of memory reserves. This is quite tricky to do right, though. Retry counters with the fail path have been proposed in the past and not accepted. -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>