DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 0/3] testpmd updates
@ 2021-03-05  0:55 Lijun Ou
  2021-03-05  0:55 ` [dpdk-dev] [PATCH 1/3] app/testpmd: support Tx mbuf free on demand cmd Lijun Ou
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Lijun Ou @ 2021-03-05  0:55 UTC (permalink / raw)
  To: ferruh.yigit; +Cc: dev, linuxarm

This series add a API implementation for testpmd as
well as fix two bugs.

Chengwen Feng (1):
  app/testpmd: support Tx mbuf free on demand cmd

Hongbo Zheng (1):
  app/testpmd: fix mixed use of RX/Rx/TX/Tx in testpmd

Huisong Li (1):
  app/testpmd: remove forwarding config from parsing Rx and Tx

 app/test-pmd/cmdline.c                      | 93 ++++++++++++++++++++++++++++-
 app/test-pmd/config.c                       | 18 +++---
 doc/guides/rel_notes/release_21_05.rst      |  2 +
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |  7 +++
 4 files changed, 109 insertions(+), 11 deletions(-)

-- 
2.7.4


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dpdk-dev] [PATCH 1/3] app/testpmd: support Tx mbuf free on demand cmd
  2021-03-05  0:55 [dpdk-dev] [PATCH 0/3] testpmd updates Lijun Ou
@ 2021-03-05  0:55 ` Lijun Ou
  2021-03-05  0:55 ` [dpdk-dev] [PATCH 2/3] app/testpmd: remove forwarding config from parsing Rx and Tx Lijun Ou
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 10+ messages in thread
From: Lijun Ou @ 2021-03-05  0:55 UTC (permalink / raw)
  To: ferruh.yigit; +Cc: dev, linuxarm

From: Chengwen Feng <fengchengwen@huawei.com>

This patch support tx_done_cleanup command:
tx_done_cleanup port (port_id) (queue_id) (free_cnt)

User must make sure there are no concurrent access to the same Tx
queue (like rte_eth_tx_burst, rte_eth_dev_tx_queue_stop and so on)
when this command executed.

Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Signed-off-by: Lijun Ou <oulijun@huawei.com>
---
 app/test-pmd/cmdline.c                      | 91 +++++++++++++++++++++++++++++
 doc/guides/rel_notes/release_21_05.rst      |  2 +
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |  7 +++
 3 files changed, 100 insertions(+)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 14110eb..832ae70 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -36,6 +36,7 @@
 #include <rte_pci.h>
 #include <rte_ether.h>
 #include <rte_ethdev.h>
+#include <rte_ethdev_driver.h>
 #include <rte_string_fns.h>
 #include <rte_devargs.h>
 #include <rte_flow.h>
@@ -675,6 +676,9 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"set port (port_id) ptype_mask (ptype_mask)\n"
 			"    set packet types classification for a specific port\n\n"
 
+			"tx_done_cleanup (port_id) (queue_id) (free_cnt)\n"
+			"    Cleanup a tx queue's mbuf on a port\n\n"
+
 			"set port (port_id) queue-region region_id (value) "
 			"queue_start_index (value) queue_num (value)\n"
 			"    Set a queue region on a port\n\n"
@@ -16910,6 +16914,92 @@ cmdline_parse_inst_t cmd_showport_macs = {
 	},
 };
 
+/* *** tx_done_cleanup *** */
+struct cmd_tx_done_cleanup_result {
+	cmdline_fixed_string_t clean;
+	cmdline_fixed_string_t port;
+	uint16_t port_id;
+	uint16_t queue_id;
+	uint32_t free_cnt;
+};
+
+static void
+cmd_tx_done_cleanup_parsed(void *parsed_result,
+			   __rte_unused struct cmdline *cl,
+			   __rte_unused void *data)
+{
+	struct cmd_tx_done_cleanup_result *res = parsed_result;
+	struct rte_eth_dev *dev;
+	uint16_t port_id = res->port_id;
+	uint16_t queue_id = res->queue_id;
+	uint32_t free_cnt = res->free_cnt;
+	int ret;
+
+	if (!rte_eth_dev_is_valid_port(port_id)) {
+		printf("Invalid port_id %u\n", port_id);
+		return;
+	}
+
+	dev = &rte_eth_devices[port_id];
+	if (queue_id >= dev->data->nb_tx_queues) {
+		printf("Invalid TX queue_id %u\n", queue_id);
+		return;
+	}
+
+	if (dev->data->tx_queue_state[queue_id] !=
+		RTE_ETH_QUEUE_STATE_STARTED) {
+		printf("TX queue_id %u not started!\n", queue_id);
+		return;
+	}
+
+	/*
+	 * rte_eth_tx_done_cleanup is a dataplane API, user must make sure
+	 * there are no concurrent access to the same Tx queue (like
+	 * rte_eth_tx_burst, rte_eth_dev_tx_queue_stop and so on) when this API
+	 * called.
+	 */
+	ret = rte_eth_tx_done_cleanup(port_id, queue_id, free_cnt);
+	if (ret < 0) {
+		printf("Failed to cleanup mbuf for port %u TX queue %u "
+		       "error desc: %s(%d)\n",
+		       port_id, queue_id, strerror(-ret), ret);
+		return;
+	}
+
+	printf("Cleanup port %u TX queue %u mbuf nums: %u\n",
+	       port_id, queue_id, ret);
+}
+
+cmdline_parse_token_string_t cmd_tx_done_cleanup_clean =
+	TOKEN_STRING_INITIALIZER(struct cmd_tx_done_cleanup_result, clean,
+				 "tx_done_cleanup");
+cmdline_parse_token_string_t cmd_tx_done_cleanup_port =
+	TOKEN_STRING_INITIALIZER(struct cmd_tx_done_cleanup_result, port,
+				 "port");
+cmdline_parse_token_num_t cmd_tx_done_cleanup_port_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_tx_done_cleanup_result, port_id,
+			      UINT16);
+cmdline_parse_token_num_t cmd_tx_done_cleanup_queue_id =
+	TOKEN_NUM_INITIALIZER(struct cmd_tx_done_cleanup_result, queue_id,
+			      UINT16);
+cmdline_parse_token_num_t cmd_tx_done_cleanup_free_cnt =
+	TOKEN_NUM_INITIALIZER(struct cmd_tx_done_cleanup_result, free_cnt,
+			      UINT32);
+
+cmdline_parse_inst_t cmd_tx_done_cleanup = {
+	.f = cmd_tx_done_cleanup_parsed,
+	.data = NULL,
+	.help_str = "tx_done_cleanup port <port_id> <queue_id> <free_cnt>",
+	.tokens = {
+		(void *)&cmd_tx_done_cleanup_clean,
+		(void *)&cmd_tx_done_cleanup_port,
+		(void *)&cmd_tx_done_cleanup_port_id,
+		(void *)&cmd_tx_done_cleanup_queue_id,
+		(void *)&cmd_tx_done_cleanup_free_cnt,
+		NULL,
+	},
+};
+
 /* ******************************************************************************** */
 
 /* list of instructions */
@@ -17035,6 +17125,7 @@ cmdline_parse_ctx_t main_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_config_rss_reta,
 	(cmdline_parse_inst_t *)&cmd_showport_reta,
 	(cmdline_parse_inst_t *)&cmd_showport_macs,
+	(cmdline_parse_inst_t *)&cmd_tx_done_cleanup,
 	(cmdline_parse_inst_t *)&cmd_config_burst,
 	(cmdline_parse_inst_t *)&cmd_config_thresh,
 	(cmdline_parse_inst_t *)&cmd_config_threshold,
diff --git a/doc/guides/rel_notes/release_21_05.rst b/doc/guides/rel_notes/release_21_05.rst
index 23f7f0b..8077573 100644
--- a/doc/guides/rel_notes/release_21_05.rst
+++ b/doc/guides/rel_notes/release_21_05.rst
@@ -69,6 +69,8 @@ New Features
 
   * Added command to display Rx queue used descriptor count.
     ``show port (port_id) rxq (queue_id) desc used count``
+  * Added command to cleanup a Tx queue's mbuf on a port.
+    ``tx_done_cleanup port <port_id> <queue_id> <free_cnt>``
 
 
 Removed Items
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index f59eb8a..39281f5 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -272,6 +272,13 @@ and ready to be processed by the driver on a given RX queue::
 
    testpmd> show port (port_id) rxq (queue_id) desc used count
 
+cleanup txq mbufs
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+Request the driver to free mbufs currently cached by the driver for a given port's
+Tx queue::
+   testpmd> tx_done_cleanup port (port_id) (queue_id) (free_cnt)
+
 show config
 ~~~~~~~~~~~
 
-- 
2.7.4


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dpdk-dev] [PATCH 2/3] app/testpmd: remove forwarding config from parsing Rx and Tx
  2021-03-05  0:55 [dpdk-dev] [PATCH 0/3] testpmd updates Lijun Ou
  2021-03-05  0:55 ` [dpdk-dev] [PATCH 1/3] app/testpmd: support Tx mbuf free on demand cmd Lijun Ou
