Re: [RFC][PATCH] prevent incorrect oom under split_lru

From: MinChan Kim
Date: Wed Jun 25 2008 - 01:59:40 EST


On Tue, Jun 24, 2008 at 10:28 PM, Rik van Riel <riel@xxxxxxxxxx> wrote:
> On Tue, 24 Jun 2008 17:31:54 +0900
> KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx> wrote:
>
>> if zone->recent_scanned parameter become inbalanceing anon and file,
>> OOM killer can happened although swappable page exist.
>>
>> So, if priority==0, We should try to reclaim all page for prevent OOM.
>
> You are absolutely right. Good catch.

I have a concern about application latency.
If lru list have many pages, it take a very long time to scan pages.
More system have many ram, More many time to scan pages.

Of course I know this is trade-off between memory efficiency VS latency.
But In embedded, some application think latency is more important
thing than memory efficiency.
We need some mechanism to cut off scanning time.


I think Takenori Nagano's "memory reclaim more efficiently patch" is
proper to reduce application latency in this case If we modify some
code.

What do you think about it ?

>> Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx>
>
> Acked-by: Rik van Riel <riel@xxxxxxxxxx>
>
>> ---
>> mm/vmscan.c | 6 ++++--
>> 1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> Index: b/mm/vmscan.c
>> ===================================================================
>> --- a/mm/vmscan.c
>> +++ b/mm/vmscan.c
>> @@ -1464,8 +1464,10 @@ static unsigned long shrink_zone(int pri
>> * kernel will slowly sift through each list.
>> */
>> scan = zone_page_state(zone, NR_LRU_BASE + l);
>> - scan >>= priority;
>> - scan = (scan * percent[file]) / 100;
>> + if (priority) {
>> + scan >>= priority;
>> + scan = (scan * percent[file]) / 100;
>> + }
>> zone->lru[l].nr_scan += scan + 1;
>> nr[l] = zone->lru[l].nr_scan;
>> if (nr[l] >= sc->swap_cluster_max)
>>
>
>
> --
> All rights reversed.
>
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@xxxxxxxxxx For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>
>



--
Kinds regards,
MinChan Kim
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/