[PATCH] libblock: Add read-ahead task
chrisj at rtems.org
Thu May 31 23:09:17 UTC 2012
On 31/05/12 7:23 PM, sebastian.huber at embedded-brains.de wrote:
> From: Sebastian Huber<sebastian.huber at embedded-brains.de>
> Read-ahead requests were previously executed in the context of the
> reading task. This blocks the reading task until the complete read
> with read-ahead transfer is finished. A read-ahead task is introduced
> to off-load the read-ahead transfer. This allows the reading task to
> work with the requested block more quickly. The read-ahead is triggered
> after two misses of ascending consecutive blocks or a read hit of a
> block read by the most-resent read-ahead transfer.
It is not clear to me the gain this change gives us. Do you have any
performance related data that shows the improvement this change gives us ?
The ability of the reader to return quickly on a read call is important
yet the benefit of lowering the overhead to read data is also important.
I can see real performance gains where the driver is DMA and interrupt
driven and SMP would also help here.
I see a more important issue, the ability of the file system to indicate
if read-ahead is suitable. In the case of file system meta data
management the effect of read-ahead is questionable. The same is true
for reading for write. For reading file data the process is speculative
and I wonder if a way to increase the read-ahead based on continued
non-seek reading is something worth looking at. This means read-ahead
control being moved from the cache to the file system maybe worth
More information about the devel