@ 2021-03-05  0:55 ` Lijun Ou
  2021-03-05  3:21   ` Li, Xiaoyun
  2021-03-05  0:55 ` [dpdk-dev] [PATCH 3/3] app/testpmd: fix mixed use of RX/Rx/TX/Tx in testpmd Lijun Ou
  2021-03-05  3:18 ` [dpdk-dev] [PATCH 0/3] testpmd updates Li, Xiaoyun
  3 siblings, 1 reply; 10+ messages in thread
From: Lijun Ou @ 2021-03-05  0:55 UTC (permalink / raw)
  To: ferruh.yigit; +Cc: dev, linuxarm

From: Huisong Li <lihuisong@huawei.com>

The "fwd_config_setup()" function does release and apply for
memory of forwarding flows, and re-establish these flows when
rxq/txq or rxd/txd is changed. The function is also called by
"start_packet_forwarding()" when user executes "start" cmd.
All changes for rxq/txq or rxd/txd can be updated uniformly
when this command is executed. Therefore, it is a little
redundant in the "cmd_config_rx_tx_parsed" function.

In addition, the forwarding flows under one TC is configured
based on number of queues allocated to TC. And number of queues
allocated to TC is updated after calling  "rte_eth_dev_configure"
again. If the number of queues is reduced after configuring the
DCB, and then, release and apply for flow memory, and reinitialize
the forwarding flows under the DCB mode based on the old TC
information. As a result, null pointer may be accessed.

