DPDK patches and discussions
 help / color / mirror / Atom feed
From: Wei Dai <wei.dai@intel.com>
To: wenzhuo.lu@intel.com, jingjing.wu@intel.com, yuan.peng@intel.com,
	konstantin.ananyev@intel.com
Cc: dev@dpdk.org, stable@dpdk.org, Wei Dai <wei.dai@intel.com>
Subject: [dpdk-dev] [PATCH v2 2/2] app/testpmd: fix invalid txq number setting
Date: Wed, 10 Jan 2018 12:14:20 +0800	[thread overview]
Message-ID: <1515557660-36763-3-git-send-email-wei.dai@intel.com> (raw)
In-Reply-To: <1515557660-36763-1-git-send-email-wei.dai@intel.com>

If an invalid TX queue is configured from testpmd command
like "port config all txq number", the global variable txq
is updated by this invalid value. It may cause testpmd crash.
This patch restores its last correct value when an invalid
txq number configured is detected.

Fixes: ce8d561418d4 ("app/testpmd: add port configuration settings")
Cc: stable@dpdk.org

Signed-off-by: Wei Dai <wei.dai@intel.com>
---
 app/test-pmd/cmdline.c |  2 ++
 app/test-pmd/testpmd.c | 12 +++++++++---
 app/test-pmd/testpmd.h |  1 +
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index a5a1d57..26dd81a 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -1527,6 +1527,8 @@ cmd_config_rx_tx_parsed(void *parsed_result,
 			printf("Warning: Either rx or tx queues should be non zero\n");
 			return;
 		}
+		/* bakcup last correct nb_txq */
+		nb_txq_bak = nb_txq;
 		nb_txq = res->value;
 	}
 	else if (!strcmp(res->name, "rxd")) {
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index efafc24..8b49d96 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -190,6 +190,7 @@ queueid_t nb_rxq = 1; /**< Number of RX queues per port. */
 queueid_t nb_txq = 1; /**< Number of TX queues per port. */
 
 queueid_t nb_rxq_bak = 1; /**< Backup of last correct number of RX queues */
+queueid_t nb_txq_bak = 1; /**< Backup of last correct number of TX queues */
 
 /*
  * Configurable number of RX/TX ring descriptors.
@@ -721,8 +722,12 @@ init_fwd_streams(void)
 		}
 		if (nb_txq > port->dev_info.max_tx_queues) {
 			printf("Fail: nb_txq(%d) is greater than "
-				"max_tx_queues(%d)\n", nb_txq,
-				port->dev_info.max_tx_queues);
+				"max_tx_queues(%d), restored to backup "
+				"txq number(%d)\n", nb_txq,
+				port->dev_info.max_tx_queues,
+				nb_txq_bak);
+			/* restored to last correct nb_txq */
+			nb_txq = nb_txq_bak;
 			return -1;
 		}
 		if (numa_support) {
@@ -744,8 +749,9 @@ init_fwd_streams(void)
 		}
 	}
 
-	/* backup the correct nb_rxq */
+	/* backup the correct nb_rxq and nb_txq */
 	nb_rxq_bak = nb_rxq;
