Re: [Kiobuf-io-devel] RFC: Kernel mechanism: Compound event wait

Jens Axboe
2001-02-06T18:01:18Z

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