All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dongdong Liu <liudongdong3@huawei.com>
To: <dev@dpdk.org>, <reshma.pattan@intel.com>, <thomas@monjalon.net>,
	<ferruh.yigit@xilinx.com>, <andrew.rybchenko@oktetlabs.ru>
Cc: "Min Hu (Connor)" <humin29@huawei.com>,
	Dongdong Liu <liudongdong3@huawei.com>,
	Maryam Tahhan <maryam.tahhan@intel.com>
Subject: [PATCH v3 3/7] app/procinfo: add RSS RETA dump
Date: Wed, 21 Sep 2022 22:26:51 +0800	[thread overview]
Message-ID: <20220921142655.16427-4-liudongdong3@huawei.com> (raw)
In-Reply-To: <20220921142655.16427-1-liudongdong3@huawei.com>

From: "Min Hu (Connor)" <humin29@huawei.com>

This patch add support for RSS reta dump.

The command is like:
dpdk-proc-info -a xxxx:xx:xx.x --file-prefix=xxx -- --show-rss-reta

Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
 app/proc-info/main.c | 57 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

diff --git a/app/proc-info/main.c b/app/proc-info/main.c
index ab4fee1138..84fe93a3cb 100644
--- a/app/proc-info/main.c
+++ b/app/proc-info/main.c
@@ -46,6 +46,8 @@
 #define MAX_STRING_LEN 256
 
 #define ETHDEV_FWVERS_LEN 32
+#define RTE_RETA_CONF_GROUP_NUM 32
+#define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
 
 #define STATS_BDR_FMT "========================================"
 #define STATS_BDR_STR(w, s) printf("%.*s%s%.*s\n", w, \
@@ -109,6 +111,8 @@ static char *dump_regs_file_prefix;
 static uint32_t enable_shw_version;
 /* Enable show ethdev firmware version. */
 static uint32_t enable_shw_fw_version;
+/* Enable show RSS reta. */
+static uint32_t enable_shw_rss_reta;
 
 /**< display usage */
 static void
@@ -139,6 +143,7 @@ proc_info_usage(const char *prgname)
 		"  --show-mempool[=name]: to display mempool information\n"
 		"  --version: to display DPDK version\n"
 		"  --firmware-version: to display ethdev firmware version\n"
+		"  --show-rss-reta: to display ports redirection table\n"
 		"  --iter-mempool=name: iterate mempool elements to display content\n"
 		"  --dump-regs=file-prefix: dump registers to file with the file-prefix\n",
 		prgname);
@@ -253,6 +258,7 @@ proc_info_parse_args(int argc, char **argv)
 		{"dump-regs", required_argument, NULL, 0},
 		{"version", 0, NULL, 0},
 		{"firmware-version", 0, NULL, 0},
+		{"show-rss-reta", 0, NULL, 0},
 		{NULL, 0, 0, 0}
 	};
 
@@ -330,6 +336,9 @@ proc_info_parse_args(int argc, char **argv)
 			else if (!strncmp(long_option[option_index].name,
 					"firmware-version", MAX_LONG_OPT_SZ))
 				enable_shw_fw_version = 1;
+			else if (!strncmp(long_option[option_index].name,
+					"show-rss-reta", MAX_LONG_OPT_SZ))
+				enable_shw_rss_reta = 1;
 			break;
 		case 1:
 			/* Print xstat single value given by name*/
@@ -1524,6 +1533,52 @@ show_firmware_version(void)
 	}
 }
 
