All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yuanhan Liu <yuanhan.liu@linux.intel.com>
To: dev@dpdk.org
Cc: Thomas Monjalon <thomas.monjalon@6wind.com>,
	Tan Jianfeng <jianfeng.tan@intel.com>,
	Kevin Traynor <ktraynor@redhat.com>,
	Ilya Maximets <i.maximets@samsung.com>,
	Kyle Larose <klarose@sandvine.com>,
	Maxime Coquelin <maxime.coquelin@redhat.com>
Subject: Re: [PATCH v2 10/10] net/virtio: fix multiple queue enabling
Date: Mon, 7 Nov 2016 17:25:06 +0800	[thread overview]
Message-ID: <20161107092506.GI12283@yliu-dev.sh.intel.com> (raw)
In-Reply-To: <1478338865-26126-11-git-send-email-yuanhan.liu@linux.intel.com>

On Sat, Nov 05, 2016 at 05:41:05PM +0800, Yuanhan Liu wrote:
> When queue number shrinks to 1 from X, the following code stops us
> sending the multiple queue ctrl message:
> 
>         if (nb_queues > 1) {
>                 if (virtio_set_multiple_queues(dev, nb_queues) != 0)
>                         return -EINVAL;
>         }
> 
> This ends up with still X queues being enabled, which is obviously
> wrong. Fix it by removing the check.
> 
> Fixes: 823ad647950a ("virtio: support multiple queues")
> 
> Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>

This breaks the virtio-user case, where ctrl-queue is not enabled by
defeault.

Here is an update patch would fix this.

	--yliu

---
>From 22502943764a99b1398d40f0110f8ce28323323a Mon Sep 17 00:00:00 2001
From: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Date: Sat, 5 Nov 2016 16:53:27 +0800
Subject: [PATCH v3 10/10] net/virtio: fix multiple queue enabling

When queue number shrinks to 1 from X, the following code stops us
sending the multiple queue ctrl message:

        if (nb_queues > 1) {
                if (virtio_set_multiple_queues(dev, nb_queues) != 0)
                        return -EINVAL;
        }

This ends up with still X queues being enabled, which is obviously
wrong. Fix it by replacing the check with a multiple queue enabled
or not check.

Fixes: 823ad647950a ("virtio: support multiple queues")

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
---
v3: - fix the virtio-user case, which is default with ctrl-queue
      being disabled. Thus virtio_set_multiple_queues fails.
---
 drivers/net/virtio/virtio_ethdev.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
index d70bd00..18da98f 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -1472,6 +1472,7 @@ virtio_dev_start(struct rte_eth_dev *dev)
 	uint16_t nb_queues, i;
 	struct virtnet_rx *rxvq;
 	struct virtnet_tx *txvq __rte_unused;
