Thread (1 message) 1 message, 1 author, 2011-01-24

Re: [PATCH v3 1/5] add metadata_incore ioctl in vfs

From: Boaz Harrosh <hidden>
Date: 2011-01-24 10:06:31
Also in: linux-fsdevel

On 01/20/2011 08:27 AM, Andrew Morton wrote:
Another way of doing all this would be to implement some sort of
lookaside cache at the vfs->block boundary.  At boot time, load that
cache up with all the disk blocks which we know the boot will need (a
single ascending pass across the disk) and then when the vfs/fs goes to
read a disk block take a peek in that cache first and if it's a hit,
either steal the page or memcpy it.
Ha. this sounds very much like the cleancache project presented for
inclusion so many times. It has even visited and left linux-next
a few times. They solved all these problems with a few VFS hooks.
It has the obvious coherence problems which would be pretty simple to
solve by hooking into the block write path as well.  
See cleancache they solved it with a simple VFS hook.
The list of needed
blocks can be very simply generated with existing blktrace
infrastructure.  It does add permanent runtime overhead - once the
cache is invalidated and disabled, every IO operation would incur a
test-n-not-taken-branch.  Maybe not too bad.

Need to handle small-memory systems somehow, where the cache simply
ooms the machine or becomes ineffective because it's causing eviction
elsewhere.

It could perhaps all be implemented as an md or dm driver.

Or even as an IO scheduler.  I say this because IO schedulers can be
replaced on-the-fly, so the caching layer can be unloaded from the
stack once it is finished with.
Or a cleancache driver

Boaz
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help