patches for DPDK stable branches
 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
Cc: dev@dpdk.org, stable@dpdk.org, Wei Dai <wei.dai@intel.com>
Subject: [dpdk-stable] [PATCH 1/2] app/testpmd: fix invalid rxq number setting
Date: Mon,  8 Jan 2018 21:02:30 +0800	[thread overview]
Message-ID: <1515416551-28636-2-git-send-email-wei.dai@intel.com> (raw)
In-Reply-To: <1515416551-28636-1-git-send-email-wei.dai@intel.com>

If an invalid RX queue is configured from testpmd command
like "port config all rxq number", the global variable rxq
is updated by this invalid value. It may cause testpmd crash.
This patch restores its last correct value when an invalid
rxq 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 |  1 +
 app/test-pmd/testpmd.c | 10 ++++++++--
 app/test-pmd/testpmd.h |  2 ++
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index f71d963..3f3986c 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -1501,6 +1501,7 @@ cmd_config_rx_tx_parsed(void *parsed_result,
 			printf("Warning: Either rx or tx queues should be non zero\n");
 			return;
 		}
+		nb_rxq_bak = nb_rxq;
 		nb_rxq = res->value;
 	}
 	else if (!strcmp(res->name, "txq")) {
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 47e145c..5939c88 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -188,6 +188,8 @@ uint8_t dcb_test = 0;
 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 */
+
 /*
  * Configurable number of RX/TX ring descriptors.
  */
@@ -708,10 +710,14 @@ init_fwd_streams(void)
 		port = &ports[pid];
 		if (nb_rxq > port->dev_info.max_rx_queues) {
 			printf("Fail: nb_rxq(%d) is greater than "
-				"max_rx_queues(%d)\n", nb_rxq,
-				port->dev_info.max_rx_queues);
+				"max_rx_queues(%d), restore to backup "
+				"rxq number(%d)\n", nb_rxq,
+				port->dev_info.max_rx_queues,
+				nb_rxq_bak);
+			nb_rxq = nb_rxq_bak;
 			return -1;
 		}
+		nb_rxq_bak = nb_rxq;
 		if (nb_txq > port->dev_info.max_tx_queues) {
 			printf("Fail: nb_txq(%d) is greater than "
 				"max_tx_queues(%d)\n", nb_txq,
diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
index 4d7f27c..84246f7 100644
--- a/app/test-pmd/testpmd.h
+++ b/app/test-pmd/testpmd.h
@@ -391,6 +391,8 @@ extern uint64_t rss_hf;
 extern queueid_t nb_rxq;
 extern queueid_t nb_txq;
 
+extern queueid_t nb_rxq_bak;
+
 extern uint16_t nb_rxd;
 extern uint16_t nb_txd;
 
-- 
2.7.5

  reply	other threads:[~2018-01-08 13:18 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-08 13:02 [dpdk-stable] [PATCH 0/2] app/testpmd: fix invalid rxq and txq nubmer setting Wei Dai
2018-01-08 13:02 ` Wei Dai [this message]
2018-01-08 20:05   ` [dpdk-stable] [dpdk-dev] [PATCH 1/2] app/testpmd: fix invalid rxq number setting 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-stable] [PATCH 2/2] app/testpmd: fix invalid txq " Wei Dai
2018-01-10  4:14 ` [dpdk-stable] [PATCH v2 0/2] app/testpmd: fix invalid rxq and txq nubmer setting Wei Dai
2018-01-10  4:14   ` [dpdk-stable] [PATCH v2 1/2] app/testpmd: fix invalid rxq number setting Wei Dai
2018-01-10  4:14   ` [dpdk-stable] [PATCH v2 2/2] app/testpmd: fix invalid txq " Wei Dai
2018-01-10  6:37     ` [dpdk-stable] [dpdk-dev] " Yang, Qiming
2018-01-10  8:50       ` Dai, Wei
2018-01-10  8:40   ` [dpdk-stable] [PATCH v3 0/2] app/testpmd: fix invalid rxq and txq nubmer setting Wei Dai
2018-01-10  8:40     ` [dpdk-stable] [PATCH v3 1/2] app/testpmd: fix invalid rxq number setting Wei Dai
2018-01-10  8:40     ` [dpdk-stable] [PATCH v3 2/2] app/testpmd: fix invalid txq " Wei Dai
2018-01-10  9:58     ` [dpdk-stable] [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-stable] [PATCH v4 0/2] app/testpmd: fix invalid rxq and txq nubmer settings Wei Dai
2018-01-11  4:58       ` [dpdk-stable] [PATCH v4 1/2] app/testpmd: fix invalid rxq number setting Wei Dai
2018-01-11  4:58       ` [dpdk-stable] [PATCH v4 2/2] app/testpmd: fix invalid txq " Wei Dai
2018-01-12  5:39       ` [dpdk-stable] [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-stable] [PATCH v5 " Wei Dai
2018-01-12  8:10         ` [dpdk-stable] [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-stable] [PATCH v5 2/2] app/testpmd: fix invalid txq " Wei Dai
2018-01-12  9:12           ` Peng, Yuan
2018-01-12  9:09         ` [dpdk-stable] [PATCH v5 0/2] app/testpmd: fix invalid rxq and txq nubmer settings Peng, Yuan
2018-01-12 11:31         ` [dpdk-stable] [PATCH v6 " Wei Dai
2018-01-12 11:31           ` [dpdk-stable] [PATCH v6 1/2] app/testpmd: fix invalid rxq number setting Wei Dai
2018-01-12 11:31           ` [dpdk-stable] [PATCH v6 2/2] app/testpmd: fix invalid txq " Wei Dai
2018-01-17 14:06           ` [dpdk-stable] [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=1515416551-28636-2-git-send-email-wei.dai@intel.com \
    --to=wei.dai@intel.com \
    --cc=dev@dpdk.org \
    --cc=jingjing.wu@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).