|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] RE: [Xen-users] cache for partition based VBD?
> The block device cache would be efficient in the sense that it's useful
> for every type of file-system, and it's not going to have to be clever
> about what sort of accesses are frequent, not so frequent etc. This
> gives benefit to the "cache at the device level".
>
> On the other hand, a file-system level cache would also make sense.
> Caching directory structurs or file-allocation-table [not necessarily in
> the Microsoft sense] would obviously help a whole lot more than caching
> some block from the middle of a file that isn't ever going to be read
> again. This motivates having a targetted caching mechanism in the
> file-system (VFS) layer.
Linux does caching at the level of blocks on a device and of contiguous pages
within a file by stuffing them both in the page cache. Disk-based
filesystems are able to use a cached interface to block storage (when
appropriate) to access their on disk data structures. Filesystems use the
block-level interface to the page cache to read their own metadata but store
file contents into the page cache in a file-oriented manner.
The VFS manipulates and caches various meta-stuff like inode data generically
(although it has to get this from the filesystem, which in term retrieves
that data from the block layer).
The filesystem is also free to build its own data structures that cache useful
information. For instance, filesystems may choose to store metadata in
privately allocated structures or (sometimes) in parts of the page cache.
There are private pointers in the file and inode structures to facilitate
this.
> A combination would of course make even more sense - cache important
> data structures in the File-system layer, and cache blocks that have
> frequent/recent accesses in the block-device.
Yup.
> > I think that the Linux architecture puts the buffer cache in
> > front of all block device access, not at the VFS layer. So
> > does that answer the question? The dom0 disk backend driver
> > sits "above" the buffer cache? (sorry for my crude
> > understanding)
>
> I would say that this is correct - the Dom0 disk driver would have a
> cache in itself, and the DomU would also have a caching layer. But I'm
> not SURE about this at all.
>
> If someone can make further comments, it would be great.
I'm pretty sure our blkback driver uses a non-caching interface to storage: it
requests stuff directly from the block layer, rather than from the
block-level interface to the page cache. The only way caching gets to happen
in dom0 is if you're using loop devices in which case direct block access is
looped back into the VFS (and therefore the page cache inevitable gets
involved).
Sounds sane?,
Mark
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|