Re: [PATCH] mmtom: Prevent shrinking of active anon lru list in case of no swap space V2

From: Minchan Kim
Date: Thu May 14 2009 - 09:09:22 EST


HI, Rik

Thanks for careful review. :)

On Thu, May 14, 2009 at 9:58 PM, Rik van Riel <riel@xxxxxxxxxx> wrote:
> Minchan Kim wrote:
>
>> Now shrink_active_list is called several places.
>> But if we don't have a swap space, we can't reclaim anon pages.
>
> If swap space has run out, get_scan_ratio() will return
> 0 for the anon scan ratio, meaning we do not scan the
> anon lists.

I think get_scan_ration can't prevent scanning of anon pages in no
swap system(like embedded system).
That's because in shrink_zone, you add following as

/*
* Even if we did not try to evict anon pages at all, we want to
* rebalance the anon lru active/inactive ratio.
*/
if (inactive_anon_is_low(zone, sc))
shrink_active_list(SWAP_CLUSTER_MAX, zone, sc, priority, 0);

>> So, we don't need deactivating anon pages in anon lru list.
>
> If we are close to running out of swap space, with
> swapins freeing up swap space on a regular basis,
> I believe we do want to do aging on the active
> pages, just so we can pick a decent page to swap
> out next time swap space becomes available.

I agree your opinion.

>> +static int can_reclaim_anon(struct zone *zone, struct scan_control *sc)
>> +{
>> + Â Â Â return (inactive_anon_is_low(zone, sc) && nr_swap_pages <= 0);
>> +}
>> +
>
> This function name is misleading, because when we do have
> swap space available but inactive_anon_is_low is false,
> we still want to reclaim inactive anon pages!

Indeed. I will rename it.

> What problem did you encounter that you think this patch
> solves?

I thought In embedded system most products don't have swap space.
In such environment, We don't need anon lru list.
I think even scanning of anon list is much bad


> --
> All rights reversed.
>



--
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/