linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Bob Liu <bob.liu@oracle.com>
To: Rik van Riel <riel@redhat.com>
Cc: Bob Liu <lliubbo@gmail.com>, Minchan Kim <minchan@kernel.org>,
	Luigi Semenzato <semenzato@google.com>,
	Linux-MM <linux-mm@kvack.org>,
	hnaz@cmpxchg.org
Subject: Re: swap, compress, discard: what's in the future?
Date: Thu, 09 Jan 2014 16:18:32 +0800	[thread overview]
Message-ID: <52CE5B58.8080203@oracle.com> (raw)
In-Reply-To: <52CC04DD.3020603@redhat.com>


On 01/07/2014 09:45 PM, Rik van Riel wrote:
> On 01/07/2014 01:33 AM, Bob Liu wrote:
>> On Tue, Jan 7, 2014 at 11:01 AM, Minchan Kim <minchan@kernel.org> wrote:
> 
>>> Your statement makes sense to me but unfortunately, current VM doesn't
>>> consider everything you mentioned.
>>> It is just based on page access recency by approximate LRU logic +
>>> some heuristic(ex, mapped page and VM_EXEC pages are more precious).
>>
>> It seems that the ARC page replacement algorithm in zfs have good
>> performance and more intelligent.
>> http://en.wikipedia.org/wiki/Adaptive_replacement_cache
>> Is there any history reason of linux didn't implement something like
>> ARC as the page cache replacement algorithm?
> 
> ARC by itself was quickly superceded by CLOCK-Pro, which
> looks like it would be even better.
> 
> Johannes introduces an algorithm with similar properties
> in his "thrash based page cache replacement" patch series.
> 

But it seems you and Peter have already implemented CLOCK-Pro and CART
page cache replacement many years ago. Why they were not get merged at
that time?

I found some information from
http://linux-mm.org/AdvancedPageReplacement

Linux implementations:
Rahul Iyer's implementation of CART, RahulIyerCART

Rik van Riel's ClockProApproximation.

Rik van Riel's proposal for the tracking of NonResidentPages, which is
used by both his ClockProApproximation and by Peter Zijlstra's CART and
Clock-pro implementations.

Peter Zijlstra's CART PeterZCart

Peter Zijlstra's Clock-Pro PeterZClockPro2

Thanks,
-Bob

> However, algorithms like ARC and clockpro are best for
> a cache that caches a large data set (much larger than
> the cache size), and has to deal with large inter-reference
> distances.
> 
> For anonymous memory, we are dealing with the opposite:
> the total amount of anonymous memory is on the same
> order of magnitude as the amount of RAM, and the
> inter-reference distance will be smaller as a result.
> 

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

  reply	other threads:[~2014-01-09  8:18 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-07  2:31 Luigi Semenzato
2014-01-07  3:01 ` Minchan Kim
2014-01-07  6:33   ` Bob Liu
2014-01-07  7:13     ` Minchan Kim
2014-01-07 13:45     ` Rik van Riel
2014-01-09  8:18       ` Bob Liu [this message]
2014-01-09 16:41         ` Rik van Riel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52CE5B58.8080203@oracle.com \
    --to=bob.liu@oracle.com \
    --cc=hnaz@cmpxchg.org \
    --cc=linux-mm@kvack.org \
    --cc=lliubbo@gmail.com \
    --cc=minchan@kernel.org \
    --cc=riel@redhat.com \
    --cc=semenzato@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox