On Tue, Feb 06 2001, Ben LaHaise wrote:
> > The whole point of the post was that it is merging, not splitting,
> > which is troublesome. How are you going to merge requests without
> > having chains of scatter-gather entities each with their own
> > completion callbacks?
>
> Let me just emphasize what Stephen is pointing out: if requests are
> properly merged at higher layers, then merging is neither required nor
> desired. Traditionally, ext2 has not done merging because the underlying
> system doesn't support it. This leads to rather convoluted code for
> readahead which doesn't result in appropriately merged requests on
> indirect block boundries, and in fact leads to suboptimal performance.
> The only case I see where merging of requests can improve things is when
> dealing with lots of small files. But we already know that small files
> need to be treated differently (fe tail merging). Besides, most of the
> benefit of merging can be had by doing readaround for these small files.
Stephen already covered this point, the merging is not a problem
to deal with for read-ahead. The underlying system can easily
queue that in nice big chunks. Delayed allocation makes it
easier to to flush big chunks as well. I seem to recall the xfs people
having problems with the lack of merging causing a performance hit
on smaller I/O.
Of course merging doesn't have to happen in ll_rw_blk.
> As for io completion, can't we just issue seperate requests for the
> critical data and the readahead? That way for SCSI disks, the important
> io should be finished while the readahead can continue. Thoughts?
Priorities?
-- Jens Axboe- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Wed Feb 07 2001 - 21:00:24 EST