I'm trying to clarify my picture of how the buffer cache works. I notice that if I do the following:<div><br></div><div>dd if=/dev/sda7 of=/dev/null bs=10k count=100</div><div><br></div><div>The first time will be slow, and the second and subsequent times will be very fast because the data are now in the buffer cache. </div>
<div><br></div><div>However, this is only true if there's a filesystem mounted on the device. This leads me to think of the buffer cache as associated with the filesystem rather than the device. </div><div><br></div>
<div>
For example, would it be possible to create a block driver that does not use the buffer cache? I think the answer must be 'no' because the caching happens before the block driver gets any requests to move data.</div>
<div><br></div><div><br></div>