Like:
set nbcore 4
port stop all
port config 0 dcb vt off 4 pfc on
port start all
port stop all
port config all rxq 8
port config all txq 8

At the moment, a segmentation fault occurs.

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

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Lijun Ou <oulijun@huawei.com>
---
 app/test-pmd/cmdline.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 832ae70..8b0f7d5 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -1837,8 +1837,6 @@ cmd_config_rx_tx_parsed(void *parsed_result,
 		return;
 	}
 
-	fwd_config_setup();
-
 	init_port_config();
 
 	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
-- 
2.7.4


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dpdk-dev] [PATCH 3/3] app/testpmd: fix mixed use of RX/Rx/TX/Tx in testpmd
  2021-03-05  0:55 [dpdk-dev] [PATCH 0/3] testpmd updates Lijun Ou
  2021-03-05  0:55 ` [dpdk-dev] [PATCH 1/3] app/testpmd: support Tx mbuf free on demand cmd Lijun Ou
  2021-03-05  0:55 ` [dpdk-dev] [PATCH 2/3] app/testpmd: remove forwarding config from parsing Rx and Tx Lijun Ou
@ 2021-03-05  0:55 ` Lijun Ou
  2021-03-05  3:25   ` Li, Xiaoyun
  2021-03-05  3:18 ` [dpdk-dev] [PATCH 0/3] testpmd updates Li, Xiaoyun
  3 siblings, 1 reply; 10+ messages in thread
From: Lijun Ou @ 2021-03-05  0:55 UTC (permalink / raw)
  To: ferruh.yigit; +Cc: dev, linuxarm

From: Hongbo Zheng <zhenghongbo3@huawei.com>

In testpmd, when we input "show config rxtx", we can see like this:

1: testpmd> show config rxtx
2:   io packet forwarding packets/burst=32
3:   nb forwarding cores=1 - nb forwarding ports=1
4:   port 0: RX queue number: 1 Tx queue number: 1
5:     Rx offloads=0x0 Tx offloads=0x10000
6:     RX queue: 0
7:       RX desc=1024 - RX free threshold=32
8:       RX threshold registers: pthresh=0 hthresh=0  wthresh=0
9:       RX Offloads=0x0
10:    TX queue: 0
11:      TX desc=1024 - TX free threshold=928
12:      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
13:      TX offloads=0x10000 - TX RS bit threshold=32

In line 4, RX/Tx is mixed used. Also in other lines, RX/Rx/TX/Tx is
mixed used.

This patch fix the mixed use of RX/Rx/TX/Tx in testpmd command
"show config rxtx" output by change to unified use Rx/Tx.

Signed-off-by: Hongbo Zheng <zhenghongbo3@huawei.com>
Signed-off-by: Lijun Ou <oulijun@huawei.com>
---
 app/test-pmd/config.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index 576d5ac..2435c26 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -2505,7 +2505,7 @@ rxtx_config_display(void)
 		int32_t rc;
 
 		/* per port config */
-		printf("  port %d: RX queue number: %d Tx queue number: %d\n",
+		printf("  port %d: Rx queue number: %d Tx queue number: %d\n",
 				(unsigned int)pid, nb_rxq, nb_txq);
 
 		printf("    Rx offloads=0x%"PRIx64" Tx offloads=0x%"PRIx64"\n",
@@ -2533,13 +2533,13 @@ rxtx_config_display(void)
 				offloads_tmp = rx_qinfo.conf.offloads;
 			}
 
-			printf("    RX queue: %d\n", qid);
-			printf("      RX desc=%d - RX free threshold=%d\n",
+			printf("    Rx queue: %d\n", qid);
+			printf("      Rx desc=%d - Rx free threshold=%d\n",
 				nb_rx_desc_tmp, rx_free_thresh_tmp);
-			printf("      RX threshold registers: pthresh=%d hthresh=%d "
+			printf("      Rx threshold registers: pthresh=%d hthresh=%d "
 				" wthresh=%d\n",
 				pthresh_tmp, hthresh_tmp, wthresh_tmp);
-			printf("      RX Offloads=0x%"PRIx64"\n", offloads_tmp);
+			printf("      Rx Offloads=0x%"PRIx64"\n", offloads_tmp);
 		}
 
 		/* per tx queue config only for first queue to be less verbose */
@@ -2565,13 +2565,13 @@ rxtx_config_display(void)
 				tx_rs_thresh_tmp = tx_qinfo.conf.tx_rs_thresh;
 			}
 
-			printf("    TX queue: %d\n", qid);
-			printf("      TX desc=%d - TX free threshold=%d\n",
+			printf("    Tx queue: %d\n", qid);
+			printf("      Tx desc=%d - Tx free threshold=%d\n",
 				nb_tx_desc_tmp, tx_free_thresh_tmp);
-			printf("      TX threshold registers: pthresh=%d hthresh=%d "
+			printf("      Tx threshold registers: pthresh=%d hthresh=%d "
 				" wthresh=%d\n",
 				pthresh_tmp, hthresh_tmp, wthresh_tmp);
-			printf("      TX offloads=0x%"PRIx64" - TX RS bit threshold=%d\n",
+			printf("      Tx offloads=0x%"PRIx64" - Tx RS bit threshold=%d\n",
 				offloads_tmp, tx_rs_thresh_tmp);
 		}
 	}
-- 
2.7.4


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH 0/3] testpmd updates
  2021-03-05  0:55 [dpdk-dev] [PATCH 0/3] testpmd updates Lijun Ou
                   ` (2 preceding siblings ...)
  2021-03-05  0:55 ` [dpdk-dev] [PATCH 3/3] app/testpmd: fix mixed use of RX/Rx/TX/Tx in testpmd Lijun Ou
@ 2021-03-05  3:18 ` Li, Xiaoyun
  2021-03-05  6:14   ` oulijun
  3 siblings, 1 reply; 10+ messages in thread
From: Li, Xiaoyun @ 2021-03-05  3:18 UTC (permalink / raw)
  To: Lijun Ou, Yigit, Ferruh; +Cc: dev, linuxarm

Hi

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Lijun Ou
> Sent: Friday, March 5, 2021 08:56
> To: Yigit, Ferruh <ferruh.yigit@intel.com>
> Cc: dev@dpdk.org; linuxarm@openeuler.org
> Subject: [dpdk-dev] [PATCH 0/3] testpmd updates
> 
> This series add a API implementation for testpmd as well as fix two bugs.
> 
> Chengwen Feng (1):
>   app/testpmd: support Tx mbuf free on demand cmd
> 
> Hongbo Zheng (1):
>   app/testpmd: fix mixed use of RX/Rx/TX/Tx in testpmd
> 
> Huisong Li (1):
>   app/testpmd: remove forwarding config from parsing Rx and Tx
> 

Please separate this patchset to 3 patches.
For the first patch, you should add a release note in release_21_05.rst.
And for the next 2 fixes, please add corresponding fix line and cc to stable@dpdk.org. 

And also, if you're sending patches related to testpmd, please also send/cc to me.
You can use add "--to-cmd ./devtools/get-maintainer.sh" when you use git send-email to make sure all of related people will be in mail list.

>  app/test-pmd/cmdline.c                      | 93 ++++++++++++++++++++++++++++-
>  app/test-pmd/config.c                       | 18 +++---
>  doc/guides/rel_notes/release_21_05.rst      |  2 +
>  doc/guides/testpmd_app_ug/testpmd_funcs.rst |  7 +++
>  4 files changed, 109 insertions(+), 11 deletions(-)
> 
> --
> 2.7.4


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH 2/3] app/testpmd: remove forwarding config from parsing Rx and Tx
  2021-03-05  0:55 ` [dpdk-dev] [PATCH 2/3] app/testpmd: remove forwarding config from parsing Rx and Tx Lijun Ou
