On Wed, Jul 30, 2014 at 9:45 PM, Paolo Bonzini <pbonz...@redhat.com> wrote: > Il 30/07/2014 13:39, Ming Lei ha scritto: >> This patch introduces several APIs for supporting bypass qemu coroutine >> in case of being not necessary and for performance's sake. > > No, this is wrong. Dataplane *must* use the same code as non-dataplane, > anything else is a step backwards.
As we saw, coroutine has brought up performance regression on dataplane, and it isn't necessary to use co in some cases, is it? > > If you want to bypass coroutines, bdrv_aio_readv/writev must detect the > conditions that allow doing that and call the bdrv_aio_readv/writev > directly. That is easy to detect, please see the 5th patch. > > To begin with, have you benchmarked QEMU and can you provide a trace of > *where* the coroutine overhead lies? I guess it may be caused by the stack switch, at least in one of my box, bypassing co can improve throughput by ~7%, and by ~15% in another box. Thanks,