|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] [patch 0/6] xenblk: Add O_DIRECT and O_SYNC support.
On 5/11/08 13:33, "Jens Axboe" <jens.axboe@xxxxxxxxxx> wrote:
> If you only complete the request once you get a completion in, then
> there's no issue. I thought it did queuing, serves me well for not
> actually having the code handy to look at... There's still some merit to
> Joe's patch, he should have split #2 into two pieces - some of it is
> actually a real bug fix (you must not do bio_alloc() without having
> submitted the previous bio you allocated, and you should use a private
> bioset if you stack). This much is at least visible from just looking at
> the patch!
blkfront can queue multiple requests to blkback, each of which is a
scatter-gather list. Each request is turned into one or more bios by
blkback, and each is individually submit_bio()ed. When ->bi_end_io(0) is
called for all bios corresponding to a request, only then is a response
queued for collection by blkfront.
I wasn't aware of limitations on number of times you can call bio_alloc().
Perhaps we should arrange to submit_bio() more eagerly, rather than batching
up (we plug the queue previously, so there's no need to batch up
submit_bio() calls for scheduling purposes). Would that be better than a
bioset, or is a bioset easier do you think?
> Does blkback propagate unplug events downwards?
Not sure what that means. blkback does its own limited queue plugging to try
to develop usefully schedulable batches of I/O. There's no concept of
plugging across the blkfront/blkback interface.
-- Keir
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|