All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ed Tomlinson <tomlins@cam.org>
To: sfkaplan@cs.amherst.edu, Ed Tomlinson <tomlins@CAM.ORG>
Cc: Rik van Riel <riel@conectiva.com.br>, linux-mm@kvack.org
Subject: Re: Fwd: Re: [PATCH][RFC] appling preasure to icache and dcache
Date: Thu, 5 Apr 2001 07:35:08 -0400	[thread overview]
Message-ID: <01040507350800.00699@oscar> (raw)
In-Reply-To: <Pine.LNX.4.21.0104040825100.803-100000@localhost.localdomain>

On Wednesday 04 April 2001 08:40, sfkaplan@cs.amherst.edu wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hi.  Just a few thoughts that I hope will be useful.
>
> On Tue, 3 Apr 2001, Ed Tomlinson wrote:
> > On Tuesday 03 April 2001 17:35, Rik van Riel wrote:
> > > On Tue, 3 Apr 2001, Ed Tomlinson wrote:
> > > > On Tuesday 03 April 2001 11:03, Benjamin Redelings I wrote:
> > > > > Hi, I'm glad somebody is working on this!  VM-time seems like a
> > > > > pretty useful concept.
>
> The notion of VM time has been kicking around for about 10 years.  I
> picked it up from my graduate advisor, and so it has worked its way
> into a number of research ideas.  This approach to measuring VM time
> is an interesting one, and slightly different from the way in which
> I've approached it.

I am aware that vmtime has been around for a while - just not implemented
in linux.

> > > > Think it might be useful for detecting trashing too.  If vmtime is
> > > > made to directly relate to the page allocation rate then you can do
> > > > something like this.  Let K be a number intially representing 25% of
> > > > ram pages. Because vmtime is directly releated to allocation rates
> > > > its meanful to subtract K from the current vmtime.  For each swapped
> > > > out page, record the current vmtime.  Now if the recorded vmtime of
> > > > the page you are swapping in is greater than vmtime-K increment A
> > > > otherwise increment B. If A>B we are thrashing.  We decay A and B via
> > > > kswapd.  We adjust K depending on the swapping rate.  Thoughts?
>
> A couple of thoughts:
>
> 1) Nit-pick:  You mean "thrashing", not "trashing", right?  Or is
>    there a definition of "trashing" with which I'm not familiar?

Right - spelling is _not_ my forte.

> 2) There's a difference between detecting that the VM system is
>    evicting pages and then using them shortly thereafter, and
>    detecting thrashing.  Your description above may detect the former
>    case -- It's something that AIX did many years ago (or so I'm told
>    by some IBM researchers), and it's a simplified case of what EELRU,
>    an algorithm I was part of developing, detects.  It's a useful
>    case, because it likely indicates a loop-like reference pattern
>    over slightly more memory than is available, forcing LRU to
>    degenerate into FIFO.
>
>    However, it is not necessarily detecting thrashing.  "Heavy paging"
>    and "thrashing" aren't necessarily the same thing.  Thrashing
>    occurs when so much time is spent servicing page faults that the
>    CPU rarely has any work to do (i.e. no ready processes to run.)  It
>    is easily possible to thrash without tripping the detection
>    mechanism that you're describing.

I am very aware that heavy paging, which is ok _if_ you have the bandwidth, 
and thrashing are different.

> 3) Your detection mechanism seems as though it would detect something
>    interesting.  However, I don't understand the response that you
>    describe.  Decaying A and B seems fine, and an important part of
>    accurate detection based on recent behavior.  However, why adjust
>    K?  That doesn't seem to solve the problem.  The process may still
>    continue to reference pages evicted not long ago.  Addressing
>    this case reqires either a larger memory allocation (somehow or
>    other) or a modification of the replacement policy (some non-LRU
>    evictions).  If you adjust K to be smaller, than you're just less
>    likely to trip the detection mechanism.  If you make K larger, it
>    becomes more likely.  You'll still have the same problem.

Wonder what gets detected if you adjust K such that abs(A-B) is small?
if K is near the current vmtime you have a case where EELRU might help.
as K approaches vmtime+physical pages you have thrashing?  Think that,
with some work, these sorts of metrics could be effective in detecting
many cases of thrashing.

> I hope these comments help.  More likely than not, I've misunderstood
> what you're proposing.  If so, please let me know what I've botched.

Comments like these always help (even the spelling <grin>).  

Thanks

Ed Tomlinson <tomlins@cam.org>
--
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.eu.org/Linux-MM/

  reply	other threads:[~2001-04-05 11:35 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-04-03 21:25 Fwd: Re: [PATCH][RFC] appling preasure to icache and dcache Ed Tomlinson
2001-04-03 21:25 ` Ed Tomlinson
2001-04-03 21:35 ` Rik van Riel
2001-04-03 23:50   ` Ed Tomlinson
2001-04-04 12:40     ` sfkaplan
2001-04-05 11:35       ` Ed Tomlinson [this message]
2001-04-05 14:46         ` 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=01040507350800.00699@oscar \
    --to=tomlins@cam.org \
    --cc=linux-mm@kvack.org \
    --cc=riel@conectiva.com.br \
    --cc=sfkaplan@cs.amherst.edu \
    /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.