@ 2021-03-05  3:21   ` Li, Xiaoyun
  2021-03-05  6:12     ` oulijun
  0 siblings, 1 reply; 10+ messages in thread
From: Li, Xiaoyun @ 2021-03-05  3:21 UTC (permalink / raw)
  To: Lijun Ou, Yigit, Ferruh; +Cc: dev, linuxarm

Hi

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Lijun Ou
> Sent: Friday, March 5, 2021 08:56
> To: Yigit, Ferruh <ferruh.yigit@intel.com>
> Cc: dev@dpdk.org; linuxarm@openeuler.org
> Subject: [dpdk-dev] [PATCH 2/3] app/testpmd: remove forwarding config from
> parsing Rx and Tx
> 
> From: Huisong Li <lihuisong@huawei.com>
> 
> The "fwd_config_setup()" function does release and apply for memory of
> forwarding flows, and re-establish these flows when rxq/txq or rxd/txd is
> changed. The function is also called by "start_packet_forwarding()" when user
> executes "start" cmd.
> All changes for rxq/txq or rxd/txd can be updated uniformly when this command
> is executed. Therefore, it is a little redundant in the "cmd_config_rx_tx_parsed"
> function.
> 
> In addition, the forwarding flows under one TC is configured based on number
> of queues allocated to TC. And number of queues allocated to TC is updated
> after calling  "rte_eth_dev_configure"
> again. If the number of queues is reduced after configuring the DCB, and then,
> release and apply for flow memory, and reinitialize the forwarding flows under
> the DCB mode based on the old TC information. As a result, null pointer may be
> accessed.

