From: William Lee Irwin III <wli@holomorphy.com>
To: "liyu@WAN" <liyu@ccoss.com.cn>
Cc: linux-kernel@vger.kernel.org
Subject: Re: one question about LRU mechanism
Date: Tue, 14 Jun 2005 22:25:31 -0700 [thread overview]
Message-ID: <20050615052530.GA3913@holomorphy.com> (raw)
In-Reply-To: <1118812376.32766.4.camel@liyu.ccoss.com.cn>
On Wed, Jun 15, 2005 at 01:12:56PM +0800, liyu@WAN wrote:
> I am reading memory managment code of kernel 2.6.11.11.
> I found LRU is implement as linked-stack in linux, include two important
> data structure linked-list :
> zone->active_list and zone->inactive_list. when kernel need reclaim some
> pages, it will call function refiil_inactive_list() ultimately to move
> some page from active_list to inactive_list.
The "LRU" bits there don't actually describe the homebrew algorithm.
On Wed, Jun 15, 2005 at 01:12:56PM +0800, liyu@WAN wrote:
> It's OK, but I have one question in my mind:
> I found all function that append page to active_list, it just append
> page to head of active_list (use inline function list_add() ), but
> refill_inactive_list() also start scanning from head of active_list, I
> think the better way scan active_list is start from rear of active_list
> and scan though prev member of list_head at reclaim pages. Scanning
> start from head of active_list may make thrashing more possibly, I
> think. and, in my view, "head of active_list" is zone->active_list,
> "rear of active_list" is zone->active_list.prev .
> May be, I am failed understand mm? or what's wrong?
I'm looking at 2.6.12-rc6-mm1.
As far as I can tell new active pages are added to the ->next component
of the head of the active list in lru_cache_add_active() and the ->next
component of the head of the inactive list in lru_cache_add(). Then
isolate_lru_pages() dequeues from ->prev of the head of the inactive
list in shrink_cache() and isolate_lru_pages() dequeues from the ->prev
of the active list in refill_inactive_zone().
-- wli
next prev parent reply other threads:[~2005-06-15 5:25 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-06-15 5:12 one question about LRU mechanism liyu@WAN
2005-06-15 5:25 ` William Lee Irwin III [this message]
2005-06-15 6:46 ` liyu@LAN
2005-06-15 7:29 ` William Lee Irwin III
2005-06-15 7:57 ` Paolo Ornati
2005-06-15 11:29 ` Nikita Danilov
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=20050615052530.GA3913@holomorphy.com \
--to=wli@holomorphy.com \
--cc=linux-kernel@vger.kernel.org \
--cc=liyu@ccoss.com.cn \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.