[dpdk-dev] [PATCH] vhost: maintain separate virtio features field

Maxime Coquelin maxime.coquelin at redhat.com
Wed Mar 28 10:53:45 CEST 2018


Hi Tomasz,

On 03/05/2018 04:49 PM, Tomasz Kulasek wrote:
> There are two separate abstraction layers:
> * vsocket - which represents a unix domain socket
> * virtio_net - which represents a vsocket connection
> 
> There can be many connections on the same socket. vsocket provides an
> API to enable/disable particular virtio features on the fly, but it's
> the virtio_net that uses these features.
> 
> virtio_net used to rely on vsocket->features during feature negotiation,
> breaking the layer encapsulation (and yet causing a deadlock - two locks
> were being locked in a separate order). Now each virtio_net device has
> it's own copy of vsocket features, created at the time of virtio_net
> creation.
> 
> vsocket->features have to be still present, as features can be
> enabled/disabled while no virtio_net device has been created yet.
> 
> Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk at intel.com>
> Signed-off-by: Tomasz Kulasek <tomaszx.kulasek at intel.com>
> ---
>   lib/librte_vhost/socket.c     |  2 +-
>   lib/librte_vhost/vhost.c      |  9 +++++----
>   lib/librte_vhost/vhost.h      |  8 +++++---
>   lib/librte_vhost/vhost_user.c | 33 +++++++++++++++++----------------
>   4 files changed, 28 insertions(+), 24 deletions(-)

Thanks for the patch.
I think it is valid, but I would prefer we create a .backend_features
field to represent the features that the backend supports, and keep
.features for the negotiated features.

Do you agree to re-post with this change?

Thanks,
Maxime


More information about the dev mailing list