[v5,09/11] net/virtio: disable ctrl virtqueue for packed rings

Message ID 20180906181947.20646-10-jfreimann@redhat.com (mailing list archive)
State Superseded, archived
Delegated to: Maxime Coquelin
Headers
Series implement packed virtqueues |

Checks

Context Check Description
ci/Intel-compilation success Compilation OK

Commit Message

Jens Freimann Sept. 6, 2018, 6:19 p.m. UTC
  Signed-off-by: Jens Freiman <jfreimann@redhat.com>
---
 drivers/net/virtio/virtio_ethdev.c | 9 +++++++++
 1 file changed, 9 insertions(+)
  

Comments

Tiwei Bie Sept. 14, 2018, 5:32 a.m. UTC | #1
On Thu, Sep 06, 2018 at 07:19:45PM +0100, Jens Freimann wrote:
> Signed-off-by: Jens Freiman <jfreimann@redhat.com>
> ---
>  drivers/net/virtio/virtio_ethdev.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
> index a2bb726ba..b02c65598 100644
> --- a/drivers/net/virtio/virtio_ethdev.c
> +++ b/drivers/net/virtio/virtio_ethdev.c
> @@ -1161,6 +1161,15 @@ virtio_negotiate_features(struct virtio_hw *hw, uint64_t req_features)
>  			req_features &= ~(1ULL << VIRTIO_NET_F_MTU);
>  	}
>  
> +#ifdef RTE_LIBRTE_VIRTIO_PQ
> +	if (req_features & (1ULL << VIRTIO_F_RING_PACKED)) {
> +		req_features &= ~(1ull << VIRTIO_NET_F_CTRL_MAC_ADDR);
> +		req_features &= ~(1ull << VIRTIO_NET_F_CTRL_VQ);
> +		req_features &= ~(1ull << VIRTIO_NET_F_CTRL_RX);
> +		req_features &= ~(1ull << VIRTIO_NET_F_CTRL_VLAN);
> +	}
> +#endif

I think we need to support ctrl vq.

And in performance test, we need to use more cores on vhost
side to make sure that we can get the max performance of the
virtio PMD. Otherwise, it's likely that the performance gain
we get is the gain in vhost.

> +
>  	/*
>  	 * Negotiate features: Subset of device feature bits are written back
>  	 * guest feature bits.
> -- 
> 2.17.1
>
  
Jens Freimann Sept. 17, 2018, 9:11 a.m. UTC | #2
On Fri, Sep 14, 2018 at 01:32:36PM +0800, Tiwei Bie wrote:
>On Thu, Sep 06, 2018 at 07:19:45PM +0100, Jens Freimann wrote:
>> Signed-off-by: Jens Freiman <jfreimann@redhat.com>
>> ---
>>  drivers/net/virtio/virtio_ethdev.c | 9 +++++++++
>>  1 file changed, 9 insertions(+)
>>
>> diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
>> index a2bb726ba..b02c65598 100644
>> --- a/drivers/net/virtio/virtio_ethdev.c
>> +++ b/drivers/net/virtio/virtio_ethdev.c
>> @@ -1161,6 +1161,15 @@ virtio_negotiate_features(struct virtio_hw *hw, uint64_t req_features)
>>  			req_features &= ~(1ULL << VIRTIO_NET_F_MTU);
>>  	}
>>
>> +#ifdef RTE_LIBRTE_VIRTIO_PQ
>> +	if (req_features & (1ULL << VIRTIO_F_RING_PACKED)) {
>> +		req_features &= ~(1ull << VIRTIO_NET_F_CTRL_MAC_ADDR);
>> +		req_features &= ~(1ull << VIRTIO_NET_F_CTRL_VQ);
>> +		req_features &= ~(1ull << VIRTIO_NET_F_CTRL_RX);
>> +		req_features &= ~(1ull << VIRTIO_NET_F_CTRL_VLAN);
>> +	}
>> +#endif
>
>I think we need to support ctrl vq.

I will add it to the next version.
>
>And in performance test, we need to use more cores on vhost
>side to make sure that we can get the max performance of the
>virtio PMD. Otherwise, it's likely that the performance gain
>we get is the gain in vhost.

ok.

thanks!

regards,
Jens
  

Patch

diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
index a2bb726ba..b02c65598 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -1161,6 +1161,15 @@  virtio_negotiate_features(struct virtio_hw *hw, uint64_t req_features)
 			req_features &= ~(1ULL << VIRTIO_NET_F_MTU);
 	}
 
+#ifdef RTE_LIBRTE_VIRTIO_PQ
+	if (req_features & (1ULL << VIRTIO_F_RING_PACKED)) {
+		req_features &= ~(1ull << VIRTIO_NET_F_CTRL_MAC_ADDR);
+		req_features &= ~(1ull << VIRTIO_NET_F_CTRL_VQ);
+		req_features &= ~(1ull << VIRTIO_NET_F_CTRL_RX);
+		req_features &= ~(1ull << VIRTIO_NET_F_CTRL_VLAN);
+	}
+#endif
+
 	/*
 	 * Negotiate features: Subset of device feature bits are written back
 	 * guest feature bits.