On Mon, Aug 4, 2014 at 6:16 PM, Stefan Hajnoczi <stefa...@redhat.com> wrote:
> On Wed, Jul 30, 2014 at 07:39:33PM +0800, Ming Lei wrote:
>> These patches bring up below 4 changes:
>>
>>         - introduce selective coroutine bypass mechanism
>>         for improving performance of virtio-blk dataplane with
>>         raw format image
>>
>>         - introduce object allocation pool and apply it to
>>         virtio-blk dataplane for improving its performance
>>
>>         - linux-aio changes: fixing for cases of -EAGAIN and partial
>>         completion, increase max events to 256, and remove one unuseful
>>         fields in 'struct qemu_laiocb'
>>
>>         - support multi virtqueue for virtio-blk dataplane
>
> Please split this series into separate series.
>
> Patch 1-5 - block layer coroutine bypass
>
>   These patches are hacky and not correct yet (e.g. you cannot enable
>   bypass on a per-AioContext basis since multiple devices can share an
>   IOThread's AioContext and some of them might not be raw, you are

Good point, so the 'bypass' info should be moved to BlockDriverState.

>   invoking acb's cb() directly instead of via a BH so there may be
>   reentrancy).

Yes, as Paolo pointed too, I will change to run acb's cb() via a BH
in v1 patchset.

>
>   It would be great if cleaning up the block.c aio->co emulation layers
>   could improve performance.

That is a good idea too.

But from current profiling, coroutine is surely one of main causes for
the performance regression.

Thanks,

Reply via email to