[dpdk-dev] vhost: fix ANY_LAYOUT declaration

Message ID 1516388570-42634-1-git-send-email-zhihong.wang@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Yuanhan Liu
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail Compilation issues

Commit Message

Zhihong Wang Jan. 19, 2018, 7:02 p.m. UTC
  The VIRTIO_F_ANY_LAYOUT feature indicates the device accepts arbitrary
descriptor layouts. The vhost-user lib already supports it, but the 
feature declaration is missing. This patch fixes the mismatch.

Signed-off-by: Zhihong Wang <zhihong.wang@intel.com>
---
 lib/librte_vhost/vhost.h | 1 +
 1 file changed, 1 insertion(+)
  

Comments

Maxime Coquelin Jan. 19, 2018, 1:43 p.m. UTC | #1
On 01/19/2018 08:02 PM, Zhihong Wang wrote:
> The VIRTIO_F_ANY_LAYOUT feature indicates the device accepts arbitrary
> descriptor layouts. The vhost-user lib already supports it, but the
> feature declaration is missing. This patch fixes the mismatch.
> 
> Signed-off-by: Zhihong Wang <zhihong.wang@intel.com>
> ---
>   lib/librte_vhost/vhost.h | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/lib/librte_vhost/vhost.h b/lib/librte_vhost/vhost.h
> index b2bf0e8..57a9bea 100644
> --- a/lib/librte_vhost/vhost.h
> +++ b/lib/librte_vhost/vhost.h
> @@ -170,6 +170,7 @@ struct vhost_msg {
>   
>   /* Features supported by this builtin vhost-user net driver. */
>   #define VIRTIO_NET_SUPPORTED_FEATURES ((1ULL << VIRTIO_NET_F_MRG_RXBUF) | \
> +				(1ULL << VIRTIO_F_ANY_LAYOUT) | \
>   				(1ULL << VIRTIO_NET_F_CTRL_VQ) | \
>   				(1ULL << VIRTIO_NET_F_CTRL_RX) | \
>   				(1ULL << VIRTIO_NET_F_GUEST_ANNOUNCE) | \
> 

Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>

Thanks,
Maxime
  
Yuanhan Liu Jan. 19, 2018, 2:42 p.m. UTC | #2
On Fri, Jan 19, 2018 at 02:02:50PM -0500, Zhihong Wang wrote:
> The VIRTIO_F_ANY_LAYOUT feature indicates the device accepts arbitrary
> descriptor layouts. The vhost-user lib already supports it, but the 
> feature declaration is missing. This patch fixes the mismatch.

I remembered there was a long discussion one year ago, that we can't
blindly set this feature, as this flag is reserved (thus should not
be set) for virtio 1.0.

We should set it when v1.0 is not enabled. However, as you know,
v1.0 is also enabled by default in DPDK vhost-user.

	--yliu
> 
> Signed-off-by: Zhihong Wang <zhihong.wang@intel.com>
> ---
>  lib/librte_vhost/vhost.h | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/lib/librte_vhost/vhost.h b/lib/librte_vhost/vhost.h
> index b2bf0e8..57a9bea 100644
> --- a/lib/librte_vhost/vhost.h
> +++ b/lib/librte_vhost/vhost.h
> @@ -170,6 +170,7 @@ struct vhost_msg {
>  
>  /* Features supported by this builtin vhost-user net driver. */
>  #define VIRTIO_NET_SUPPORTED_FEATURES ((1ULL << VIRTIO_NET_F_MRG_RXBUF) | \
> +				(1ULL << VIRTIO_F_ANY_LAYOUT) | \
>  				(1ULL << VIRTIO_NET_F_CTRL_VQ) | \
>  				(1ULL << VIRTIO_NET_F_CTRL_RX) | \
>  				(1ULL << VIRTIO_NET_F_GUEST_ANNOUNCE) | \
> -- 
> 2.7.5
  
Jianfeng Tan Jan. 19, 2018, 5:54 p.m. UTC | #3
On 1/19/2018 10:42 PM, Yuanhan Liu wrote:
> On Fri, Jan 19, 2018 at 02:02:50PM -0500, Zhihong Wang wrote:
>> The VIRTIO_F_ANY_LAYOUT feature indicates the device accepts arbitrary
>> descriptor layouts. The vhost-user lib already supports it, but the
>> feature declaration is missing. This patch fixes the mismatch.
> I remembered there was a long discussion one year ago, that we can't
> blindly set this feature, as this flag is reserved (thus should not
> be set) for virtio 1.0.

We might need to read that old thread again. But as you said, this flag 
is reserved for 1.0, but not used for other purpose yet. So that the 
feature is negotiated does not affect anything, no?

>
> We should set it when v1.0 is not enabled.

But in fact, vhost kernel reports supported feature bits consisting of 
ANY_LAYOUT and VERSION_1.

>   However, as you know, v1.0 is also enabled by default in DPDK vhost-user.

Even v1.0 is used, the feature negotiated between virtio-net (kernel) 
and vhost kernel indeed contains ANY_LAYOUT. I suppose we shall do as 
the de-facto way.

Thanks,
Jianfeng

>
> 	--yliu
>> Signed-off-by: Zhihong Wang <zhihong.wang@intel.com>
>> ---
>>   lib/librte_vhost/vhost.h | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/lib/librte_vhost/vhost.h b/lib/librte_vhost/vhost.h
>> index b2bf0e8..57a9bea 100644
>> --- a/lib/librte_vhost/vhost.h
>> +++ b/lib/librte_vhost/vhost.h
>> @@ -170,6 +170,7 @@ struct vhost_msg {
>>   
>>   /* Features supported by this builtin vhost-user net driver. */
>>   #define VIRTIO_NET_SUPPORTED_FEATURES ((1ULL << VIRTIO_NET_F_MRG_RXBUF) | \
>> +				(1ULL << VIRTIO_F_ANY_LAYOUT) | \
>>   				(1ULL << VIRTIO_NET_F_CTRL_VQ) | \
>>   				(1ULL << VIRTIO_NET_F_CTRL_RX) | \
>>   				(1ULL << VIRTIO_NET_F_GUEST_ANNOUNCE) | \
>> -- 
>> 2.7.5
  
Yuanhan Liu Jan. 26, 2018, 1:04 p.m. UTC | #4
On Sat, Jan 20, 2018 at 01:54:52AM +0800, Tan, Jianfeng wrote:
> 
> 
> On 1/19/2018 10:42 PM, Yuanhan Liu wrote:
> >On Fri, Jan 19, 2018 at 02:02:50PM -0500, Zhihong Wang wrote:
> >>The VIRTIO_F_ANY_LAYOUT feature indicates the device accepts arbitrary
> >>descriptor layouts. The vhost-user lib already supports it, but the
> >>feature declaration is missing. This patch fixes the mismatch.
> >I remembered there was a long discussion one year ago, that we can't
> >blindly set this feature, as this flag is reserved (thus should not
> >be set) for virtio 1.0.
> 
> We might need to read that old thread again. But as you said, this flag is
> reserved for 1.0, but not used for other purpose yet. So that the feature is
> negotiated does not affect anything, no?
> 
> >
> >We should set it when v1.0 is not enabled.
> 
> But in fact, vhost kernel reports supported feature bits consisting of
> ANY_LAYOUT and VERSION_1.

Yes, I was aware of that, and that was also one my points before.

I now also release that it's a must from migration from vhost-net to
vhost-user. Thus, I'd like to merge it this time. So

Applied to dpdk-next-virtio.

Thanks.

	--yliu

> 
> >  However, as you know, v1.0 is also enabled by default in DPDK vhost-user.
> 
> Even v1.0 is used, the feature negotiated between virtio-net (kernel) and
> vhost kernel indeed contains ANY_LAYOUT. I suppose we shall do as the
> de-facto way.
> 
> Thanks,
> Jianfeng
> 
> >
> >	--yliu
> >>Signed-off-by: Zhihong Wang <zhihong.wang@intel.com>
> >>---
> >>  lib/librte_vhost/vhost.h | 1 +
> >>  1 file changed, 1 insertion(+)
> >>
> >>diff --git a/lib/librte_vhost/vhost.h b/lib/librte_vhost/vhost.h
> >>index b2bf0e8..57a9bea 100644
> >>--- a/lib/librte_vhost/vhost.h
> >>+++ b/lib/librte_vhost/vhost.h
> >>@@ -170,6 +170,7 @@ struct vhost_msg {
> >>  /* Features supported by this builtin vhost-user net driver. */
> >>  #define VIRTIO_NET_SUPPORTED_FEATURES ((1ULL << VIRTIO_NET_F_MRG_RXBUF) | \
> >>+				(1ULL << VIRTIO_F_ANY_LAYOUT) | \
> >>  				(1ULL << VIRTIO_NET_F_CTRL_VQ) | \
> >>  				(1ULL << VIRTIO_NET_F_CTRL_RX) | \
> >>  				(1ULL << VIRTIO_NET_F_GUEST_ANNOUNCE) | \
> >>-- 
> >>2.7.5
  
Thomas Monjalon Jan. 30, 2018, 8:48 p.m. UTC | #5
Hi,

There is a compilation error on Ubuntu 12.04 / kernel 3.8.
VIRTIO_F_ANY_LAYOUT is undeclared.


26/01/2018 14:04, Yuanhan Liu:
> On Sat, Jan 20, 2018 at 01:54:52AM +0800, Tan, Jianfeng wrote:
> > 
> > 
> > On 1/19/2018 10:42 PM, Yuanhan Liu wrote:
> > >On Fri, Jan 19, 2018 at 02:02:50PM -0500, Zhihong Wang wrote:
> > >>The VIRTIO_F_ANY_LAYOUT feature indicates the device accepts arbitrary
> > >>descriptor layouts. The vhost-user lib already supports it, but the
> > >>feature declaration is missing. This patch fixes the mismatch.
> > >I remembered there was a long discussion one year ago, that we can't
> > >blindly set this feature, as this flag is reserved (thus should not
> > >be set) for virtio 1.0.
> > 
> > We might need to read that old thread again. But as you said, this flag is
> > reserved for 1.0, but not used for other purpose yet. So that the feature is
> > negotiated does not affect anything, no?
> > 
> > >
> > >We should set it when v1.0 is not enabled.
> > 
> > But in fact, vhost kernel reports supported feature bits consisting of
> > ANY_LAYOUT and VERSION_1.
> 
> Yes, I was aware of that, and that was also one my points before.
> 
> I now also release that it's a must from migration from vhost-net to
> vhost-user. Thus, I'd like to merge it this time. So
> 
> Applied to dpdk-next-virtio.
  

Patch

diff --git a/lib/librte_vhost/vhost.h b/lib/librte_vhost/vhost.h
index b2bf0e8..57a9bea 100644
--- a/lib/librte_vhost/vhost.h
+++ b/lib/librte_vhost/vhost.h
@@ -170,6 +170,7 @@  struct vhost_msg {
 
 /* Features supported by this builtin vhost-user net driver. */
 #define VIRTIO_NET_SUPPORTED_FEATURES ((1ULL << VIRTIO_NET_F_MRG_RXBUF) | \
+				(1ULL << VIRTIO_F_ANY_LAYOUT) | \
 				(1ULL << VIRTIO_NET_F_CTRL_VQ) | \
 				(1ULL << VIRTIO_NET_F_CTRL_RX) | \
 				(1ULL << VIRTIO_NET_F_GUEST_ANNOUNCE) | \