[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 14/15] hw/block/virtio-blk: create num_queues vq
From: |
Ming Lei |
Subject: |
Re: [Qemu-devel] [PATCH 14/15] hw/block/virtio-blk: create num_queues vqs if dataplane is enabled |
Date: |
Fri, 1 Aug 2014 11:09:07 +0800 |
On Thu, Jul 31, 2014 at 4:52 PM, Paolo Bonzini <address@hidden> wrote:
> Il 31/07/2014 05:47, Ming Lei ha scritto:
>> On Wed, Jul 30, 2014 at 11:25 PM, Paolo Bonzini <address@hidden> wrote:
>>> Il 30/07/2014 17:12, Michael S. Tsirkin ha scritto:
>>>>>>
>>>>>> Dataplane must not be a change to the guest ABI. If you implement this
>>>>>> feature you have to implement it for both dataplane and non-dataplne.
>>>>>>
>>
>> IMO, no matter if the feature is set or not, both old and new VM
>> can support it well.
>>
>> Per virtio spec, only the feature is set, the VM can be allowed to
>> access the 'num_queues' field, and I didn't see any problem from
>> VM's view point.
>>
>> So could you explain why both dataplane and non-dataplane have
>> to support the feature.
>
> Because otherwise you change the guest ABI.
Sorry, I don't understand why the guest ABI is changed since
VM only parses 'num_queues' iff the feature is set, and the DATAPLANE
macro is determined during compiling.
>
>> I am doing so because there isn't performance advantage to take mq
>> for non-dataplane.
>
> It doesn't matter, changing features between dataplane and non-dataplane
> is not something that you can do.
Actually it is easy to support multi virtqueue for non-dataplane,
and it should be enough to remove two 'ifdef'.
>
>>>> Actually, I think different backends at runtime should be allowed to
>>>> change guest visible ABI. For example if you give qemu a read only
>>>> backend this is guest visible right?
>>>
>>> Dataplane is not meant to be a different backend, it's just moving stuff
>>> out to a separate thread. It's only due to QEMU limitation that it
>>> doesn't share the vring code (and these patches include a lot of steps
>>> backwards where dataplane becomes != non-dataplane).
>>
>> There won't lots of backwards steps, just the bypass co patch, which
>> is just bypassing co in case of being unnecessary for raw image case,
>> but it is still one code path.
>
> Using the object pool for dataplane only is a backwards step,
> implementing multique for dataplane only is a backwards step,
This one isn't since no multique has been tried before for virtio-blk, :-)
> bypassing
> coroutines for dataplane only is a backwards step.
OK, then all these backwards are positive steps too since they
do improve performance, :-)
The only side-effect I thought of is that bypassing coroutine may
cause block layer a bit complicated.
Thanks,
- Re: [Qemu-devel] [PATCH 10/15] linux-aio: increase max event to 256, (continued)
- [Qemu-devel] [PATCH 11/15] linux-aio: remove 'node' from 'struct qemu_laiocb', Ming Lei, 2014/07/30
- [Qemu-devel] [PATCH 12/15] hw/virtio-pci: introduce num_queues property, Ming Lei, 2014/07/30
- [Qemu-devel] [PATCH 13/15] hw/virtio/virtio-blk.h: introduce VIRTIO_BLK_F_MQ, Ming Lei, 2014/07/30
- [Qemu-devel] [PATCH 14/15] hw/block/virtio-blk: create num_queues vqs if dataplane is enabled, Ming Lei, 2014/07/30
- Re: [Qemu-devel] [PATCH 14/15] hw/block/virtio-blk: create num_queues vqs if dataplane is enabled, Paolo Bonzini, 2014/07/30
- Re: [Qemu-devel] [PATCH 14/15] hw/block/virtio-blk: create num_queues vqs if dataplane is enabled, Michael S. Tsirkin, 2014/07/30
- Re: [Qemu-devel] [PATCH 14/15] hw/block/virtio-blk: create num_queues vqs if dataplane is enabled, Paolo Bonzini, 2014/07/30
- Re: [Qemu-devel] [PATCH 14/15] hw/block/virtio-blk: create num_queues vqs if dataplane is enabled, Ming Lei, 2014/07/30
- Re: [Qemu-devel] [PATCH 14/15] hw/block/virtio-blk: create num_queues vqs if dataplane is enabled, Paolo Bonzini, 2014/07/31
- Re: [Qemu-devel] [PATCH 14/15] hw/block/virtio-blk: create num_queues vqs if dataplane is enabled,
Ming Lei <=
- Re: [Qemu-devel] [PATCH 14/15] hw/block/virtio-blk: create num_queues vqs if dataplane is enabled, Ming Lei, 2014/07/31
[Qemu-devel] [PATCH 15/15] dataplane: virtio-blk: support mutlti virtqueue, Ming Lei, 2014/07/30
Re: [Qemu-devel] [PATCH 00/14] dataplane: optimization and multi virtqueue support, Christian Borntraeger, 2014/07/30