+static void
+show_port_rss_reta_info(void)
+{
+	struct rte_eth_rss_reta_entry64 reta_conf[RTE_RETA_CONF_GROUP_NUM + 1];
+	struct rte_eth_dev_info dev_info;
+	uint16_t i, idx, shift;
+	uint16_t num;
+	uint16_t id;
+	int ret;
+
+	RTE_ETH_FOREACH_DEV(id) {
+		/* Skip if port is not in mask */
+		if ((enabled_port_mask & (1ul << id)) == 0)
+			continue;
+
+		snprintf(bdr_str, MAX_STRING_LEN, " Port %u ", id);
+		STATS_BDR_STR(5, bdr_str);
+
+		ret = rte_eth_dev_info_get(id, &dev_info);
+		if (ret != 0) {
+			fprintf(stderr, "Error getting device info: %s\n",
+				strerror(-ret));
+			return;
+		}
+
+		num = DIV_ROUND_UP(dev_info.reta_size, RTE_ETH_RETA_GROUP_SIZE);
+		memset(reta_conf, 0, sizeof(reta_conf));
+		for (i = 0; i < num; i++)
+			reta_conf[i].mask = ~0ULL;
+
+		ret = rte_eth_dev_rss_reta_query(id, reta_conf, dev_info.reta_size);
+		if (ret != 0) {
+			fprintf(stderr, "Error getting RSS RETA info: %s\n",
+				strerror(-ret));
+			return;
+		}
+
+		for (i = 0; i < dev_info.reta_size; i++) {
+			idx = i / RTE_ETH_RETA_GROUP_SIZE;
+			shift = i % RTE_ETH_RETA_GROUP_SIZE;
+			printf("RSS RETA configuration: hash index=%u, queue=%u\n",
+				i, reta_conf[idx].reta[shift]);
+		}
+	}
+}
+
 int
 main(int argc, char **argv)
 {
@@ -1641,6 +1696,8 @@ main(int argc, char **argv)
 		show_version();
 	if (enable_shw_fw_version)
 		show_firmware_version();
+	if (enable_shw_rss_reta)
+		show_port_rss_reta_info();
 
 	RTE_ETH_FOREACH_DEV(i)
 		rte_eth_dev_close(i);
-- 
2.22.0


  parent reply	other threads:[~2022-09-21 14:28 UTC|newest]

Thread overview: 89+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-22  9:12 [PATCH 0/6] app/procinfo: add some extended features Dongdong Liu
2022-07-22  9:12 ` [PATCH 1/6] app/procinfo: add version dump Dongdong Liu
2022-09-19  9:23   ` Pattan, Reshma
2022-09-20  2:35     ` Dongdong Liu
2022-07-22  9:12 ` [PATCH 2/6] app/procinfo: add RSS RETA dump Dongdong Liu
2022-07-22  9:12 ` [PATCH 3/6] app/procinfo: add module info dump Dongdong Liu
2022-07-22  9:12 ` [PATCH 4/6] app/proc-info: add dump of Rx/Tx burst mode Dongdong Liu
2022-07-22  9:12 ` [PATCH 5/6] app/procinfo: fix some wrong doxygen syntax Dongdong Liu
2022-07-22  9:12 ` [PATCH 6/6] doc: add some extended features in procinfo guide Dongdong Liu
2022-07-22 10:03 ` [PATCH 0/6] app/procinfo: add some extended features David Marchand
2022-07-25 11:03   ` Dongdong Liu
2022-09-17  1:12 ` Dongdong Liu
2022-09-20 10:51 ` [PATCH v2 " Dongdong Liu
2022-09-20 10:51   ` [PATCH v2 1/6] app/procinfo: add version dump Dongdong Liu
2022-09-20 15:21     ` Stephen Hemminger
2022-09-21 11:11       ` Dongdong Liu
2022-09-20 10:51   ` [PATCH v2 2/6] app/procinfo: add RSS RETA dump Dongdong Liu
2022-09-20 15:24     ` Stephen Hemminger
2022-09-21 11:21       ` Dongdong Liu
2022-09-20 10:51   ` [PATCH v2 3/6] app/procinfo: add module info dump Dongdong Liu
2022-09-20 15:22     ` Stephen Hemminger
2022-09-21 11:22       ` Dongdong Liu
2022-09-20 10:51   ` [PATCH v2 4/6] app/proc-info: add dump of Rx/Tx burst mode Dongdong Liu
2022-09-20 10:51   ` [PATCH v2 5/6] app/procinfo: fix some wrong doxygen syntax Dongdong Liu
2022-09-20 10:51   ` [PATCH v2 6/6] doc: add some extended features in procinfo guide Dongdong Liu
2022-09-21 14:26 ` [PATCH v3 0/7] app/procinfo: add some extended features Dongdong Liu
2022-09-21 14:26   ` [PATCH v3 1/7] app/procinfo: add dpdk version dump Dongdong Liu
2022-09-23  9:11     ` Pattan, Reshma
2022-09-21 14:26   ` [PATCH v3 2/7] app/procinfo: add firmware " Dongdong Liu
2022-09-23  9:22     ` Pattan, Reshma
2022-09-24  8:03       ` Dongdong Liu
2022-09-21 14:26   ` Dongdong Liu [this message]
2022-09-23  9:42     ` [PATCH v3 3/7] app/procinfo: add RSS RETA dump Pattan, Reshma
2022-09-21 14:26   ` [PATCH v3 4/7] app/procinfo: add module info dump Dongdong Liu
2022-09-23  9:51     ` Pattan, Reshma
2022-09-24  8:07       ` Dongdong Liu
2022-09-21 14:26   ` [PATCH v3 5/7] app/procinfo: add dump of Rx/Tx burst mode Dongdong Liu
2022-09-23 10:02     ` Pattan, Reshma
2022-09-24  8:06       ` Dongdong Liu
2022-09-21 14:26   ` [PATCH v3 6/7] app/procinfo: fix some wrong doxygen syntax Dongdong Liu
2022-09-23  7:53     ` Pattan, Reshma
2022-09-24  8:12       ` Dongdong Liu
2022-09-21 14:26   ` [PATCH v3 7/7] doc: add some extended features in procinfo guide Dongdong Liu
2022-09-23  8:57     ` Pattan, Reshma
2022-09-24  8:13 ` [PATCH v7 0/7] app/procinfo: add some extended features Dongdong Liu
2022-09-24  8:13   ` [PATCH v7 1/7] app/procinfo: add dpdk version dump Dongdong Liu
2022-09-24  8:13   ` [PATCH v7 2/7] app/procinfo: add firmware " Dongdong Liu
2022-09-24  8:13   ` [PATCH v7 3/7] app/procinfo: add RSS RETA dump Dongdong Liu
2022-09-24  8:13   ` [PATCH v7 4/7] app/procinfo: add module eeprom info dump Dongdong Liu
2022-09-26 11:54     ` Pattan, Reshma
2022-09-24  8:13   ` [PATCH v7 5/7] app/procinfo: add dump of Rx/Tx burst mode Dongdong Liu
2022-09-24  8:13   ` [PATCH v7 6/7] app/procinfo: fix some wrong doxygen syntax Dongdong Liu
2022-09-26 12:09     ` Pattan, Reshma
2022-09-24  8:13   ` [PATCH v7 7/7] doc: add some extended features in procinfo guide Dongdong Liu
2022-09-24  8:21   ` [PATCH v7 0/7] app/procinfo: add some extended features Dongdong Liu
2022-10-08  9:39 ` [PATCH v8 0/8] " Dongdong Liu
2022-10-08  9:39   ` [PATCH v8 1/8] app/procinfo: add dpdk version dump Dongdong Liu
2022-10-08  9:39   ` [PATCH v8 2/8] app/procinfo: add firmware " Dongdong Liu
2022-10-08  9:39   ` [PATCH v8 3/8] app/procinfo: add RSS RETA dump Dongdong Liu
2022-10-08  9:39   ` [PATCH v8 4/8] app/procinfo: add module eeprom info dump Dongdong Liu
2022-10-08  9:39   ` [PATCH v8 5/8] app/procinfo: add dump of Rx/Tx burst mode Dongdong Liu
2022-10-08  9:39   ` [PATCH v8 6/8] app/procinfo: fix some wrong doxygen syntax Dongdong Liu
2022-10-08  9:39   ` [PATCH v8 7/8] app/procinfo: support descriptor dump Dongdong Liu
2022-10-08  9:39   ` [PATCH v8 8/8] doc: add some extended features in procinfo guide Dongdong Liu
2022-10-08 10:53 ` [PATCH v9 0/8] app/procinfo: add some extended features Dongdong Liu
2022-10-08 10:53   ` [PATCH v9 1/8] app/procinfo: add dpdk version dump Dongdong Liu
2022-10-08 10:53   ` [PATCH v9 2/8] app/procinfo: add firmware " Dongdong Liu
2022-10-08 10:53   ` [PATCH v9 3/8] app/procinfo: add RSS RETA dump Dongdong Liu
2022-10-08 10:53   ` [PATCH v9 4/8] app/procinfo: add module eeprom info dump Dongdong Liu
2022-10-08 10:53   ` [PATCH v9 5/8] app/procinfo: add dump of Rx/Tx burst mode Dongdong Liu
2022-10-08 10:53   ` [PATCH v9 6/8] app/procinfo: fix some wrong doxygen syntax Dongdong Liu
2022-10-08 10:53   ` [PATCH v9 7/8] app/procinfo: support descriptor dump Dongdong Liu
2022-10-10  9:08     ` Pattan, Reshma
2022-10-10 13:13       ` Dongdong Liu
2022-10-08 10:53   ` [PATCH v9 8/8] doc: add some extended features in procinfo guide Dongdong Liu
2022-10-11 11:18 ` [PATCH v10 0/8] app/procinfo: add some extended features Dongdong Liu
2022-10-11 11:18   ` [PATCH v10 1/8] app/procinfo: add dpdk version dump Dongdong Liu
2022-10-11 11:18   ` [PATCH v10 2/8] app/procinfo: add firmware " Dongdong Liu
2022-10-11 11:18   ` [PATCH v10 3/8] app/procinfo: add RSS RETA dump Dongdong Liu
2022-10-11 11:18   ` [PATCH v10 4/8] app/procinfo: add module eeprom info dump Dongdong Liu
2022-10-11 11:18   ` [PATCH v10 5/8] app/procinfo: add dump of Rx/Tx burst mode Dongdong Liu
2022-10-11 11:18   ` [PATCH v10 6/8] app/procinfo: fix some wrong doxygen syntax Dongdong Liu
2022-10-11 11:18   ` [PATCH v10 7/8] app/procinfo: support descriptor dump Dongdong Liu
2022-10-11 13:38     ` Pattan, Reshma
2022-10-11 11:18   ` [PATCH v10 8/8] doc: add some extended features in procinfo guide Dongdong Liu
2022-10-20  7:48   ` [PATCH v10 0/8] app/procinfo: add some extended features Dongdong Liu
2022-11-04  9:16   ` Dongdong Liu
2022-11-15  9:52   ` David Marchand
2022-11-15 11:00     ` Dongdong Liu

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=20220921142655.16427-4-liudongdong3@huawei.com \
    --to=liudongdong3@huawei.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@xilinx.com \
    --cc=humin29@huawei.com \
    --cc=maryam.tahhan@intel.com \
    --cc=reshma.pattan@intel.com \
    --cc=thomas@monjalon.net \
    /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.