The patch looks good to me. But in commit log, you mean forwarding streams, right? Flows will confuse to mean rte_flow.

> 
> Like:
> set nbcore 4
> port stop all
> port config 0 dcb vt off 4 pfc on
> port start all
> port stop all
> port config all rxq 8
> port config all txq 8
> 
> At the moment, a segmentation fault occurs.
> 
> Fixes: ce8d561418d4 ("app/testpmd: add port configuration settings")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Huisong Li <lihuisong@huawei.com>
> Signed-off-by: Lijun Ou <oulijun@huawei.com>
> ---
>  app/test-pmd/cmdline.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index
> 832ae70..8b0f7d5 100644
> --- a/app/test-pmd/cmdline.c
> +++ b/app/test-pmd/cmdline.c
> @@ -1837,8 +1837,6 @@ cmd_config_rx_tx_parsed(void *parsed_result,
>  		return;
>  	}
> 
> -	fwd_config_setup();
> -
>  	init_port_config();
> 
>  	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
> --
> 2.7.4


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH 3/3] app/testpmd: fix mixed use of RX/Rx/TX/Tx in testpmd
  2021-03-05  0:55 ` [dpdk-dev] [PATCH 3/3] app/testpmd: fix mixed use of RX/Rx/TX/Tx in testpmd Lijun Ou
@ 2021-03-05  3:25   ` Li, Xiaoyun
  2021-03-05  6:13     ` oulijun
  0 siblings, 1 reply; 10+ messages in thread
From: Li, Xiaoyun @ 2021-03-05  3:25 UTC (permalink / raw)
  To: Lijun Ou, Yigit, Ferruh; +Cc: dev, linuxarm

Hi

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Lijun Ou
> Sent: Friday, March 5, 2021 08:56
> To: Yigit, Ferruh <ferruh.yigit@intel.com>
> Cc: dev@dpdk.org; linuxarm@openeuler.org
> Subject: [dpdk-dev] [PATCH 3/3] app/testpmd: fix mixed use of RX/Rx/TX/Tx in
> testpmd
> 
> From: Hongbo Zheng <zhenghongbo3@huawei.com>
> 
> In testpmd, when we input "show config rxtx", we can see like this:
> 
> 1: testpmd> show config rxtx
> 2:   io packet forwarding packets/burst=32
> 3:   nb forwarding cores=1 - nb forwarding ports=1
> 4:   port 0: RX queue number: 1 Tx queue number: 1
> 5:     Rx offloads=0x0 Tx offloads=0x10000
> 6:     RX queue: 0
> 7:       RX desc=1024 - RX free threshold=32
> 8:       RX threshold registers: pthresh=0 hthresh=0  wthresh=0
> 9:       RX Offloads=0x0
> 10:    TX queue: 0
> 11:      TX desc=1024 - TX free threshold=928
> 12:      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
> 13:      TX offloads=0x10000 - TX RS bit threshold=32
> 
> In line 4, RX/Tx is mixed used. Also in other lines, RX/Rx/TX/Tx is mixed used.

If you're going to unify the print to only use "Rx/Tx" in testpmd as your title said.
There're a lot of more places using RX/TX when printing. You should change them too.

> 
> This patch fix the mixed use of RX/Rx/TX/Tx in testpmd command "show config
> rxtx" output by change to unified use Rx/Tx.
> 
> Signed-off-by: Hongbo Zheng <zhenghongbo3@huawei.com>
> Signed-off-by: Lijun Ou <oulijun@huawei.com>
> ---
>  app/test-pmd/config.c | 18 +++++++++---------
>  1 file changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index
> 576d5ac..2435c26 100644
> --- a/app/test-pmd/config.c
> +++ b/app/test-pmd/config.c
> @@ -2505,7 +2505,7 @@ rxtx_config_display(void)
>  		int32_t rc;
> 
>  		/* per port config */
> -		printf("  port %d: RX queue number: %d Tx queue
> number: %d\n",
> +		printf("  port %d: Rx queue number: %d Tx queue number: %d\n",
>  				(unsigned int)pid, nb_rxq, nb_txq);
> 
>  		printf("    Rx offloads=0x%"PRIx64" Tx offloads=0x%"PRIx64"\n",
> @@ -2533,13 +2533,13 @@ rxtx_config_display(void)
>  				offloads_tmp = rx_qinfo.conf.offloads;
>  			}
> 
> -			printf("    RX queue: %d\n", qid);
> -			printf("      RX desc=%d - RX free threshold=%d\n",
> +			printf("    Rx queue: %d\n", qid);
> +			printf("      Rx desc=%d - Rx free threshold=%d\n",
>  				nb_rx_desc_tmp, rx_free_thresh_tmp);
> -			printf("      RX threshold registers: pthresh=%d
> hthresh=%d "
> +			printf("      Rx threshold registers: pthresh=%d
> hthresh=%d "
>  				" wthresh=%d\n",
>  				pthresh_tmp, hthresh_tmp, wthresh_tmp);
> -			printf("      RX Offloads=0x%"PRIx64"\n", offloads_tmp);
> +			printf("      Rx Offloads=0x%"PRIx64"\n", offloads_tmp);
>  		}
> 
>  		/* per tx queue config only for first queue to be less verbose */
> @@ -2565,13 +2565,13 @@ rxtx_config_display(void)
>  				tx_rs_thresh_tmp = tx_qinfo.conf.tx_rs_thresh;
>  			}
> 
> -			printf("    TX queue: %d\n", qid);
> -			printf("      TX desc=%d - TX free threshold=%d\n",
> +			printf("    Tx queue: %d\n", qid);
> +			printf("      Tx desc=%d - Tx free threshold=%d\n",
>  				nb_tx_desc_tmp, tx_free_thresh_tmp);
> -			printf("      TX threshold registers: pthresh=%d
> hthresh=%d "
> +			printf("      Tx threshold registers: pthresh=%d
> hthresh=%d "
>  				" wthresh=%d\n",
>  				pthresh_tmp, hthresh_tmp, wthresh_tmp);
> -			printf("      TX offloads=0x%"PRIx64" - TX RS bit
> threshold=%d\n",
> +			printf("      Tx offloads=0x%"PRIx64" - Tx RS bit
> threshold=%d\n",
>  				offloads_tmp, tx_rs_thresh_tmp);
>  		}
>  	}
> --
> 2.7.4


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH 2/3] app/testpmd: remove forwarding config from parsing Rx and Tx
  2021-03-05  3:21   ` Li, Xiaoyun
