linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Marcelo <marcelo.tosatti@cyclades.com>
To: Christopher Friesen <cfriesen@nortel.com>
Cc: linux-kernel@vger.kernel.org,
	Marcelo Tosatti <marcelo.tosatti@cyclades.com.br>,
	"Theodore Ts'o" <tytso@mit.edu>,
	dipankar@in.ibm.com, viro@ftp.linux.org.uk
Subject: Re: dentry_cache using up all my zone normal memory
Date: Sat, 1 Oct 2005 20:22:11 -0300	[thread overview]
Message-ID: <20051001232211.GA21518@xeon.cnet> (raw)
In-Reply-To: <433DB64B.70405@nortel.com>


Hi Chris,

On Fri, Sep 30, 2005 at 04:03:55PM -0600, Christopher Friesen wrote:
> Friesen, Christopher [CAR:VC21:EXCH] wrote:
> 
> >With a bit of digging the culprit appears to be the dentry_cache.  The 
> >last log I have shows it using 817MB of memory.  Right after that the 
> >oom killer kicked me off the system.  When I logged back in, the cache 
> >usage was back down to normal and everything was fine.
> 
> There hasn't been any new suggestions as to the culprit, so I started 
> experimenting a bit.
> 
> It turns out that if I limit the memory on the system to 896MB, the 
> dcache slab usage peaks at around 600MB and sits there for the duration 
> of the test.
>
> When I limit the memory to 1024MB, the dcache slab chews up all my zone 
> normal memory and the oom killer runs.

The different 896 and 1024Mb behaviour looks like a problem. I don't
see how the addition of 128Mb of highmem could interfere here. Probably
because highmem creatures additional pressure on lowmem (certain kernel
allocations can only be satisfied from lowmem, such as dcache).

Seems that your workload makes the allocation paths/OOM killer behave in
a fragile manner.

How can this be reproduced? (point to a URL if you already explained
that in detail).

Another problem is why dentries can't be freed.

> It almost seems like the dcache responds to memory pressure on the 
> system as a whole, but not as well to pressure on zone normal. Would 
> this make sense?

Dentries can only be freed when their reference count reaches zero.

Someone else on the thread said you had zillions of file descriptors
open?

Need to figure out they can't be freed. The kernel is surely trying it
(also a problem if it is not trying). How does the "slabs_scanned" field
of /proc/vmstats looks like?

Bharata maintains a patch to record additional statistics, haven't 
you tried it already? Can find it at

http://marc.theaimsgroup.com/?l=linux-mm&m=112660138015732&w=2

And change:

@@ -427,8 +467,13 @@ static void prune_dcache(int count)
 			continue;
 		}
 		prune_one_dentry(dentry);
+		nr_freed++;
 	}
 	spin_unlock(&dcache_lock);
+	spin_lock(&prune_dcache_lock);
+	lru_dentry_stat.dprune_req = nr_requested;
+	lru_dentry_stat.dprune_freed = nr_freed;
+	spin_unlock(&prune_dcache_lock);

to use "+=" in nr_requested/nr_freed assignments instead
of "=".

Stats available in /proc/meminfo.


  reply	other threads:[~2005-10-01 23:26 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-09-21 16:26 dentry_cache using up all my zone normal memory Christopher Friesen
2005-09-21 16:53 ` Christopher Friesen
2005-09-21 19:46   ` dentry_cache using up all my zone normal memory -- also seen on 2.6.14-rc2 Christopher Friesen
2005-09-21 20:07     ` Sonny Rao
2005-09-21 20:27       ` Christopher Friesen
2005-09-21 20:49       ` Christopher Friesen
2005-09-21 20:59       ` Christopher Friesen
2005-09-21 20:58         ` Sonny Rao
2005-09-21 21:00         ` Dipankar Sarma
2005-09-21 21:14           ` Al Viro
2005-09-21 21:14           ` Trond Myklebust
2005-09-21 21:25             ` Christopher Friesen
2005-09-21 21:29               ` Christopher Friesen
2005-09-21 21:25           ` Christopher Friesen
2005-09-21 22:03             ` Roland Dreier
2005-09-22  3:11               ` Al Viro
2005-09-22  3:54                 ` Christopher Friesen
2005-09-22  4:17                   ` Al Viro
2005-09-22 14:47                     ` Christopher Friesen
2005-09-22 15:16                     ` Christopher Friesen
2005-09-22 18:12                       ` dentry_cache using up all my zone normal memory -- new data point Christopher Friesen
2005-09-22 18:27                       ` dentry_cache using up all my zone normal memory -- also seen on 2.6.14-rc2 Dipankar Sarma
2005-09-22 19:03                         ` Christopher Friesen
2005-09-22 19:18                           ` Dipankar Sarma
2005-09-22 21:37                             ` Christopher Friesen
2005-09-22 21:44                               ` Sonny Rao
2005-09-22 21:55                                 ` Christopher Friesen
2005-09-22 22:04                                   ` Randy.Dunlap
2005-09-26  4:43                                     ` [PATCH/RFC] sysrq: updating console_loglevel Randy.Dunlap
2005-09-22 22:05                             ` dentry_cache using up all my zone normal memory -- also seen on 2.6.14-rc2 Christopher Friesen
2005-10-04 19:43                       ` Dipankar Sarma
2005-10-04 20:02                         ` Christopher Friesen
2005-10-05  4:00                           ` Dipankar Sarma
2005-09-30 22:03 ` dentry_cache using up all my zone normal memory Christopher Friesen
2005-10-01 23:22   ` Marcelo [this message]
2005-10-02  6:04     ` Christopher Friesen
2005-10-02 19:55       ` Marcelo

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=20051001232211.GA21518@xeon.cnet \
    --to=marcelo.tosatti@cyclades.com \
    --cc=cfriesen@nortel.com \
    --cc=dipankar@in.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marcelo.tosatti@cyclades.com.br \
    --cc=tytso@mit.edu \
    --cc=viro@ftp.linux.org.uk \
    /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;
as well as URLs for NNTP newsgroup(s).