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 3/6] app/procinfo: add module info dump
Date: Fri, 22 Jul 2022 17:12:33 +0800	[thread overview]
Message-ID: <20220722091236.15469-4-liudongdong3@huawei.com> (raw)
In-Reply-To: <20220722091236.15469-1-liudongdong3@huawei.com>

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

This patch add support for module info dump.

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

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

diff --git a/app/proc-info/main.c b/app/proc-info/main.c
index 8174acfa9c..1e06394370 100644
--- a/app/proc-info/main.c
+++ b/app/proc-info/main.c
@@ -107,6 +107,8 @@ static char *dump_regs_file_prefix;
 static uint32_t enable_shw_version;
 /* Enable show RSS reta. */
 static uint32_t enable_shw_rss_reta;
+/* Enable show module info. */
+static uint32_t enable_shw_module_info;
 
 /**< display usage */
 static void
@@ -137,6 +139,7 @@ proc_info_usage(const char *prgname)
 		"  --show-mempool[=name]: to display mempool information\n"
 		"  --show-version: to display DPDK version and firmware version\n"
 		"  --show-rss-reta: to display ports redirection table\n"
+		"  --show-module-info: to display ports module info\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);
@@ -251,6 +254,7 @@ proc_info_parse_args(int argc, char **argv)
 		{"dump-regs", required_argument, NULL, 0},
 		{"show-version", 0, NULL, 0},
 		{"show-rss-reta", 0, NULL, 0},
+		{"show-module-info", 0, NULL, 0},
 		{NULL, 0, 0, 0}
 	};
 
@@ -328,6 +332,9 @@ proc_info_parse_args(int argc, char **argv)
 			else if (!strncmp(long_option[option_index].name,
 					"show-rss-reta", MAX_LONG_OPT_SZ))
 				enable_shw_rss_reta = 1;
+			else if (!strncmp(long_option[option_index].name,
+					"show-module-info", MAX_LONG_OPT_SZ))
+				enable_shw_module_info = 1;
 			break;
 		case 1:
 			/* Print xstat single value given by name*/
@@ -1570,6 +1577,52 @@ static void show_port_rss_reta_info(void)
 	}
 }
 
+static void show_module_eeprom_info(void)
+{
+#define EEPROM_DUMP_CHUNKSIZE 1024
+
+	unsigned char bytes_eeprom[EEPROM_DUMP_CHUNKSIZE];
+	struct rte_eth_dev_module_info module_info;
+	struct rte_dev_eeprom_info eeprom_info;
+	uint16_t i;
+	int ret;
+
+	RTE_ETH_FOREACH_DEV(i) {
+		/* Skip if port is not in mask */
+		if ((enabled_port_mask & (1ul << i)) == 0)
+			continue;
+
+		snprintf(bdr_str, MAX_STRING_LEN, " Port %u ", i);
+		STATS_BDR_STR(5, bdr_str);
+
+		if (!rte_eth_dev_is_valid_port(i)) {
+			printf("Error: Invalid port number %u\n", i);
+			continue;
+		}
+
+		ret = rte_eth_dev_get_module_info(i, &module_info);
+		if (ret != 0) {
+			printf("Module EEPROM information read error %d\n", ret);
+			return;
+		}
+
+		eeprom_info.offset = 0;
+		eeprom_info.length = module_info.eeprom_len;
+		eeprom_info.data = bytes_eeprom;
+
+		ret = rte_eth_dev_get_module_eeprom(i, &eeprom_info);
+		if (ret != 0) {
+			printf("Module EEPROM read error %d\n", ret);
+			return;
+		}
+
+		rte_hexdump(stdout, "hexdump", eeprom_info.data,
+			    eeprom_info.length);
+		printf("Finish -- Port: %d MODULE EEPROM length: %d bytes\n",
+		       i, eeprom_info.length);
+	}
+}
+
 int
 main(int argc, char **argv)
 {
@@ -1687,6 +1740,8 @@ main(int argc, char **argv)
 		show_version();
 	if (enable_shw_rss_reta)
 		show_port_rss_reta_info();
+	if (enable_shw_module_info)
+		show_module_eeprom_info();
 	RTE_ETH_FOREACH_DEV(i)
 		rte_eth_dev_close(i);
 
-- 
2.22.0


  parent reply	other threads:[~2022-07-22  9:13 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 ` Dongdong Liu [this message]
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   ` [PATCH v3 3/7] app/procinfo: add RSS RETA dump Dongdong Liu
2022-09-23  9:42     ` 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=20220722091236.15469-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.