Re: Ext2 Directory Index - Delete Performance

Daniel Phillips (phillips@nl.linux.org)
Thu, 19 Apr 2001 13:44:03 +0200


> On Wed, 18 Apr 2001, Rik van Riel wrote:
> > One thing we should do is make sure the buffer cache code sets
> > the referenced bit on pages, so we don't recycle buffer cache
> > pages early.
> >
> > This should leave more space for the buffercache and lead to us
> > reclaiming the (now unused) space in the dentry cache instead...
>
> Sorry, but that's just plain wrong. We shouldn't keep inode table in
> buffer-cache at all. And we should be more aggressive on icache -
> dcache looks sane now (recent 2.4.4-pre), but icache holds unused
> inodes for too long. And freeing them is very slow _and_ random -
> recipe for kmem_cache fragmentation.
>
> /me sits down to port inode-table-in-pagecache to 2.4.4-pre4...

The Ext2 inode-table maps nicely to the page cache with the current
page cache interface because it has uniform sized chunks that are accessed one
at a time, and likewise for the group descriptor cache.

*But* the directory code in page cache with your current approach does not
work out nicely with my directory index - it doesn't have page-sized chunks
and access to them is overlapped. This isn't an isolated problem, it's a
problem we've managed to avoid dealing with so far because much of the file
code we have does satisfy your two pre-conditions:

- Data groups naturally into pages
- Access to data items is strictly serial

We need a way of accessing the page cache that doesn't rely on either of
those two assumptions.

--
Daniel
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/