On Thu, Jun 26, 2014 at 11:57 PM, Paolo Bonzini <pbonz...@redhat.com> wrote: > This is indeed a difference between the ioq-based and block-based backends. > ioq could submit more than one request with the same io_submit system call. >
Yes, I have been thinking that is advantage of qemu virtio dataplane, but it isn't any longer, and qemu dataplane has not any performance advantage compared with lkvm now. > We can implement (advisory) calls like bdrv_plug/bdrv_unplug in order to > restore the previous levels of performance. Yes, that is also what I am thinking, or interfaces like bdrv_queue_io() and bdrv_submit_io(), which may match with aio interfaces. > > Note that some fallout of the conversion was expected. Dataplane told us > experimentally what level of performance could be reached, but was a dead > end in terms of functionality. Now Stefan added a whole lot of > functionality to dataplane (accounting, throttling, file formats and > protocols, thread-pool based I/O, etc.) and we need to bring back any > performance we lost in the process. These features are very good, but looks the conversion is a bit early, :-( > > Out of curiosity, how does aio=threads (after the patch) fare in comparison > to aio=native (before the patch)? Looks no obvious difference. Thanks, -- Ming Lei