All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Phillips <phillips@arcor.de>
To: William Lee Irwin III <wli@holomorphy.com>
Cc: Andrew Morton <akpm@zip.com.au>,
	Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>,
	Linus Torvalds <torvalds@transmeta.com>,
	Marcelo Tosatti <marcelo@conectiva.com.br>,
	linux-kernel@vger.kernel.org, rmk@arm.linux.org.uk
Subject: Re: [RFC] [PATCH] Include LRU in page count
Date: Sun, 1 Sep 2002 05:36:59 +0200	[thread overview]
Message-ID: <E17lLXo-0004WG-00@starship> (raw)
In-Reply-To: <20020831223044.GC18114@holomorphy.com>

On Sunday 01 September 2002 00:30, William Lee Irwin III wrote:
> On Sat, Aug 31, 2002 at 11:05:02PM +0200, Daniel Phillips wrote:
> > The current patch seems satisfactory performance-wise and if it's
> > also raceless as it's supposed to be, it gives us something that works,
> > and we can evaluate alternatives at our leisure.  Right now I'm afraid
> > we have something that just works most of the time.
> > I think we're getting to the point where this needs to get some heavy
> > beating up, to see what happens.
> 
> It's not going to get much heavier than how I'm beating on it.
> Although it seems my box is mighty bored during 64 simultaneous
> tiobench 256's (i.e. 16384 tasks). I got bored & compiled a kernel:
> 
> make -j64 bzImage  304.60s user 848.70s system 694% cpu 2:46.05 total
> 
> The cpus are 95+% idle except for when I touch /proc/, where the task
> fishing around /proc/ gets stuck spinning hard in the kernel for
> anywhere from 30 minutes to several hours before killing it succeeds.
> It didn't quite finish the run, as the tty deadlock happened again. The
> VM doesn't appear to be oopsing, though I should slap on the OOM fixes.

Is that good or bad?  It sounds like the VM cycle is doing what it's
supposed to.  I've been running lots_of_forks for about 5 hours and
things have reached a steady state with free memory slowly racheting
down 1% then, apparently in a sudden fit of scanning, jumping to 2.5%.
Pretty normal looking behaviour, though I don't much like the way the
free list refill is so sporadic. I can't think of any reason why that is
good.  It doesn't cost a lot of cpu though.  There's been a little bit of
(useless) swapping, so I guess I can consider that path at least somewhat
tested.

Every now and then, instead of free jumping up to 2.5% it jumps up to
over 10%.  I doubt that's my fault.  Even though I'm missing an if
(--nr_pages) at the orphan collection point, there aren't enough orphans
to cause that effect - about 3 million out of 12 billion lru_cache_dels.

The orphans appear during or shortly after the episodes of free list
filling, as you would expect, since page_cache_release fails the trylock
whenever shrink_cache is active.  There are lots of parallel
page_cache_releases going on, but they don't seem to create any 
noticable number of orphans.

