public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrea Arcangeli <andrea@suse.de>
To: Balbir Singh <balbir@in.ibm.com>
Cc: Niki Hammler <mailinglists@nobaq.net>,
	linux-kernel@vger.kernel.org,
	Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
Subject: Re: Why active list and inactive list?
Date: Tue, 23 Jan 2007 03:13:27 +0100	[thread overview]
Message-ID: <20070123021327.GZ13798@opteron.random> (raw)
In-Reply-To: <45B56575.10807@in.ibm.com>

On Tue, Jan 23, 2007 at 07:01:33AM +0530, Balbir Singh wrote:
> This makes me wonder if it makes sense to split up the LRU into page
> cache LRU and mapped pages LRU. I see two benefits
> 1. Currently based on swappiness, we might walk an entire list
>    searching for page cache pages or mapped pages. With these
>    lists separated, it should get easier and faster to implement
>    this scheme

When I tried that long time ago, I recall I had troubles, but there
wasn't the reclaim_mapped based on static values so it was even
harder. However it would be still a problem today to decide when to
switch from the unmapped to the mapped lru. When reclaim_mapped is
set, you'll still have to shrink some unmapped page, and by splitting
you literally lose age information to save some cpu. Eventually you
risk spending time in trying to free unfreeable pinned pages that sits
in the unmapped list before finally jumping to the mapped list. So
you've to add yet another list to get rid of the pinned stuff in the
unmapped list and I stopped when I had to refile pages from the
"pinned" list to the unmapped list in irq I/O completion context, now
it's all spin_lock_irq so it would be more natural at least...

> 2. There is another parallel thread on implementing page cache
>    limits. If the lists split out, we need not scan the entire
>    list to find page cache pages to evict them.

BTW I'm unsure about the cache limit thread, the overhead of the vm
collection shouldn't be an issue, and those tends to hide vm
inefficiencies.

For example Neil has a patch to reduce the writeback cache to 10M-50M
(much lower than the current 1% minimum) to hide huge unfariness in
the writeback cache. I think they should mount the fs with -o sync
instead of using that patch until the unfariness is fixed or
tunable. The patch itself is fine though but for that problem it only
looks a workaround. So I at least try to be always quite skeptical
when I hear about cache "fixed size limiting" patches that improve
responsiveness or performance ;)

> Of course I might be missing something (some piece of history)

Partly ;) Code was very different back then, today it would be easier
thanks to reclaim_mapped but the partial loss of age information and
potential loss of cpu in a pinned&unmapped walk would probably remain.

  parent reply	other threads:[~2007-01-23  2:12 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-23  0:10 Why active list and inactive list? Niki Hammler
2007-01-23  0:39 ` Andrea Arcangeli
2007-01-23  1:31   ` Balbir Singh
2007-01-23  1:40     ` Christoph Lameter
2007-01-23  1:49       ` Rik van Riel
2007-01-23  2:03         ` Christoph Lameter
2007-01-23  2:17           ` Rik van Riel
2007-01-23  2:44             ` Christoph Lameter
2007-01-23  2:50               ` Rik van Riel
2007-01-23  8:29           ` Peter Zijlstra
2007-01-23 15:02             ` Rik van Riel
2007-01-30 11:01               ` Howard Chu
2007-01-23  3:36         ` Balbir Singh
2007-01-23  3:43           ` Christoph Lameter
2007-01-23  3:51             ` Balbir Singh
2007-01-23  3:18       ` Balbir Singh
2007-01-23  3:28         ` Christoph Lameter
2007-01-23  3:45           ` Balbir Singh
2007-01-23  3:51             ` Christoph Lameter
2007-01-23  1:42     ` Rik van Riel
2007-01-23  2:13     ` Andrea Arcangeli [this message]
2007-01-23  4:17     ` Nick Piggin
2007-01-23  4:34       ` Rik van Riel
2007-01-23  5:51         ` Balbir Singh
2007-01-23  4:46       ` Balbir Singh
     [not found] <7Gpmk-5fN-21@gated-at.bofh.it>
2007-01-30 10:23 ` Howard Chu

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=20070123021327.GZ13798@opteron.random \
    --to=andrea@suse.de \
    --cc=balbir@in.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mailinglists@nobaq.net \
    --cc=svaidy@linux.vnet.ibm.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