Re: [PATCH 4/5] [RFC][HACK] Add LRU_VOLATILE support to the VM

From: John Stultz
Date: Mon Aug 06 2012 - 16:39:00 EST


On 08/05/2012 08:04 PM, Minchan Kim wrote:
Hi John,

On Fri, Jul 27, 2012 at 11:57:11PM -0400, John Stultz wrote:
In an attempt to push the volatile range managment even
deeper into the VM code, this is my first attempt at
implementing Minchan's idea of a LRU_VOLATILE list in
the mm core.

This list sits along side the LRU_ACTIVE_ANON, _INACTIVE_ANON,
_ACTIVE_FILE, _INACTIVE_FILE and _UNEVICTABLE lru lists.

When a range is marked volatile, the pages in that range
are moved to the LRU_VOLATILE list. Since volatile pages
can be quickly purged, this list is the first list we
shrink when we need to free memory.

When a page is marked non-volatile, it is moved from the
LRU_VOLATILE list to the appropriate LRU_ACTIVE_ list.
I think active list promotion is not good.
It should go to the inactive list and they get a chance to
activate from inactive to active sooner or later if it is
really touched.

Ok. Thanks, I'll change it so we move to the inactive list then.


This patch introduces the LRU_VOLATILE list, an isvolatile
page flag, functions to mark and unmark a single page
as volatile, and shrinker functions to purge volatile
pages.

This is a very raw first pass, and is neither performant
or likely bugfree. It works in my trivial testing, but
I've not pushed it very hard yet.

I wanted to send it out just to get some inital thoughts
on the approach and any suggestions should I be going too
far in the wrong direction.
I look at this series and found several nitpicks about implemenataion
but I think it's not a good stage about concerning it.

Although while I know the design may still need significant change, I'd still appreciate nitpicks, as they might help me better understand the mm code and any mistakes I'm making.


Although naming is rather differet with I suggested, I think it's good idea.
So let's talk about it firstly.
I will call VOLATILE list as EReclaimale LRU list.
Yea, I didn't want to call it ERECLAIMABLE since for this iteration I was limiting the scope just to volatile pages. I'm totally fine renaming it as the scope widens.

thanks
-john

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