mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Balbir Singh <balbir_soni@yahoo.com>
To: Daniel Phillips <phillips@bonn-fries.net>,
	Balbir Singh <balbir.singh@wipro.com>,
	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Cc: balbirs@indiatimes.com, balbir_soni@yahoo.com
Subject: Re: Addendum to Daniel Phillips [RFC] use-once patch
Date: Fri, 27 Jul 2001 07:49:21 -0700 (PDT)	[thread overview]
Message-ID: <20010727144921.607.qmail@web13609.mail.yahoo.com> (raw)
In-Reply-To: <0107271638180F.00285@starship>


--- Daniel Phillips <phillips@bonn-fries.net> wrote:
> On Friday 27 July 2001 11:57, Balbir Singh wrote:
> > Addendum to Daniel Phillips [RFC] use-once patch
> > ------------------------------------------------
> >
> > A while ago, Daniel Phillips, posted his use use
> once patch. I used
> > it and found it useful. I have been thinking of
> something similar.
> > Let me describe what I have been thinking, this is
> in-line with
> > page-aging and the working set model.
> >
> > As per the working set model, we use locality of
> reference, to keep
> > constantly used pages in memory. It is for sure
> that after a period
> > of time, these pages that were being used
> constantly, would no longer
> > be required (since we would be done with that
> piece of code or data).
> > We would like to evict these pages since soon.
> >
> > To illustrate :-
> >
> > I have used a PAGE_MAX_USE principle (my own from
> what I know), which
> > states that most of the pages (**except shared
> pages**), would be
> > used for a maximum of PAGE_MAX_USE (some constant
> > 0). We look at
> > pages that are very frequently used and then after
> some number of
> > times (PAGE_MAX_USE) they have been used, we
> "victimize" them. This
> > may be wrong, since the page may be required for
> more than the number
> > of times (PAGE_MAX_USE), we think it is required.
> In that case, it
> > will be paged back in (when required) and reused
> again for
> > PAGE_MAX_USE times before being victimized again.
> >
> > Below is a small patch for proof of concept
> > -------------------------------------------
> >
> >
> > --- vmscan.c.org        Fri Jul 27 14:27:06 2001
> > +++ vmscan.c    Fri Jul 27 14:32:38 2001
> > @@ -43,10 +43,20 @@
> >
> >         /* Don't look at this pte if it's been
> accessed recently. */
> >         if (ptep_test_and_clear_young(page_table))
> {
> > -               page->age += PAGE_AGE_ADV;
> > -               if (page->age > PAGE_AGE_MAX)
> > -                       page->age = PAGE_AGE_MAX;
> > -               return;
> > +
> > +               /*
> > +                * If the page has been at
> PAGE_AGE_MAX for a while,
> > may be
> > +                * it is the best candidate for
> swapping.
> > +                */
> > +               if ((page->age > PAGE_AGE_MAX) &&
> (page_count(page)
> > <= 1)) {
> > +                       page->age =
> PAGE_AGE_START;
> > +               } else {
> > +                       page->age += PAGE_AGE_ADV;
> > +                       if (page->age >
> PAGE_AGE_MAX) {
> > +                               page->age =
> PAGE_AGE_MAX;
> > +                       }
> > +                       return;
> > +               }
> >         }
> 
> I noticed your good benchmark results below, but I'm
> having some 
> trouble understanding how this works.  How can
> page->age ever become 
> greater than PAGE_AGE_MAX?  Also, I don't see any
> reference to 
> PAGE_MAX_USE.  Comments?

PAGE_MAX_USE is just a constant which I will introduce
if I keep track of the number of times the page has
been used (this is just conceptual for now). You are
right page->age can never be greater than PAGE_AGE_MAX
(its a typo, the code should check for page->age ==
PAGE_AGE_MAX).




> 
> > System Configuration
> > =====================
> >
> > Single processor celeron system with 128 MB of
> RAM, running
> > Linux-2.4.7pre6 with Daniel's patch applied
> (running X windows at the
> > time of compilation, with GNOME).
> >
> > time for creating clean bzImage *before* patch
> > ==============================================
> >
> > real    28m40.492s
> > user    22m43.450s
> > sys     2m44.490s
> >
> >
> > time for creating clean bzImage *after* patch
> > =============================================
> >
> > real    26m37.011s
> > user    21m56.350s
> > sys     2m28.060s
> 
> Bash seems to have a built-in "time" command that
> isn't nearly as 
> useful as the GNU version, which you'd find in
> /usr/bin/time.  The GNU 
> version tells us, among other things, how many swaps
> occured.  Also, 
> check the list for Marcelo's mm statistics patch. 
> I'm not sure what 
> the integration status is on that.
> 

I will use this and get back to you, thanks for
letting me know this. I can probably ask you more
details offline.


> > The system, seemed to respond faster (or I might
> be feeling so).
> >
> > I am also planning to run some standard benchmark
> (I need to figure
> > out, which one, or you could guide me). If you
> like the idea, I will
> > post the benchmark results also to you (soon!).
> This patch is a
> > simple implementation of the idea, I could come
> out with a more
> > comprehensive solution if required.
> 
> I imagine your system is swapping during your kernel
> build due to 
> memory pressure created by gnome and X.  If you show
> the swapping 
> statistics from GNU time maybe we can suggest a more
> predictable way of 
> creating a similar load.  I always run my benchmark
> tests in text mode, 
> by the way, just to try to eliminate some variables
> and get more 
> consistent timing results.
> 
> Did you repeat your timing measurements several
> times, and did you 
> start each test with a clean reboot?
> 

Yes I repeated the tests, but I guess and know there
is more to do.

Thanks for all the advice, will follow this up and
respond with more details

    Balbir


> --
> Daniel


__________________________________________________
Do You Yahoo!?
Make international calls for as low as $.04/minute with Yahoo! Messenger
http://phonecard.yahoo.com/

  reply	other threads:[~2001-07-27 14:49 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-07-27  9:57 Balbir Singh
2001-07-27 14:38 ` Daniel Phillips
2001-07-27 14:49   ` Balbir Singh [this message]
2001-07-28  2:14   ` Steven Walter

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=20010727144921.607.qmail@web13609.mail.yahoo.com \
    --to=balbir_soni@yahoo.com \
    --cc=balbir.singh@wipro.com \
    --cc=balbirs@indiatimes.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=phillips@bonn-fries.net \
    /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

all inboxes | Powered by JetHome®