From: Andrea Arcangeli <andrea@suse.de>
To: Alexander Viro <viro@math.psu.edu>
Cc: Linus Torvalds <torvalds@transmeta.com>, linux-kernel@vger.kernel.org
Subject: Re: negative dentries wasting ram
Date: Fri, 24 May 2002 21:43:44 +0200 [thread overview]
Message-ID: <20020524194344.GH15703@dualathlon.random> (raw)
In-Reply-To: <20020524185811.GF15703@dualathlon.random> <Pine.GSO.4.21.0205241502000.9792-100000@weyl.math.psu.edu>
On Fri, May 24, 2002 at 03:04:26PM -0400, Alexander Viro wrote:
>
>
> On Fri, 24 May 2002, Andrea Arcangeli wrote:
>
> > > I might buy that argument if we didn't also leave around _unreferenced_
> > > inodes for minutes in the icache. And _that_ is much stronger source of
> >
> > I don't see it, at the last iput of an inode with i_nlink == 0 the inode
> > is freed immediatly, not like the dcache that is left floating around as
> > a negative one with no useful caching effects for most workloads.
>
> Right. Now look at the inodes with i_nlink != 0. And realize that they'd
> already gone through the aging in dcache - if they get to the point of
> final iput(), they have no references remaining. And _after_ that they
> happily stay in icache for minutes.
and they provide useful cache, they remebers the i_size and everything
else that you need to read from disk the next time a lookup that ends in
such inode happens. It's not a "this dentry doesn't exist" kind of
info after an unlink, so very very unlikely to be ever needed
information. Furthmore there cannot be an huge grow of those inodes see
below.
It's a "I know everything about this valid inode" that is been used in
the past and that may be used in the future, so I feel it's an order of
magnitude more useful information.
And most important if the dentry is collected for not deleted inodes it
means there's mem pressure, so the inode as well will be collected soon,
prune_icache is run right after prune_dcache. So only the very last
inodes will be left there for minutes, and they will belong to the most
hot dentries, so very likely to be required again by a later iget as
soon as the dentry is re-created. It don't see any similarity to the
unlink-dentry-negative issue.
But if you want to change the iput so that the inode is discared at the
last iput that probably won't make much differnce, but I don't see any
benefit. As said until the last prune_icache, most of the inodes are
released anyways after they become unused. But I just don't see a
problem there, because those inodes won't stays there for minutes
prune_icache will collect them, and if the last one stays for minute
it's fine, the dcache aging made sure that if that was the last inode
left hanging around it is more likely to be reused next and if it's
reused we avoid a lowlevel ->read_inode. In short the part about the
inodes destroy procedure looks all right to me.
Andrea
next prev parent reply other threads:[~2002-05-24 19:44 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-05-24 7:16 negative dentries wasting ram Andrea Arcangeli
2002-05-24 8:10 ` Andreas Dilger
2002-05-24 15:36 ` Andrea Arcangeli
2002-05-24 16:12 ` Alexander Viro
2002-05-24 16:21 ` Andrea Arcangeli
2002-05-24 16:24 ` Alexander Viro
2002-05-24 14:43 ` Linus Torvalds
2002-05-24 14:51 ` David S. Miller
2002-05-24 14:53 ` Jakub Jelinek
2002-05-24 20:44 ` David Schwartz
2002-05-25 17:33 ` Florian Weimer
2002-05-24 15:54 ` Andrea Arcangeli
2002-05-24 16:22 ` Alexander Viro
2002-05-24 16:29 ` Linus Torvalds
2002-05-24 16:39 ` Andrea Arcangeli
2002-05-24 17:04 ` Alexander Viro
2002-05-24 17:06 ` Alexander Viro
2002-05-24 17:55 ` Andrea Arcangeli
2002-05-24 18:00 ` Alexander Viro
2002-05-24 18:58 ` Andrea Arcangeli
2002-05-24 19:04 ` Alexander Viro
2002-05-24 19:43 ` Andrea Arcangeli [this message]
2002-05-24 19:55 ` Alexander Viro
2002-05-24 20:36 ` Andrea Arcangeli
2002-05-24 22:14 ` Jan Harkes
2002-05-24 22:31 ` Andrea Arcangeli
2002-05-26 8:06 ` Eric W. Biederman
2002-05-24 17:00 ` Alexander Viro
2002-05-24 18:36 ` Mark Mielke
2002-05-31 8:34 ` Oliver Neukum
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=20020524194344.GH15703@dualathlon.random \
--to=andrea@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@transmeta.com \
--cc=viro@math.psu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox