public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ed Tomlinson <tomlins@cam.org>
To: Craig Kulesa <ckulesa@as.arizona.edu>, linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org
Subject: Re: [PATCH 2/2] move slab pages to the lru, for 2.5.27
Date: Sun, 21 Jul 2002 09:33:01 -0400	[thread overview]
Message-ID: <200207210933.01211.tomlins@cam.org> (raw)
In-Reply-To: <Pine.LNX.4.44.0207210245080.6770-100000@loke.as.arizona.edu>

On July 21, 2002 07:24 am, Craig Kulesa wrote:

> This patch is intermediate between where we were (freeing slab caches
> blindly and not in tune with the rest of the VM), and where we want to be
> (cache pruning by page as we scan the active list looking for cold pages
> to deactivate).  Uhhh, well, I *think* that's where we want to be.  :)
>
> How do we get there?
>
> Given a slab page, I can find out what cachep and slab I'm dealing with
> (via GET_PAGE_SLAB and friends).  If the cache is prunable one,
> cachep->pruner tells me what kind of callback (dcache/inode/dquot) I
> should invoke to prune the page.  No problem.
>
> The trouble comes when we try to replace shrink_dcache_memory() and
> friends with slab-aware pruners.  Namely, how to teach those
> inode/dcache/dquot callbacks to free objects belonging to a *specified*
> page or slab?  If I have a dentry slab, I'd like to try to liberate
> *those* dentries, not some random ones like shrink_dcache_memory does now.

Well not quite random.  It prunes the oldest entries.  The idea behind the prunable
callback is that some caches have specific aging methods.   What I tried to do here
was keep the rate of aging in sync with the VM.  

> I'm still trying to figure out how to make that work.  Or is that
> totally the wrong approach?  Thoughts?  ;)

Thats a question I have asked myself too.  What could be done is,  scan the 
entries in the slab encountered, using a call back, free them if they are purgeable.
If this ends up producing an empty slab, release it.

>Intermezzo has a funky dentry cache that may need a pruner method (??), 
>but I didn't touch it.  If there was a better way to do this, I was too 
>blind to see it.  

Looking at the Intermezzo dcache code, I think you made the right choise.
I do not think this needs a pruner method.

Ed Tomlinson




  reply	other threads:[~2002-07-21 13:30 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-07-21 11:24 [PATCH 2/2] move slab pages to the lru, for 2.5.27 Craig Kulesa
2002-07-21 13:33 ` Ed Tomlinson [this message]
2002-07-21 21:24   ` Craig Kulesa
2002-07-21 23:15     ` Ed Tomlinson
2002-07-21 21:31 ` William Lee Irwin III
2002-07-22  7:08   ` Craig Kulesa
2002-07-22 18:54 ` Steven Cole
2002-07-22 22:17   ` Ed Tomlinson
2002-07-22 22:21   ` William Lee Irwin III
2002-07-22 22:36     ` Craig Kulesa
2002-07-23  0:21       ` Ed Tomlinson
2002-07-23  4:36       ` William Lee Irwin III
2002-07-23 11:45         ` Ed Tomlinson
2002-07-23 14:31       ` Steven Cole
2002-07-24 20:28         ` Steven Cole
2002-07-24 21:02           ` Steven Cole
  -- strict thread matches above, loose matches on Subject: below --
2002-07-25  0:12 Ed Tomlinson
2002-07-25 12:00 ` Craig Kulesa

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=200207210933.01211.tomlins@cam.org \
    --to=tomlins@cam.org \
    --cc=ckulesa@as.arizona.edu \
    --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