@ 2021-03-05  6:12     ` oulijun
  0 siblings, 0 replies; 10+ messages in thread
From: oulijun @ 2021-03-05  6:12 UTC (permalink / raw)
  To: Li, Xiaoyun, Yigit, Ferruh; +Cc: dev, linuxarm



在 2021/3/5 11:21, Li, Xiaoyun 写道:
> Hi
> 
>> -----Original Message-----
>> From: dev <dev-bounces@dpdk.org> On Behalf Of Lijun Ou
>> Sent: Friday, March 5, 2021 08:56
>> To: Yigit, Ferruh <ferruh.yigit@intel.com>
>> Cc: dev@dpdk.org; linuxarm@openeuler.org
>> Subject: [dpdk-dev] [PATCH 2/3] app/testpmd: remove forwarding config from
>> parsing Rx and Tx
>>
>> From: Huisong Li <lihuisong@huawei.com>
>>
>> The "fwd_config_setup()" function does release and apply for memory of
>> forwarding flows, and re-establish these flows when rxq/txq or rxd/txd is
>> changed. The function is also called by "start_packet_forwarding()" when user
>> executes "start" cmd.
>> All changes for rxq/txq or rxd/txd can be updated uniformly when this command
>> is executed. Therefore, it is a little redundant in the "cmd_config_rx_tx_parsed"
>> function.
>>
>> In addition, the forwarding flows under one TC is configured based on number
>> of queues allocated to TC. And number of queues allocated to TC is updated
>> after calling  "rte_eth_dev_configure"
>> again. If the number of queues is reduced after configuring the DCB, and then,
>> release and apply for flow memory, and reinitialize the forwarding flows under
>> the DCB mode based on the old TC information. As a result, null pointer may be
>> accessed.
> 
> The patch looks good to me. But in commit log, you mean forwarding streams, right? Flows will confuse to mean rte_flow.
Yes. it is forwarding streams.
> 
>>
>> Like:
>> set nbcore 4
>> port stop all
>> port config 0 dcb vt off 4 pfc on
>> port start all
>> port stop all
>> port config all rxq 8
>> port config all txq 8
>>
>> At the moment, a segmentation fault occurs.
>>
>> Fixes: ce8d561418d4 ("app/testpmd: add port configuration settings")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Huisong Li <lihuisong@huawei.com>
>> Signed-off-by: Lijun Ou <oulijun@huawei.com>
>> ---
>>   app/test-pmd/cmdline.c | 2 --
>>   1 file changed, 2 deletions(-)
>>
>> diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index
>> 832ae70..8b0f7d5 100644
>> --- a/app/test-pmd/cmdline.c
>> +++ b/app/test-pmd/cmdline.c
>> @@ -1837,8 +1837,6 @@ cmd_config_rx_tx_parsed(void *parsed_result,
>>   		return;
>>   	}
>>
>> -	fwd_config_setup();
>> -
>>   	init_port_config();
>>
>>   	cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1);
>> --
>> 2.7.4
> 
> .
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH 3/3] app/testpmd: fix mixed use of RX/Rx/TX/Tx in testpmd
  2021-03-05  3:25   ` Li, Xiaoyun
