[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 00/14] dataplane: optimization and multi virtque
From: |
Ming Lei |
Subject: |
Re: [Qemu-devel] [PATCH 00/14] dataplane: optimization and multi virtqueue support |
Date: |
Mon, 4 Aug 2014 18:45:50 +0800 |
On Mon, Aug 4, 2014 at 6:16 PM, Stefan Hajnoczi <address@hidden> 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,