From: Rik van Riel <riel@redhat.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org
Subject: [RFC PATCH 0/10] split anon and file LRUs
Date: Sat, 3 Nov 2007 18:42:29 -0400 [thread overview]
Message-ID: <20071103184229.3f20e2f0@bree.surriel.com> (raw)
The current page replacement scheme in Linux has a number of problems,
which can be boiled down to:
- Sometimes the kernel evicts the wrong pages, which can result in
bad performance.
- The kernel scans over pages that should not be evicted. On systems
with a few GB of RAM, this can result in the VM using an annoying
amount of CPU. On systems with >128GB of RAM, this can knock the
system out for hours since excess CPU use is compounded with lock
contention and other issues.
This patch series tries to address the issues by splitting the LRU
lists into two sets, one for swap/ram backed pages ("anon") and
one for filesystem backed pages ("file").
The current version only has the infrastructure. Large changes to
the page replacement policy will follow later.
More details can be found on this page:
http://linux-mm.org/PageReplacementDesign
TODO:
- have any mlocked and ramfs pages live off of the LRU list,
so we do not need to scan these pages
- switch to SEQ replacement for the anon LRU lists, so the
worst case number of pages to scan is reduced greatly.
- figure out if the file LRU lists need page replacement
changes to help with worst case scenarios
- implement and benchmark a scalable non-resident page
tracking implementation in the radix tree, this may make
the anon/file balancing algorithm more stable and could
allow for further simplifications in the balancing algorithm
--
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it." - Brian W. Kernighan
--
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>
next reply other threads:[~2007-11-03 22:42 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-03 22:42 Rik van Riel [this message]
2007-11-03 22:54 ` [RFC PATCH 1/10] move isolate_lru_page to vmscan.c Rik van Riel
2007-11-07 2:13 ` Christoph Lameter
2007-11-03 22:54 ` [RFC PATCH 2/10] free swap space entries if vm_swap_full() Rik van Riel
2007-11-07 2:20 ` Christoph Lameter
2007-11-07 2:48 ` Rik van Riel
2007-11-03 22:55 ` [RFC PATCH 3/10] define page_file_cache Rik van Riel
2007-11-07 2:23 ` Christoph Lameter
2007-11-07 2:55 ` Rik van Riel
2007-11-07 3:02 ` Christoph Lameter
2007-11-07 3:17 ` Rik van Riel
2007-11-07 3:26 ` Christoph Lameter
2007-11-07 14:35 ` Rik van Riel
2007-11-07 18:06 ` Christoph Lameter
2007-11-07 18:17 ` Rik van Riel
2007-11-07 18:18 ` Christoph Lameter
2007-11-03 22:55 ` [RFC PATCH 4/10] debug page_file_cache Rik van Riel
2007-11-03 22:56 ` [RFC PATCH 5/10] use an indexed array for LRU lists and variables Rik van Riel
2007-11-03 23:01 ` [RFC PATCH 6/10] split anon and file LRUs Rik van Riel
2007-11-07 2:28 ` Christoph Lameter
2007-11-07 3:00 ` Rik van Riel
2007-11-03 23:02 ` [RFC PATCH 7/10] clean up the LRU array arithmetic Rik van Riel
2007-11-03 23:03 ` [RFC PATCH 8/10] make split VM and lumpy reclaim work together Rik van Riel
2007-11-03 23:04 ` [RFC PATCH 9/10] split VM and memory controllers Rik van Riel
2007-11-03 23:06 ` [RFC PATCH 10/10] add swapped in pages to the inactive list Rik van Riel
2007-11-07 2:11 ` [RFC PATCH 0/10] split anon and file LRUs Christoph Lameter
2007-11-07 2:23 ` Rik van Riel
2007-11-07 2:40 ` Christoph Lameter
2007-11-07 2:51 ` Rik van Riel
2007-11-07 17:59 ` Andrew Morton
2007-11-07 18:16 ` 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=20071103184229.3f20e2f0@bree.surriel.com \
--to=riel@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
/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