[lkml]   [2010]   [May]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: unified page and buffer cache?
On 5/7/2010 9:53 AM, Matthew Wilcox wrote:
> The problem you're seeing is aliasing in the page cache, not a failed
> unification of the buffer and page caches. Pages are addressed by
> (mapping, offset). Each inode generally has its own mapping. Depending
> on the file system, directories may be addressed by their own inode's
> mapping, or by the block device's mapping.

If there are two mappings that don't know about each other, then the
caches don't seem very unified to me. If I write to the file and that
data sits in the mapping for the inode, then I read the corresponding
blocks though the block device, and it has a different mapping, then I
read the old data off the disk instead of the new data in the cache. I
thought that this exact problem had been fixed long ago.

> Resolving aliasing would be horribly expensive, so it's unlikely to
> happen.

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.

 \ /
  Last update: 2010-05-07 17:49    [W:0.071 / U:10.760 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site