Thread (31 messages) 31 messages, 7 authors, 2012-11-25

Re: Problem in Page Cache Replacement

From: Jaegeuk Hanse <hidden>
Date: 2012-11-23 02:10:34
Also in: lkml

On 11/22/2012 11:53 PM, Fengguang Wu wrote:
On Thu, Nov 22, 2012 at 11:41:07PM +0800, Fengguang Wu wrote:
quoted
On Wed, Nov 21, 2012 at 12:07:22PM +0200, Metin DA?A?lA 1/4  wrote:
quoted
On Wed, Nov 21, 2012 at 12:00 PM, Jaegeuk Hanse [off-list ref] wrote:
quoted
On 11/21/2012 05:58 PM, metin d wrote:

Hi Fengguang,

I run tests and attached the results. The line below I guess shows the data-1 page caches.

0x000000080000006c       6584051    25718  __RU_lA___________________P________    referenced,uptodate,lru,active,private


I thinks this is just one state of page cache pages.
But why these page caches are in this state as opposed to other page
caches. From the results I conclude that:

data-1 pages are in state : referenced,uptodate,lru,active,private
I wonder if it's this code that stops data-1 pages from being
reclaimed:

shrink_page_list():

                 if (page_has_private(page)) {
                         if (!try_to_release_page(page, sc->gfp_mask))
                                 goto activate_locked;

What's the filesystem used?
Ah it's more likely caused by this logic:

         if (is_active_lru(lru)) {
                 if (inactive_list_is_low(mz, file))
                         shrink_active_list(nr_to_scan, mz, sc, priority, file);

The active file list won't be scanned at all if it's smaller than the
active list. In this case, it's inactive=33586MB > active=25719MB. So
the data-1 pages in the active list will never be scanned and reclaimed.
Hi Fengguang,

It seems that most of data-1 file pages are in active lru cache and most 
of data-2 file pages are in inactive lru cache. As Johannes mentioned, 
if inter-reference distance is bigger than half of memory, the pages 
will not be actived. How you intend to resolve this issue? Is Johannes's 
inactive list threshing idea  available?

Regards,
Jaegeuk
quoted
quoted
data-2 pages are in state : referenced,uptodate,lru,mappedtodisk
Thanks,
Fengguang
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help