[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] vhost-vsock: support parse mergeable feature
From: |
jiangyiwen |
Subject: |
Re: [Qemu-devel] [PATCH] vhost-vsock: support parse mergeable feature |
Date: |
Thu, 13 Dec 2018 11:27:24 +0800 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 |
On 2018/12/12 21:19, Michael S. Tsirkin wrote:
> On Wed, Dec 12, 2018 at 05:54:49PM +0800, jiangyiwen wrote:
>> Currently vhost-vsock doesn't have any feature bits, so it
>> don't support parse mergeable rx buffer feature. And the
>> feature is support in another series of patches named
>> "VSOCK: support mergeable rx buffer in vhost-vsock".
>>
>> So we neet to support parse mergeable feature in vhost-vsock
>> if above patches are merged.
>>
>> Signed-off-by: Yiwen Jiang <address@hidden>
>
> OK but what does it do? this just defines the feature bit ...
> Also pls copy virtio-dev whenever you change the host/guest
> interface.
>
> Thanks!
>
Hi Michael,
In my opinion, for vhost device, device feature bits need to be
intersected between vhost and qemu, so I add mergeable rx buffer feature
into vdev->host_features, and then intersected with vhost_dev features.
Later if someone want to add new feature, it can use virtio_add_feature()
in vhost_vsock_get_features().
Thanks,
Yiwen.
>> ---
>> hw/virtio/vhost-vsock.c | 9 +++++++--
>> include/standard-headers/linux/virtio_vsock.h | 3 +++
>> 2 files changed, 10 insertions(+), 2 deletions(-)
>>
>> diff --git a/hw/virtio/vhost-vsock.c b/hw/virtio/vhost-vsock.c
>> index aa5af92..5023c05 100644
>> --- a/hw/virtio/vhost-vsock.c
>> +++ b/hw/virtio/vhost-vsock.c
>> @@ -178,8 +178,13 @@ static uint64_t vhost_vsock_get_features(VirtIODevice
>> *vdev,
>> uint64_t requested_features,
>> Error **errp)
>> {
>> - /* No feature bits used yet */
>> - return requested_features;
>> + VHostVSock *vsock = VHOST_VSOCK(vdev);
>> + uint64_t features;
>> +
>> + virtio_add_feature(&requested_features, VIRTIO_VSOCK_F_MRG_RXBUF);
>> + features = requested_features & vsock->vhost_dev.features;
>> +
>> + return features;
>> }
>>
>> static void vhost_vsock_handle_output(VirtIODevice *vdev, VirtQueue *vq)
>> diff --git a/include/standard-headers/linux/virtio_vsock.h
>> b/include/standard-headers/linux/virtio_vsock.h
>> index be44321..4c583ec 100644
>> --- a/include/standard-headers/linux/virtio_vsock.h
>> +++ b/include/standard-headers/linux/virtio_vsock.h
>> @@ -38,6 +38,9 @@
>> #include "standard-headers/linux/virtio_ids.h"
>> #include "standard-headers/linux/virtio_config.h"
>>
>> +/* Virtio-vsock feature */
>> +#define VIRTIO_VSOCK_F_MRG_RXBUF 0 /* Host can merge receive buffers. */
>> +
>> struct virtio_vsock_config {
>> uint64_t guest_cid;
>> } QEMU_PACKED;
>> --
>> 1.8.3.1
>>
>
> .
>