+	struct virtio_hw *hw = dev->data->dev_private;
 
 	/* check if lsc interrupt feature is enabled */
 	if (dev->data->dev_conf.intr_conf.lsc) {
@@ -1494,7 +1495,7 @@ virtio_dev_start(struct rte_eth_dev *dev)
 	 *vhost backend will have no chance to be waked up
 	 */
 	nb_queues = RTE_MAX(dev->data->nb_rx_queues, dev->data->nb_tx_queues);
-	if (nb_queues > 1) {
+	if (hw->max_queue_pairs > 1) {
 		if (virtio_set_multiple_queues(dev, nb_queues) != 0)
 			return -EINVAL;
 	}
-- 
1.9.0

  reply	other threads:[~2016-11-07  9:24 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-03 16:09 [PATCH 0/8] net/virtio: fix queue reconfigure issue Yuanhan Liu
2016-11-03 16:09 ` [PATCH 1/8] net/virtio: revert "virtio: fix restart" Yuanhan Liu
2016-11-03 20:36   ` Maxime Coquelin
2016-11-04  2:00     ` Yuanhan Liu
2016-11-04  8:09       ` Maxime Coquelin
2016-11-04 14:28         ` Yuanhan Liu
2016-11-04  8:10   ` Maxime Coquelin
2016-11-03 16:09 ` [PATCH 2/8] net/virtio: simplify queue memzone name Yuanhan Liu
2016-11-03 20:41   ` Maxime Coquelin
2016-11-03 16:09 ` [PATCH 3/8] net/virtio: simplify queue allocation Yuanhan Liu
2016-11-03 20:48   ` Maxime Coquelin
2016-11-04  1:51     ` Yuanhan Liu
2016-11-03 16:09 ` [PATCH 4/8] net/virtio: allocate queue at init stage Yuanhan Liu
2016-11-03 21:11   ` Maxime Coquelin
2016-11-04  1:50     ` Yuanhan Liu
2016-11-04  8:08       ` Maxime Coquelin
2016-11-04  8:25   ` Maxime Coquelin
2016-11-04 15:21   ` Kevin Traynor
2016-11-04 20:30     ` Kevin Traynor
2016-11-05  6:15       ` Yuanhan Liu
2016-11-03 16:09 ` [PATCH 5/8] net/virtio: initiate vring " Yuanhan Liu
2016-11-04  8:34   ` Maxime Coquelin
2016-11-03 16:09 ` [PATCH 6/8] net/virtio: move queue configure code to proper place Yuanhan Liu
2016-11-04  8:39   ` Maxime Coquelin
2016-11-03 16:09 ` [PATCH 7/8] net/virtio: complete init stage at the right place Yuanhan Liu
2016-11-04  8:44   ` Maxime Coquelin
2016-11-03 16:10 ` [PATCH 8/8] net/virtio: remove started field Yuanhan Liu
2016-11-04  8:46   ` Maxime Coquelin
2016-11-05  9:40 ` [PATCH v2 00/10] net/virtio: fix queue reconfigure issue Yuanhan Liu
2016-11-05  9:40   ` [PATCH v2 01/10] net/virtio: revert fix restart Yuanhan Liu
2016-11-05  9:40   ` [PATCH v2 02/10] net/virtio: simplify queue memzone name Yuanhan Liu
2016-11-05  9:40   ` [PATCH v2 03/10] net/virtio: simplify queue allocation Yuanhan Liu
2016-11-05  9:40   ` [PATCH v2 04/10] net/virtio: allocate queue at init stage Yuanhan Liu
2016-11-07 14:23     ` Thomas Monjalon
2016-11-05  9:41   ` [PATCH v2 05/10] net/virtio: initiate vring " Yuanhan Liu
2016-11-05  9:41   ` [PATCH v2 06/10] net/virtio: move queue configure code to proper place Yuanhan Liu
2016-11-05  9:41   ` [PATCH v2 07/10] net/virtio: complete init stage at the right place Yuanhan Liu
2016-11-05  9:41   ` [PATCH v2 08/10] net/virtio: remove started field Yuanhan Liu
2016-11-05  9:41   ` [PATCH v2 09/10] net/virtio: fix less queues being enabled issue Yuanhan Liu
2016-11-05  9:41   ` [PATCH v2 10/10] net/virtio: fix multiple queue enabling Yuanhan Liu
2016-11-07  9:25     ` Yuanhan Liu [this message]
2016-11-07 14:44   ` [PATCH v2 00/10] net/virtio: fix queue reconfigure issue Thomas Monjalon
2016-11-07 15:05   ` Yao, Lei A

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161107092506.GI12283@yliu-dev.sh.intel.com \
    --to=yuanhan.liu@linux.intel.com \
    --cc=dev@dpdk.org \
    --cc=i.maximets@samsung.com \
    --cc=jianfeng.tan@intel.com \
    --cc=klarose@sandvine.com \
    --cc=ktraynor@redhat.com \
    --cc=maxime.coquelin@redhat.com \
    --cc=thomas.monjalon@6wind.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.