Re: unified page and buffer cache?

From: tytso
Date: Fri May 07 2010 - 20:46:33 EST


On Fri, May 07, 2010 at 11:45:34AM -0400, Phillip Susi wrote:
>
> Back to the drawing board I guess. Maybe ext could be fixed to use an
> inode mapping for directories instead of relying on the block device
> mapping, then I could readahead() the directory instead of having to go
> to the block device at all.

Ext2 does use the page cache for directories. Ext3 and Ext4 access
directories via buffer heads because of the journaling requirement.

In *theory* they could be modified to use the page cache, given that
we can do data journaling for files, and files live in the page cache
--- however, for cases where the PAGE_SIZE > FS_BLOCKSIZE, which will
happen if you are using 1k or 2k block filesystems, or on the Power
Architecture or on the Itanic where the page size is 16k, updates to
the directory will be much less efficient, since we journal changes to
data files on page granularity and not buffer granuality.

Furthermore, someone would have to supply me with the patches; it's
pretty low on my priority list. And people on the Power and ia64
platforms won't be happy....

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