[v12,09/10] net/virtio-user: ctrl virtqueue not supported with packed vqs

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

Checks

Context Check Description
ci/Intel-compilation success Compilation OK

Commit Message

Jens Freimann Dec. 13, 2018, 12:34 p.m. UTC
  Until we have support for ctrl virtqueues let's disable it and
exit if specified as a parameter.

Signed-off-by: Jens Freimann <jfreimann@redhat.com>
---
 drivers/net/virtio/virtio_user/virtio_user_dev.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
  

Comments

Maxime Coquelin Dec. 13, 2018, 4:42 p.m. UTC | #1
It seems check-git-log.sh returns an error for this one.

On 12/13/18 1:34 PM, Jens Freimann wrote:
> Until we have support for ctrl virtqueues let's disable it and
> exit if specified as a parameter.
> 
> Signed-off-by: Jens Freimann <jfreimann@redhat.com>
> ---
>   drivers/net/virtio/virtio_user/virtio_user_dev.c | 8 ++++++--
>   1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.c b/drivers/net/virtio/virtio_user/virtio_user_dev.c
> index 697ba4ae8..f9b83c423 100644
> --- a/drivers/net/virtio/virtio_user/virtio_user_dev.c
> +++ b/drivers/net/virtio/virtio_user/virtio_user_dev.c
> @@ -467,10 +467,14 @@ virtio_user_dev_init(struct virtio_user_dev *dev, char *path, int queues,
>   	if (!in_order)
>   		dev->unsupported_features |= (1ull << VIRTIO_F_IN_ORDER);
>   
> -	if (packed_vq)
> +	if (packed_vq) {
> +		if (cq)
> +			rte_exit(EXIT_FAILURE,
> +				"control vq not supported with packed virtqueues\n");

Sorry if I wasn't clear, but you should return -1 and not exit the
application using the DPDK lib.

>   		dev->device_features |= (1ull << VIRTIO_F_RING_PACKED);
> -	else
> +	} else {
>   		dev->device_features &= ~(1ull << VIRTIO_F_RING_PACKED);
> +	}
>   
>   	if (dev->mac_specified) {
>   		dev->device_features |= (1ull << VIRTIO_NET_F_MAC);
>
  
Jens Freimann Dec. 13, 2018, 10:35 p.m. UTC | #2
On Thu, Dec 13, 2018 at 05:42:02PM +0100, Maxime Coquelin wrote:
>It seems check-git-log.sh returns an error for this one.
>
>On 12/13/18 1:34 PM, Jens Freimann wrote:
>>Until we have support for ctrl virtqueues let's disable it and
>>exit if specified as a parameter.
>>
>>Signed-off-by: Jens Freimann <jfreimann@redhat.com>
>>---
>>  drivers/net/virtio/virtio_user/virtio_user_dev.c | 8 ++++++--
>>  1 file changed, 6 insertions(+), 2 deletions(-)
>>
>>diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.c b/drivers/net/virtio/virtio_user/virtio_user_dev.c
>>index 697ba4ae8..f9b83c423 100644
>>--- a/drivers/net/virtio/virtio_user/virtio_user_dev.c
>>+++ b/drivers/net/virtio/virtio_user/virtio_user_dev.c
>>@@ -467,10 +467,14 @@ virtio_user_dev_init(struct virtio_user_dev *dev, char *path, int queues,
>>  	if (!in_order)
>>  		dev->unsupported_features |= (1ull << VIRTIO_F_IN_ORDER);
>>-	if (packed_vq)
>>+	if (packed_vq) {
>>+		if (cq)
>>+			rte_exit(EXIT_FAILURE,
>>+				"control vq not supported with packed virtqueues\n");
>
>Sorry if I wasn't clear, but you should return -1 and not exit the
>application using the DPDK lib.

Ha, I did this first, but then I thought, no that doesn't seem useful because the
notice you get is easy to miss between all the other output and then
you run something that will not really work as expected :) 

But okay, I can change it to return -1.

regards,
Jens
  

Patch

diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.c b/drivers/net/virtio/virtio_user/virtio_user_dev.c
index 697ba4ae8..f9b83c423 100644
--- a/drivers/net/virtio/virtio_user/virtio_user_dev.c
+++ b/drivers/net/virtio/virtio_user/virtio_user_dev.c
@@ -467,10 +467,14 @@  virtio_user_dev_init(struct virtio_user_dev *dev, char *path, int queues,
 	if (!in_order)
 		dev->unsupported_features |= (1ull << VIRTIO_F_IN_ORDER);
 
-	if (packed_vq)
+	if (packed_vq) {
+		if (cq)
+			rte_exit(EXIT_FAILURE,
+				"control vq not supported with packed virtqueues\n");
 		dev->device_features |= (1ull << VIRTIO_F_RING_PACKED);
-	else
+	} else {
 		dev->device_features &= ~(1ull << VIRTIO_F_RING_PACKED);
+	}
 
 	if (dev->mac_specified) {
 		dev->device_features |= (1ull << VIRTIO_NET_F_MAC);