@ 2021-03-05  6:13     ` oulijun
  0 siblings, 0 replies; 10+ messages in thread
From: oulijun @ 2021-03-05  6:13 UTC (permalink / raw)
  To: Li, Xiaoyun, Yigit, Ferruh; +Cc: dev, linuxarm



在 2021/3/5 11:25, Li, Xiaoyun 写道:
> Hi
> 
>> -----Original Message-----
>> From: dev <dev-bounces@dpdk.org> On Behalf Of Lijun Ou
>> Sent: Friday, March 5, 2021 08:56
>> To: Yigit, Ferruh <ferruh.yigit@intel.com>
>> Cc: dev@dpdk.org; linuxarm@openeuler.org
>> Subject: [dpdk-dev] [PATCH 3/3] app/testpmd: fix mixed use of RX/Rx/TX/Tx in
>> testpmd
>>
>> From: Hongbo Zheng <zhenghongbo3@huawei.com>
>>
>> In testpmd, when we input "show config rxtx", we can see like this:
>>
>> 1: testpmd> show config rxtx
>> 2:   io packet forwarding packets/burst=32
>> 3:   nb forwarding cores=1 - nb forwarding ports=1
>> 4:   port 0: RX queue number: 1 Tx queue number: 1
>> 5:     Rx offloads=0x0 Tx offloads=0x10000
>> 6:     RX queue: 0
>> 7:       RX desc=1024 - RX free threshold=32
>> 8:       RX threshold registers: pthresh=0 hthresh=0  wthresh=0
>> 9:       RX Offloads=0x0
>> 10:    TX queue: 0
>> 11:      TX desc=1024 - TX free threshold=928
>> 12:      TX threshold registers: pthresh=0 hthresh=0  wthresh=0
>> 13:      TX offloads=0x10000 - TX RS bit threshold=32
>>
>> In line 4, RX/Tx is mixed used. Also in other lines, RX/Rx/TX/Tx is mixed used.
> 
> If you're going to unify the print to only use "Rx/Tx" in testpmd as your title said.
> There're a lot of more places using RX/TX when printing. You should change them too.
> 
OK, I will do it.
>>
>> This patch fix the mixed use of RX/Rx/TX/Tx in testpmd command "show config
>> rxtx" output by change to unified use Rx/Tx.
>>
>> Signed-off-by: Hongbo Zheng <zhenghongbo3@huawei.com>
>> Signed-off-by: Lijun Ou <oulijun@huawei.com>
>> ---
>>   app/test-pmd/config.c | 18 +++++++++---------
>>   1 file changed, 9 insertions(+), 9 deletions(-)
>>
>> diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index
>> 576d5ac..2435c26 100644
>> --- a/app/test-pmd/config.c
>> +++ b/app/test-pmd/config.c
>> @@ -2505,7 +2505,7 @@ rxtx_config_display(void)
>>   		int32_t rc;
>>
>>   		/* per port config */
>> -		printf("  port %d: RX queue number: %d Tx queue
>> number: %d\n",
>> +		printf("  port %d: Rx queue number: %d Tx queue number: %d\n",
>>   				(unsigned int)pid, nb_rxq, nb_txq);
>>
>>   		printf("    Rx offloads=0x%"PRIx64" Tx offloads=0x%"PRIx64"\n",
>> @@ -2533,13 +2533,13 @@ rxtx_config_display(void)
>>   				offloads_tmp = rx_qinfo.conf.offloads;
>>   			}
>>
>> -			printf("    RX queue: %d\n", qid);
>> -			printf("      RX desc=%d - RX free threshold=%d\n",
>> +			printf("    Rx queue: %d\n", qid);
>> +			printf("      Rx desc=%d - Rx free threshold=%d\n",
>>   				nb_rx_desc_tmp, rx_free_thresh_tmp);
>> -			printf("      RX threshold registers: pthresh=%d
>> hthresh=%d "
>> +			printf("      Rx threshold registers: pthresh=%d
>> hthresh=%d "
>>   				" wthresh=%d\n",
>>   				pthresh_tmp, hthresh_tmp, wthresh_tmp);
>> -			printf("      RX Offloads=0x%"PRIx64"\n", offloads_tmp);
>> +			printf("      Rx Offloads=0x%"PRIx64"\n", offloads_tmp);
>>   		}
>>
>>   		/* per tx queue config only for first queue to be less verbose */
>> @@ -2565,13 +2565,13 @@ rxtx_config_display(void)
>>   				tx_rs_thresh_tmp = tx_qinfo.conf.tx_rs_thresh;
>>   			}
>>
>> -			printf("    TX queue: %d\n", qid);
>> -			printf("      TX desc=%d - TX free threshold=%d\n",
>> +			printf("    Tx queue: %d\n", qid);
>> +			printf("      Tx desc=%d - Tx free threshold=%d\n",
>>   				nb_tx_desc_tmp, tx_free_thresh_tmp);
>> -			printf("      TX threshold registers: pthresh=%d
>> hthresh=%d "
>> +			printf("      Tx threshold registers: pthresh=%d
>> hthresh=%d "
>>   				" wthresh=%d\n",
>>   				pthresh_tmp, hthresh_tmp, wthresh_tmp);
>> -			printf("      TX offloads=0x%"PRIx64" - TX RS bit
>> threshold=%d\n",
>> +			printf("      Tx offloads=0x%"PRIx64" - Tx RS bit
>> threshold=%d\n",
>>   				offloads_tmp, tx_rs_thresh_tmp);
>>   		}
>>   	}
>> --
>> 2.7.4
> 
> .
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH 0/3] testpmd updates
  2021-03-05  3:18 ` [dpdk-dev] [PATCH 0/3] testpmd updates Li, Xiaoyun
