Re: [PATCH 3/3] Provide control over unmapped pages (v4)

From: Minchan Kim
Date: Thu Feb 10 2011 - 00:33:08 EST


Sorry for late response.

On Fri, Jan 28, 2011 at 8:18 PM, Balbir Singh <balbir@xxxxxxxxxxxxxxxxxx> wrote:
> * MinChan Kim <minchan.kim@xxxxxxxxx> [2011-01-28 16:24:19]:
>
>> >
>> > But the assumption for LRU order to change happens only if the page
>> > cannot be successfully freed, which means it is in some way active..
>> > and needs to be moved no?
>>
>> 1. holded page by someone
>> 2. mapped pages
>> 3. active pages
>>
>> 1 is rare so it isn't the problem.
>> Of course, in case of 3, we have to activate it so no problem.
>> The problem is 2.
>>
>
> 2 is a problem, but due to the size aspects not a big one. Like you
> said even lumpy reclaim affects it. May be the reclaim code could
> honour may_unmap much earlier.

Even if it is, it's a trade-off to get a big contiguous memory. I
don't want to add new mess. (In addition, lumpy is weak by compaction
as time goes by)
What I have in mind for preventing LRU ignore is that put the page
into original position instead of head of lru. Maybe it can help the
situation both lumpy and your case. But it's another story.

How about the idea?

I borrow the idea from CFLRU[1]
- PCFLRU(Page-Cache First LRU)

When we allocates new page for page cache, we adds the page into LRU's tail.
When we map the page cache into page table, we rotate the page into LRU's head.

So, inactive list's result is following as.

M.P : mapped page
N.P : none-mapped page

HEAD-M.P-M.P-M.P-M.P-N.P-N.P-N.P-N.P-N.P-TAIL

Admin can set threshold window size which determines stop reclaiming
none-mapped page contiguously.

I think it needs some tweak of page cache/page mapping functions but
we can use kswapd/direct reclaim without change.

Also, it can change page reclaim policy totally but it's just what you
want, I think.

[1] http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.100.6188&rep=rep1&type=pdf

>
> --
> Â Â Â ÂThree Cheers,
> Â Â Â ÂBalbir
>



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