Re: [PATCH 0/3] OOM detection rework v4

From: Vlastimil Babka
Date: Thu Mar 03 2016 - 10:50:24 EST


On 03/03/2016 03:10 PM, Joonsoo Kim wrote:
>
>> [...]
>>>>> At least, reset no_progress_loops when did_some_progress. High
>>>>> order allocation up to PAGE_ALLOC_COSTLY_ORDER is as important
>>>>> as order 0. And, reclaim something would increase probability of
>>>>> compaction success.
>>>>
>>>> This is something I still do not understand. Why would reclaiming
>>>> random order-0 pages help compaction? Could you clarify this please?
>>>
>>> I just can tell simple version. Please check the link from me on another reply.
>>> Compaction could scan more range of memory if we have more freepage.
>>> This is due to algorithm limitation. Anyway, so, reclaiming random
>>> order-0 pages helps compaction.
>>
>> I will have a look at that code but this just doesn't make any sense.
>> The compaction should be reshuffling pages, this shouldn't be a function
>> of free memory.
>
> Please refer the link I mentioned before. There is a reason why more free
> memory would help compaction success. Compaction doesn't work
> like as random reshuffling. It has an algorithm to reduce system overall
> fragmentation so there is limitation.

I proposed another way to get better results from direct compaction -
don't scan for free pages but get them directly from freelists:

https://lkml.org/lkml/2015/12/3/60

But your redesign would be useful too for kcompactd/khugepaged keeping
overall fragmentation low.