+	nb_txq_bak = nb_txq;
 
 	q = RTE_MAX(nb_rxq, nb_txq);
 	if (q == 0) {
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
index 6f7932d..bca93c1 100644
--- a/app/test-pmd/testpmd.h
+++ b/app/test-pmd/testpmd.h
@@ -393,6 +393,7 @@ extern queueid_t nb_rxq;
 extern queueid_t nb_txq;
 
 extern queueid_t nb_rxq_bak;
+extern queueid_t nb_txq_bak;
 
 extern uint16_t nb_rxd;
 extern uint16_t nb_txd;
-- 
2.7.5

  parent reply	other threads:[~2018-01-10  4:30 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-08 13:02 [dpdk-dev] [PATCH 0/2] app/testpmd: fix invalid rxq and txq nubmer setting Wei Dai
2018-01-08 13:02 ` [dpdk-dev] [PATCH 1/2] app/testpmd: fix invalid rxq number setting Wei Dai
2018-01-08 20:05   ` Ananyev, Konstantin
2018-01-10  1:33     ` Dai, Wei
2018-01-10  1:54       ` Ananyev, Konstantin
2018-01-10  6:00         ` Dai, Wei
2018-01-08 13:02 ` [dpdk-dev] [PATCH 2/2] app/testpmd: fix invalid txq " Wei Dai
2018-01-10  4:14 ` [dpdk-dev] [PATCH v2 0/2] app/testpmd: fix invalid rxq and txq nubmer setting Wei Dai
2018-01-10  4:14   ` [dpdk-dev] [PATCH v2 1/2] app/testpmd: fix invalid rxq number setting Wei Dai
2018-01-10  4:14   ` Wei Dai [this message]
2018-01-10  6:37     ` [dpdk-dev] [PATCH v2 2/2] app/testpmd: fix invalid txq " Yang, Qiming
2018-01-10  8:50       ` Dai, Wei
2018-01-10  8:40   ` [dpdk-dev] [PATCH v3 0/2] app/testpmd: fix invalid rxq and txq nubmer setting Wei Dai
2018-01-10  8:40     ` [dpdk-dev] [PATCH v3 1/2] app/testpmd: fix invalid rxq number setting Wei Dai
2018-01-10  8:40     ` [dpdk-dev] [PATCH v3 2/2] app/testpmd: fix invalid txq " Wei Dai
2018-01-10  9:58     ` [dpdk-dev] [PATCH v3 0/2] app/testpmd: fix invalid rxq and txq nubmer setting Ananyev, Konstantin
2018-01-11  1:21       ` Dai, Wei
2018-01-11  4:58     ` [dpdk-dev] [PATCH v4 0/2] app/testpmd: fix invalid rxq and txq nubmer settings Wei Dai
2018-01-11  4:58       ` [dpdk-dev] [PATCH v4 1/2] app/testpmd: fix invalid rxq number setting Wei Dai
2018-01-11  4:58       ` [dpdk-dev] [PATCH v4 2/2] app/testpmd: fix invalid txq " Wei Dai
2018-01-12  5:39       ` [dpdk-dev] [PATCH v4 0/2] app/testpmd: fix invalid rxq and txq nubmer settings Peng, Yuan
2018-01-12  6:05         ` Dai, Wei
2018-01-12  8:10       ` [dpdk-dev] [PATCH v5 " Wei Dai
2018-01-12  8:10         ` [dpdk-dev] [PATCH v5 1/2] app/testpmd: fix invalid rxq number setting Wei Dai
2018-01-12  9:09           ` Peng, Yuan
2018-01-12  8:10         ` [dpdk-dev] [PATCH v5 2/2] app/testpmd: fix invalid txq " Wei Dai
2018-01-12  9:12           ` Peng, Yuan
2018-01-12  9:09         ` [dpdk-dev] [PATCH v5 0/2] app/testpmd: fix invalid rxq and txq nubmer settings Peng, Yuan
2018-01-12 11:31         ` [dpdk-dev] [PATCH v6 " Wei Dai
2018-01-12 11:31           ` [dpdk-dev] [PATCH v6 1/2] app/testpmd: fix invalid rxq number setting Wei Dai
2018-01-12 11:31           ` [dpdk-dev] [PATCH v6 2/2] app/testpmd: fix invalid txq " Wei Dai
2018-01-17 14:06           ` [dpdk-dev] [PATCH v6 0/2] app/testpmd: fix invalid rxq and txq nubmer settings Thomas Monjalon

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=1515557660-36763-3-git-send-email-wei.dai@intel.com \
    --to=wei.dai@intel.com \
    --cc=dev@dpdk.org \
    --cc=jingjing.wu@intel.com \
    --cc=konstantin.ananyev@intel.com \
    --cc=stable@dpdk.org \
    --cc=wenzhuo.lu@intel.com \
    --cc=yuan.peng@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).