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: Dongdong Liu <liudongdong3@huawei.com>,
Min Hu <humin29@huawei.com>,
Maryam Tahhan <maryam.tahhan@intel.com>
Subject: [PATCH v8 7/8] app/procinfo: support descriptor dump
Date: Sat, 8 Oct 2022 17:39:50 +0800 [thread overview]
Message-ID: <20221008093951.12946-8-liudongdong3@huawei.com> (raw)
In-Reply-To: <20221008093951.12946-1-liudongdong3@huawei.com>
This patch support Rx/Tx descriptor dump
The command is like:
dpdk-proc-info -a xxxx:xx:xx.x --file-prefix=xxx --
--show-rx-descriptor queue_id:offset:num
dpdk-proc-info -a xxxx:xx:xx.x --file-prefix=xxx --
--show-tx-descriptor queue_id:offset:num
queue_id: A queue identifier on this port.
offset: The offset of the descriptor starting from tail.
num: The number of the descriptors to dump.
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
---
app/proc-info/main.c | 81 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 81 insertions(+)
diff --git a/app/proc-info/main.c b/app/proc-info/main.c
index fe8285d2ce..1558f4b7d1 100644
--- a/app/proc-info/main.c
+++ b/app/proc-info/main.c
@@ -54,6 +54,9 @@
#define STATS_BDR_STR(w, s) printf("%.*s%s%.*s\n", w, \
STATS_BDR_FMT, s, w, STATS_BDR_FMT)
+typedef int (*desc_dump_t)(uint16_t port_id, uint16_t queue_id,
+ uint16_t offset, uint16_t num, FILE *file);
+
/* mask of enabled ports */
static unsigned long enabled_port_mask;
/* Enable stats. */
@@ -117,6 +120,21 @@ static uint32_t enable_shw_rss_reta;
/* Enable show module eeprom information. */
static uint32_t enable_shw_module_eeprom;
+/* Enable dump Rx/Tx descriptor. */
+static uint32_t enable_shw_rx_desc_dump;
+static uint32_t enable_shw_tx_desc_dump;
+
+#define DESC_PARAM_NUM 3
+
+struct desc_param {
+ uint16_t queue_id; /* A queue identifier on this port. */
+ uint16_t offset; /* The offset of the descriptor starting from tail. */
+ uint16_t num; /* The number of the descriptors to dump. */
+};
+
+static struct desc_param rx_desc_param;
+static struct desc_param tx_desc_param;
+
/* display usage */
static void
proc_info_usage(const char *prgname)
@@ -148,6 +166,14 @@ proc_info_usage(const char *prgname)
" --firmware-version: to display ethdev firmware version\n"
" --show-rss-reta: to display ports redirection table\n"
" --show-module-eeprom: to display ports module eeprom information\n"
+ " --show-rx-descriptor queue_id:offset:num to display ports Rx descriptor information. "
+ "queue_id: A Rx queue identifier on this port. "
+ "offset: The offset of the descriptor starting from tail. "
+ "num: The number of the descriptors to dump.\n"
+ " --show-tx-descriptor queue_id:offset:num to display ports Tx descriptor information. "
+ "queue_id: A Tx queue identifier on this port. "
+ "offset: The offset of the descriptor starting from tail. "
+ "num: The number of the descriptors to dump.\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);
@@ -200,6 +226,20 @@ parse_xstats_ids(char *list, uint64_t *ids, int limit) {
return length;
}
+static int
+parse_descriptor_param(char *list, struct desc_param *desc)
+{
+ int ret;
+
+ ret = sscanf(list, "%hu:%hu:%hu", &desc->queue_id, &desc->offset,
+ &desc->num);
+ if (ret != DESC_PARAM_NUM) {
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
static int
proc_info_preparse_args(int argc, char **argv)
{
@@ -264,6 +304,8 @@ proc_info_parse_args(int argc, char **argv)
{"firmware-version", 0, NULL, 0},
{"show-rss-reta", 0, NULL, 0},
{"show-module-eeprom", 0, NULL, 0},
+ {"show-rx-descriptor", required_argument, NULL, 1},
+ {"show-tx-descriptor", required_argument, NULL, 1},
{NULL, 0, 0, 0}
};
@@ -367,6 +409,24 @@ proc_info_parse_args(int argc, char **argv)
return -1;
}
nb_xstats_ids = ret;
+ } else if (!strncmp(long_option[option_index].name,
+ "show-rx-descriptor", MAX_LONG_OPT_SZ)) {
+ int ret = parse_descriptor_param(optarg,
+ &rx_desc_param);
+ if (ret < 0) {
+ printf("Rx descriptor param parse error.\n");
+ return -1;
+ }
+ enable_shw_rx_desc_dump = 1;
+ } else if (!strncmp(long_option[option_index].name,
+ "show-tx-descriptor", MAX_LONG_OPT_SZ)) {
+ int ret = parse_descriptor_param(optarg,
+ &tx_desc_param);
+ if (ret < 0) {
+ printf("Tx descriptor param parse error.\n");
+ return -1;
+ }
+ enable_shw_tx_desc_dump = 1;
}
break;
default:
@@ -1644,6 +1704,21 @@ show_module_eeprom_info(void)
}
}
+static void
+nic_descriptor_display(uint16_t port_id, struct desc_param *desc,
+ desc_dump_t desc_dump)
+{
+ static const char *nic_desc_border = "###";
+ uint16_t queue_id = desc->queue_id;
+ uint16_t offset = desc->offset;
+ uint16_t num = desc->num;
+
+ printf("%s NIC descriptor for port %u %s\n",
+ nic_desc_border, port_id, nic_desc_border);
+
+ desc_dump(port_id, queue_id, offset, num, stdout);
+}
+
int
main(int argc, char **argv)
{
@@ -1732,6 +1807,12 @@ main(int argc, char **argv)
metrics_display(i);
#endif
+ if (enable_shw_rx_desc_dump)
+ nic_descriptor_display(i, &rx_desc_param,
+ rte_eth_rx_descriptor_dump);
+ if (enable_shw_tx_desc_dump)
+ nic_descriptor_display(i, &tx_desc_param,
+ rte_eth_tx_descriptor_dump);
}
#ifdef RTE_LIB_METRICS
--
2.22.0
next prev parent reply other threads:[~2022-10-08 9:42 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 ` [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 ` Dongdong Liu [this message]
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=20221008093951.12946-8-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.