@ 2021-03-05  6:14   ` oulijun
  0 siblings, 0 replies; 10+ messages in thread
From: oulijun @ 2021-03-05  6:14 UTC (permalink / raw)
  To: Li, Xiaoyun, Yigit, Ferruh; +Cc: dev, linuxarm



在 2021/3/5 11:18, Li, Xiaoyun 写道:
> Hi
> 
>> -----Original Message-----
>> From: dev <dev-bounces@dpdk.org> On Behalf Of Lijun Ou
>> Sent: Friday, March 5, 2021 08:56
>> To: Yigit, Ferruh <ferruh.yigit@intel.com>
>> Cc: dev@dpdk.org; linuxarm@openeuler.org
>> Subject: [dpdk-dev] [PATCH 0/3] testpmd updates
>>
>> This series add a API implementation for testpmd as well as fix two bugs.
>>
>> Chengwen Feng (1):
>>    app/testpmd: support Tx mbuf free on demand cmd
>>
>> Hongbo Zheng (1):
>>    app/testpmd: fix mixed use of RX/Rx/TX/Tx in testpmd
>>
>> Huisong Li (1):
>>    app/testpmd: remove forwarding config from parsing Rx and Tx
>>
> 
> Please separate this patchset to 3 patches.
> For the first patch, you should add a release note in release_21_05.rst.
> And for the next 2 fixes, please add corresponding fix line and cc to stable@dpdk.org.
> 
> And also, if you're sending patches related to testpmd, please also send/cc to me.
> You can use add "--to-cmd ./devtools/get-maintainer.sh" when you use git send-email to make sure all of related people will be in mail list.
> 
Thanks. I will do this.
>>   app/test-pmd/cmdline.c                      | 93 ++++++++++++++++++++++++++++-
>>   app/test-pmd/config.c                       | 18 +++---
>>   doc/guides/rel_notes/release_21_05.rst      |  2 +
>>   doc/guides/testpmd_app_ug/testpmd_funcs.rst |  7 +++
>>   4 files changed, 109 insertions(+), 11 deletions(-)
>>
>> --
>> 2.7.4
> 
> .
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-03-05  6:14 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-05  0:55 [dpdk-dev] [PATCH 0/3] testpmd updates Lijun Ou
2021-03-05  0:55 ` [dpdk-dev] [PATCH 1/3] app/testpmd: support Tx mbuf free on demand cmd Lijun Ou
2021-03-05  0:55 ` [dpdk-dev] [PATCH 2/3] app/testpmd: remove forwarding config from parsing Rx and Tx Lijun Ou
2021-03-05  3:21   ` Li, Xiaoyun
2021-03-05  6:12     ` oulijun
2021-03-05  0:55 ` [dpdk-dev] [PATCH 3/3] app/testpmd: fix mixed use of RX/Rx/TX/Tx in testpmd Lijun Ou
2021-03-05  3:25   ` Li, Xiaoyun
2021-03-05  6:13     ` oulijun
2021-03-05  3:18 ` [dpdk-dev] [PATCH 0/3] testpmd updates Li, Xiaoyun
2021-03-05  6:14   ` oulijun

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git