Re: [PATCH] mm: fix oom work when memory is under pressure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]