I think what's happening normally is this:

   if (page_count(page) == 2 /* no, it's 3 */
   put_page(page);
			     if (page_count(page) == 2 /* now it is */
			             if (PageLRU(page) && page_count(page) == 2)
			                     __lru_cache_del(page);
as opposed to this:

   if (page_count(page) == 2 /* no, it's 3 */
			     if (page_count(page) == 2 /* no, still 3 */
   put_page(page);
			     put_page(page);

which requires hitting a 3 instruction window or on the same page.
It's not going to happen often.

Statm_pte_range looks like it's going to get even more confused about
what constitutes a shared page than it already is.  The solution to
this is to examine the rmap.

-- 
Daniel

  reply	other threads:[~2002-09-01 13:26 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-08-22  2:29 MM patches against 2.5.31 Andrew Morton
2002-08-22  2:29 ` Andrew Morton
2002-08-22 11:28 ` Christian Ehrhardt
2002-08-22 11:28   ` Christian Ehrhardt
2002-08-26  1:52   ` Andrew Morton
2002-08-26  1:52     ` Andrew Morton
2002-08-26  9:10     ` Christian Ehrhardt
2002-08-26  9:10       ` Christian Ehrhardt
2002-08-26 14:22       ` Daniel Phillips
2002-08-26 14:22         ` Daniel Phillips
2002-08-26 15:29         ` Christian Ehrhardt
2002-08-26 15:29           ` Christian Ehrhardt
2002-08-26 17:56           ` Daniel Phillips
2002-08-26 17:56             ` Daniel Phillips
2002-08-26 19:24             ` Andrew Morton
2002-08-26 19:24               ` Andrew Morton
2002-08-26 19:34               ` Daniel Phillips
2002-08-26 19:34                 ` Daniel Phillips
2002-08-26 19:48               ` Christian Ehrhardt
2002-08-26 19:48                 ` Christian Ehrhardt
2002-08-27  9:22               ` Christian Ehrhardt
2002-08-27  9:22                 ` Christian Ehrhardt
2002-08-27 19:19                 ` Andrew Morton
2002-08-27 19:19                   ` Andrew Morton
2002-08-26 20:00             ` Christian Ehrhardt
2002-08-26 20:00               ` Christian Ehrhardt
2002-08-26 20:09               ` Daniel Phillips
2002-08-26 20:09                 ` Daniel Phillips
2002-08-26 20:58                 ` Christian Ehrhardt
2002-08-26 20:58                   ` Christian Ehrhardt
2002-08-27 16:48                   ` Daniel Phillips
2002-08-27 16:48                     ` Daniel Phillips
2002-08-28 13:14                     ` Christian Ehrhardt
2002-08-28 13:14                       ` Christian Ehrhardt
2002-08-28 17:18                       ` Daniel Phillips
2002-08-28 17:18                         ` Daniel Phillips
2002-08-28 17:42                         ` Andrew Morton
2002-08-28 17:42                           ` Andrew Morton
2002-08-28 20:41                       ` Daniel Phillips
2002-08-28 20:41                         ` Daniel Phillips
2002-08-28 21:03                         ` Andrew Morton
2002-08-28 21:03                           ` Andrew Morton
2002-08-28 22:04                           ` Daniel Phillips
2002-08-28 22:04                             ` Daniel Phillips
2002-08-28 22:39                             ` Andrew Morton
2002-08-28 22:39                               ` Andrew Morton
2002-08-28 22:57                               ` Daniel Phillips
2002-08-28 22:57                                 ` Daniel Phillips
2002-08-26 21:31                 ` Andrew Morton
2002-08-26 21:31                   ` Andrew Morton
2002-08-27  3:42                   ` Benjamin LaHaise
2002-08-27  3:42                     ` Benjamin LaHaise
2002-08-27  4:37                     ` Andrew Morton
2002-08-27  4:37                       ` Andrew Morton
2002-08-26 17:58     ` Linus Torvalds
2002-08-26 19:28       ` Rik van Riel
2002-08-30 23:03       ` [RFC] [PATCH] Include LRU in page count Daniel Phillips
2002-08-31 16:14         ` Christian Ehrhardt
2002-08-31 17:54           ` Andrew Morton
2002-08-31 19:47           ` Daniel Phillips
2002-08-31 20:26             ` Andrew Morton
2002-08-31 21:05               ` Daniel Phillips
2002-08-31 22:30                 ` William Lee Irwin III
2002-09-01  3:36                   ` Daniel Phillips [this message]
2002-09-01 21:32               ` Daniel Phillips
2002-09-01 22:09                 ` Andrew Morton
2002-09-01 22:08                   ` Daniel Phillips
2002-09-01 22:20                   ` Daniel Phillips
2002-09-01 23:08                     ` Andrew Morton
2002-09-01 23:19                       ` Daniel Phillips
2002-09-01 23:28                       ` William Lee Irwin III
2002-09-01 23:33                       ` Daniel Phillips
2002-09-02  0:17                         ` Andrew Morton
2002-09-02  0:30                           ` Daniel Phillips
2002-09-02  1:50                             ` Andrew Morton
2002-09-02  1:08                         ` Rik van Riel
2002-09-02 17:23             ` Christian Ehrhardt
2002-09-02 18:01               ` Daniel Phillips
2002-09-05  4:42         ` [RFC] Alternative raceless page free Daniel Phillips
2002-09-05 12:34           ` Christian Ehrhardt
2002-09-05 15:21             ` Daniel Phillips
2002-09-05 16:04               ` Christian Ehrhardt
2002-09-05 16:10                 ` Daniel Phillips
2002-09-05 16:31                 ` Daniel Phillips
2002-09-05 18:06                 ` [RFC] Alternative raceless page free, updated Daniel Phillips
2002-08-22 15:59 ` MM patches against 2.5.31 Steven Cole
2002-08-22 15:59   ` Steven Cole
2002-08-22 16:06   ` Martin J. Bligh
2002-08-22 16:06     ` Martin J. Bligh
2002-08-22 19:45     ` Steven Cole
2002-08-22 19:45       ` Steven Cole
2002-08-26  2:15     ` Andrew Morton
2002-08-26  2:15       ` Andrew Morton
2002-08-26  2:08       ` Martin J. Bligh
2002-08-26  2:08         ` Martin J. Bligh
2002-08-26  2:32         ` Andrew Morton
2002-08-26  2:32           ` Andrew Morton
2002-08-26  3:06           ` Steven Cole
2002-08-26  3:06             ` Steven Cole

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=E17lLXo-0004WG-00@starship \
    --to=phillips@arcor.de \
    --cc=akpm@zip.com.au \
    --cc=ehrhardt@mathematik.uni-ulm.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marcelo@conectiva.com.br \
    --cc=rmk@arm.linux.org.uk \
    --cc=torvalds@transmeta.com \
    --cc=wli@holomorphy.com \
    /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.