diff mbox series

[v3,02/21] include/hw: document vhost_dev feature life-cycle

Message ID 20220726192150.2435175-3-alex.bennee@linaro.org
State New
Headers show
Series virtio-gpio and various virtio cleanups | expand

Commit Message

Alex Bennée July 26, 2022, 7:21 p.m. UTC
Try and explicitly document the various state of feature bits as
related to the vhost_dev structure. Importantly the backend_features
can advertise things like VHOST_USER_F_PROTOCOL_FEATURES which is
never exposed to the driver and is only present in the vhost-user
feature negotiation.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 include/hw/virtio/vhost.h | 3 +++
 1 file changed, 3 insertions(+)

Comments

Jason Wang July 28, 2022, 6:06 a.m. UTC | #1
在 2022/7/27 03:21, Alex Bennée 写道:
> Try and explicitly document the various state of feature bits as
> related to the vhost_dev structure. Importantly the backend_features
> can advertise things like VHOST_USER_F_PROTOCOL_FEATURES which is
> never exposed to the driver and is only present in the vhost-user
> feature negotiation.
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>


Acked-by: Jason Wang <jasowang@redhat.com>

Maybe it's better to document backend_cap as well which is only used for 
vhost-kernel/vdpa.

And in the future we should try to unify them.

Thanks


> ---
>   include/hw/virtio/vhost.h | 3 +++
>   1 file changed, 3 insertions(+)
>
> diff --git a/include/hw/virtio/vhost.h b/include/hw/virtio/vhost.h
> index a346f23d13..586c5457e2 100644
> --- a/include/hw/virtio/vhost.h
> +++ b/include/hw/virtio/vhost.h
> @@ -86,8 +86,11 @@ struct vhost_dev {
>       /* if non-zero, minimum required value for max_queues */
>       int num_queues;
>       uint64_t features;
> +    /** @acked_features: final set of negotiated features */
>       uint64_t acked_features;
> +    /** @backend_features: backend specific feature bits */
>       uint64_t backend_features;
> +    /** @protocol_features: final negotiated protocol features */
>       uint64_t protocol_features;
>       uint64_t max_queues;
>       uint64_t backend_cap;
Alex Bennée July 28, 2022, 10:34 a.m. UTC | #2
Jason Wang <jasowang@redhat.com> writes:

> 在 2022/7/27 03:21, Alex Bennée 写道:
>> Try and explicitly document the various state of feature bits as
>> related to the vhost_dev structure. Importantly the backend_features
>> can advertise things like VHOST_USER_F_PROTOCOL_FEATURES which is
>> never exposed to the driver and is only present in the vhost-user
>> feature negotiation.
>>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>
>
> Acked-by: Jason Wang <jasowang@redhat.com>
>
> Maybe it's better to document backend_cap as well which is only used
> for vhost-kernel/vdpa.
>
> And in the future we should try to unify them.

I'm fairly sure there is a lot of duplication across the various
vhost_dev, VirtIO, and individual virtio structures. Documenting is a
first step to cleaning that up but ideally we need more coverage to make
sure we aren't inadvertently breaking things when we refactor.

>
> Thanks
>
>
>> ---
>>   include/hw/virtio/vhost.h | 3 +++
>>   1 file changed, 3 insertions(+)
>>
>> diff --git a/include/hw/virtio/vhost.h b/include/hw/virtio/vhost.h
>> index a346f23d13..586c5457e2 100644
>> --- a/include/hw/virtio/vhost.h
>> +++ b/include/hw/virtio/vhost.h
>> @@ -86,8 +86,11 @@ struct vhost_dev {
>>       /* if non-zero, minimum required value for max_queues */
>>       int num_queues;
>>       uint64_t features;
>> +    /** @acked_features: final set of negotiated features */
>>       uint64_t acked_features;
>> +    /** @backend_features: backend specific feature bits */
>>       uint64_t backend_features;
>> +    /** @protocol_features: final negotiated protocol features */
>>       uint64_t protocol_features;
>>       uint64_t max_queues;
>>       uint64_t backend_cap;
diff mbox series

Patch

diff --git a/include/hw/virtio/vhost.h b/include/hw/virtio/vhost.h
index a346f23d13..586c5457e2 100644
--- a/include/hw/virtio/vhost.h
+++ b/include/hw/virtio/vhost.h
@@ -86,8 +86,11 @@  struct vhost_dev {
     /* if non-zero, minimum required value for max_queues */
     int num_queues;
     uint64_t features;
+    /** @acked_features: final set of negotiated features */
     uint64_t acked_features;
+    /** @backend_features: backend specific feature bits */
     uint64_t backend_features;
+    /** @protocol_features: final negotiated protocol features */
     uint64_t protocol_features;
     uint64_t max_queues;
     uint64_t backend_cap;