[v2] app/procinfo: add devcie private info dump
Checks
Commit Message
This patch adds support for dump the device private info from a running
application. It can help developers locate the problem.
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
---
v2:
* fix way of handling ports.
---
app/proc-info/main.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
Comments
Hi, all,
any comments for this patch?
在 2022/2/21 10:24, Min Hu (Connor) 写道:
> This patch adds support for dump the device private info from a running
> application. It can help developers locate the problem.
>
> Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
> ---
> v2:
> * fix way of handling ports.
> ---
> app/proc-info/main.c | 28 ++++++++++++++++++++++++++++
> 1 file changed, 28 insertions(+)
>
> diff --git a/app/proc-info/main.c b/app/proc-info/main.c
> index 56070a3317..accb5e716d 100644
> --- a/app/proc-info/main.c
> +++ b/app/proc-info/main.c
> @@ -84,6 +84,8 @@ static char bdr_str[MAX_STRING_LEN];
>
> /**< Enable show port. */
> static uint32_t enable_shw_port;
> +/**< Enable show port private info. */
> +static uint32_t enable_shw_port_priv;
> /**< Enable show tm. */
> static uint32_t enable_shw_tm;
> /**< Enable show crypto. */
> @@ -123,6 +125,7 @@ proc_info_usage(const char *prgname)
> " --collectd-format: to print statistics to STDOUT in expected by collectd format\n"
> " --host-id STRING: host id used to identify the system process is running on\n"
> " --show-port: to display ports information\n"
> + " --show-port-private: to display ports private information\n"
> " --show-tm: to display traffic manager information for ports\n"
> " --show-crypto: to display crypto information\n"
> " --show-ring[=name]: to display ring information\n"
> @@ -232,6 +235,7 @@ proc_info_parse_args(int argc, char **argv)
> {"xstats-ids", 1, NULL, 1},
> {"host-id", 0, NULL, 0},
> {"show-port", 0, NULL, 0},
> + {"show-port-private", 0, NULL, 0},
> {"show-tm", 0, NULL, 0},
> {"show-crypto", 0, NULL, 0},
> {"show-ring", optional_argument, NULL, 0},
> @@ -284,6 +288,9 @@ proc_info_parse_args(int argc, char **argv)
> else if (!strncmp(long_option[option_index].name,
> "show-port", MAX_LONG_OPT_SZ))
> enable_shw_port = 1;
> + else if (!strncmp(long_option[option_index].name,
> + "show-port-private", MAX_LONG_OPT_SZ))
> + enable_shw_port_priv = 1;
> else if (!strncmp(long_option[option_index].name,
> "show-tm", MAX_LONG_OPT_SZ))
> enable_shw_tm = 1;
> @@ -887,6 +894,25 @@ show_port(void)
> }
> }
>
> +static void
> +show_port_private_info(void)
> +{
> + int i;
> +
> + snprintf(bdr_str, MAX_STRING_LEN, " show - Port PMD Private ");
> + STATS_BDR_STR(10, bdr_str);
> +
> + 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);
> + rte_eth_dev_priv_dump(i, stdout);
> + }
> +}
> +
> static void
> display_nodecap_info(int is_leaf, struct rte_tm_node_capabilities *cap)
> {
> @@ -1549,6 +1575,8 @@ main(int argc, char **argv)
> /* show information for PMD */
> if (enable_shw_port)
> show_port();
> + if (enable_shw_port_priv)
> + show_port_private_info();
> if (enable_shw_tm)
> show_tm();
> if (enable_shw_crypto)
>
Hi, all,
any comments for this patch?
在 2022/4/7 16:09, Min Hu (Connor) 写道:
> Hi, all,
> any comments for this patch?
Hi, Ferruh,
what do you think of this patch?
在 2022/4/7 16:09, Min Hu (Connor) 写道:
> Hi, all,
> any comments for this patch?
>
> 在 2022/2/21 10:24, Min Hu (Connor) 写道:
>> This patch adds support for dump the device private info from a running
>> application. It can help developers locate the problem.
>>
>> Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
>> ---
>> v2:
>> * fix way of handling ports.
>> ---
>> app/proc-info/main.c | 28 ++++++++++++++++++++++++++++
>> 1 file changed, 28 insertions(+)
>>
>> diff --git a/app/proc-info/main.c b/app/proc-info/main.c
>> index 56070a3317..accb5e716d 100644
>> --- a/app/proc-info/main.c
>> +++ b/app/proc-info/main.c
>> @@ -84,6 +84,8 @@ static char bdr_str[MAX_STRING_LEN];
>> /**< Enable show port. */
>> static uint32_t enable_shw_port;
>> +/**< Enable show port private info. */
>> +static uint32_t enable_shw_port_priv;
>> /**< Enable show tm. */
>> static uint32_t enable_shw_tm;
>> /**< Enable show crypto. */
>> @@ -123,6 +125,7 @@ proc_info_usage(const char *prgname)
>> " --collectd-format: to print statistics to STDOUT in
>> expected by collectd format\n"
>> " --host-id STRING: host id used to identify the system
>> process is running on\n"
>> " --show-port: to display ports information\n"
>> + " --show-port-private: to display ports private information\n"
>> " --show-tm: to display traffic manager information for
>> ports\n"
>> " --show-crypto: to display crypto information\n"
>> " --show-ring[=name]: to display ring information\n"
>> @@ -232,6 +235,7 @@ proc_info_parse_args(int argc, char **argv)
>> {"xstats-ids", 1, NULL, 1},
>> {"host-id", 0, NULL, 0},
>> {"show-port", 0, NULL, 0},
>> + {"show-port-private", 0, NULL, 0},
>> {"show-tm", 0, NULL, 0},
>> {"show-crypto", 0, NULL, 0},
>> {"show-ring", optional_argument, NULL, 0},
>> @@ -284,6 +288,9 @@ proc_info_parse_args(int argc, char **argv)
>> else if (!strncmp(long_option[option_index].name,
>> "show-port", MAX_LONG_OPT_SZ))
>> enable_shw_port = 1;
>> + else if (!strncmp(long_option[option_index].name,
>> + "show-port-private", MAX_LONG_OPT_SZ))
>> + enable_shw_port_priv = 1;
>> else if (!strncmp(long_option[option_index].name,
>> "show-tm", MAX_LONG_OPT_SZ))
>> enable_shw_tm = 1;
>> @@ -887,6 +894,25 @@ show_port(void)
>> }
>> }
>> +static void
>> +show_port_private_info(void)
>> +{
>> + int i;
>> +
>> + snprintf(bdr_str, MAX_STRING_LEN, " show - Port PMD Private ");
>> + STATS_BDR_STR(10, bdr_str);
>> +
>> + 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);
>> + rte_eth_dev_priv_dump(i, stdout);
>> + }
>> +}
>> +
>> static void
>> display_nodecap_info(int is_leaf, struct rte_tm_node_capabilities *cap)
>> {
>> @@ -1549,6 +1575,8 @@ main(int argc, char **argv)
>> /* show information for PMD */
>> if (enable_shw_port)
>> show_port();
>> + if (enable_shw_port_priv)
>> + show_port_private_info();
>> if (enable_shw_tm)
>> show_tm();
>> if (enable_shw_crypto)
>>
> .
Hi, Ferruh,
what do you think of this patch?
在 2022/2/21 10:24, Min Hu (Connor) 写道:
> This patch adds support for dump the device private info from a running
> application. It can help developers locate the problem.
>
> Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
> ---
> v2:
> * fix way of handling ports.
> ---
> app/proc-info/main.c | 28 ++++++++++++++++++++++++++++
> 1 file changed, 28 insertions(+)
>
> diff --git a/app/proc-info/main.c b/app/proc-info/main.c
> index 56070a3317..accb5e716d 100644
> --- a/app/proc-info/main.c
> +++ b/app/proc-info/main.c
> @@ -84,6 +84,8 @@ static char bdr_str[MAX_STRING_LEN];
>
> /**< Enable show port. */
> static uint32_t enable_shw_port;
> +/**< Enable show port private info. */
> +static uint32_t enable_shw_port_priv;
> /**< Enable show tm. */
> static uint32_t enable_shw_tm;
> /**< Enable show crypto. */
> @@ -123,6 +125,7 @@ proc_info_usage(const char *prgname)
> " --collectd-format: to print statistics to STDOUT in expected by collectd format\n"
> " --host-id STRING: host id used to identify the system process is running on\n"
> " --show-port: to display ports information\n"
> + " --show-port-private: to display ports private information\n"
> " --show-tm: to display traffic manager information for ports\n"
> " --show-crypto: to display crypto information\n"
> " --show-ring[=name]: to display ring information\n"
> @@ -232,6 +235,7 @@ proc_info_parse_args(int argc, char **argv)
> {"xstats-ids", 1, NULL, 1},
> {"host-id", 0, NULL, 0},
> {"show-port", 0, NULL, 0},
> + {"show-port-private", 0, NULL, 0},
> {"show-tm", 0, NULL, 0},
> {"show-crypto", 0, NULL, 0},
> {"show-ring", optional_argument, NULL, 0},
> @@ -284,6 +288,9 @@ proc_info_parse_args(int argc, char **argv)
> else if (!strncmp(long_option[option_index].name,
> "show-port", MAX_LONG_OPT_SZ))
> enable_shw_port = 1;
> + else if (!strncmp(long_option[option_index].name,
> + "show-port-private", MAX_LONG_OPT_SZ))
> + enable_shw_port_priv = 1;
> else if (!strncmp(long_option[option_index].name,
> "show-tm", MAX_LONG_OPT_SZ))
> enable_shw_tm = 1;
> @@ -887,6 +894,25 @@ show_port(void)
> }
> }
>
> +static void
> +show_port_private_info(void)
> +{
> + int i;
> +
> + snprintf(bdr_str, MAX_STRING_LEN, " show - Port PMD Private ");
> + STATS_BDR_STR(10, bdr_str);
> +
> + 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);
> + rte_eth_dev_priv_dump(i, stdout);
> + }
> +}
> +
> static void
> display_nodecap_info(int is_leaf, struct rte_tm_node_capabilities *cap)
> {
> @@ -1549,6 +1575,8 @@ main(int argc, char **argv)
> /* show information for PMD */
> if (enable_shw_port)
> show_port();
> + if (enable_shw_port_priv)
> + show_port_private_info();
> if (enable_shw_tm)
> show_tm();
> if (enable_shw_crypto)
>
On 5/21/2022 7:54 AM, Min Hu (Connor) wrote:
> CAUTION: This message has originated from an External Source. Please use
> proper judgment and caution when opening attachments, clicking links, or
> responding to this email.
>
>
> Hi, Ferruh,
> what do you think of this patch?
>
Hi Connor,
Maryam & Reshma are maintainers of the tool, both are cc'ed.
>
> 在 2022/2/21 10:24, Min Hu (Connor) 写道:
>> This patch adds support for dump the device private info from a running
>> application. It can help developers locate the problem.
>>
>> Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
>> ---
>> v2:
>> * fix way of handling ports.
>> ---
>> app/proc-info/main.c | 28 ++++++++++++++++++++++++++++
>> 1 file changed, 28 insertions(+)
>>
>> diff --git a/app/proc-info/main.c b/app/proc-info/main.c
>> index 56070a3317..accb5e716d 100644
>> --- a/app/proc-info/main.c
>> +++ b/app/proc-info/main.c
>> @@ -84,6 +84,8 @@ static char bdr_str[MAX_STRING_LEN];
>>
>> /**< Enable show port. */
>> static uint32_t enable_shw_port;
>> +/**< Enable show port private info. */
>> +static uint32_t enable_shw_port_priv;
>> /**< Enable show tm. */
>> static uint32_t enable_shw_tm;
>> /**< Enable show crypto. */
>> @@ -123,6 +125,7 @@ proc_info_usage(const char *prgname)
>> " --collectd-format: to print statistics to STDOUT in
>> expected by collectd format\n"
>> " --host-id STRING: host id used to identify the system
>> process is running on\n"
>> " --show-port: to display ports information\n"
>> + " --show-port-private: to display ports private
>> information\n"
>> " --show-tm: to display traffic manager information for
>> ports\n"
>> " --show-crypto: to display crypto information\n"
>> " --show-ring[=name]: to display ring information\n"
>> @@ -232,6 +235,7 @@ proc_info_parse_args(int argc, char **argv)
>> {"xstats-ids", 1, NULL, 1},
>> {"host-id", 0, NULL, 0},
>> {"show-port", 0, NULL, 0},
>> + {"show-port-private", 0, NULL, 0},
>> {"show-tm", 0, NULL, 0},
>> {"show-crypto", 0, NULL, 0},
>> {"show-ring", optional_argument, NULL, 0},
>> @@ -284,6 +288,9 @@ proc_info_parse_args(int argc, char **argv)
>> else if (!strncmp(long_option[option_index].name,
>> "show-port", MAX_LONG_OPT_SZ))
>> enable_shw_port = 1;
>> + else if (!strncmp(long_option[option_index].name,
>> + "show-port-private",
>> MAX_LONG_OPT_SZ))
>> + enable_shw_port_priv = 1;
>> else if (!strncmp(long_option[option_index].name,
>> "show-tm", MAX_LONG_OPT_SZ))
>> enable_shw_tm = 1;
>> @@ -887,6 +894,25 @@ show_port(void)
>> }
>> }
>>
>> +static void
>> +show_port_private_info(void)
>> +{
>> + int i;
>> +
>> + snprintf(bdr_str, MAX_STRING_LEN, " show - Port PMD Private ");
>> + STATS_BDR_STR(10, bdr_str);
>> +
>> + 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);
>> + rte_eth_dev_priv_dump(i, stdout);
>> + }
>> +}
>> +
>> static void
>> display_nodecap_info(int is_leaf, struct rte_tm_node_capabilities *cap)
>> {
>> @@ -1549,6 +1575,8 @@ main(int argc, char **argv)
>> /* show information for PMD */
>> if (enable_shw_port)
>> show_port();
>> + if (enable_shw_port_priv)
>> + show_port_private_info();
>> if (enable_shw_tm)
>> show_tm();
>> if (enable_shw_crypto)
>>
> -----Original Message-----
> From: Min Hu (Connor) <humin29@huawei.com>
> Subject: [PATCH v2] app/procinfo: add devcie private info dump
Typo: device*
> +static void
> +show_port_private_info(void)
> +{
> + int i;
> +
> + snprintf(bdr_str, MAX_STRING_LEN, " show - Port PMD Private ");
Better to have header message to be "Dump - Ports private information"
Looks ok to me.
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
Hi, Pattan,
V3 has been sent, thanks
在 2022/5/25 22:33, Pattan, Reshma 写道:
>
>
>
>> -----Original Message-----
>> From: Min Hu (Connor) <humin29@huawei.com>
>> Subject: [PATCH v2] app/procinfo: add devcie private info dump
>
> Typo: device*
>
>> +static void
>> +show_port_private_info(void)
>> +{
>> + int i;
>> +
>> + snprintf(bdr_str, MAX_STRING_LEN, " show - Port PMD Private ");
>
> Better to have header message to be "Dump - Ports private information"
>
> Looks ok to me.
>
> Acked-by: Reshma Pattan <reshma.pattan@intel.com>
>
> .
>
@@ -84,6 +84,8 @@ static char bdr_str[MAX_STRING_LEN];
/**< Enable show port. */
static uint32_t enable_shw_port;
+/**< Enable show port private info. */
+static uint32_t enable_shw_port_priv;
/**< Enable show tm. */
static uint32_t enable_shw_tm;
/**< Enable show crypto. */
@@ -123,6 +125,7 @@ proc_info_usage(const char *prgname)
" --collectd-format: to print statistics to STDOUT in expected by collectd format\n"
" --host-id STRING: host id used to identify the system process is running on\n"
" --show-port: to display ports information\n"
+ " --show-port-private: to display ports private information\n"
" --show-tm: to display traffic manager information for ports\n"
" --show-crypto: to display crypto information\n"
" --show-ring[=name]: to display ring information\n"
@@ -232,6 +235,7 @@ proc_info_parse_args(int argc, char **argv)
{"xstats-ids", 1, NULL, 1},
{"host-id", 0, NULL, 0},
{"show-port", 0, NULL, 0},
+ {"show-port-private", 0, NULL, 0},
{"show-tm", 0, NULL, 0},
{"show-crypto", 0, NULL, 0},
{"show-ring", optional_argument, NULL, 0},
@@ -284,6 +288,9 @@ proc_info_parse_args(int argc, char **argv)
else if (!strncmp(long_option[option_index].name,
"show-port", MAX_LONG_OPT_SZ))
enable_shw_port = 1;
+ else if (!strncmp(long_option[option_index].name,
+ "show-port-private", MAX_LONG_OPT_SZ))
+ enable_shw_port_priv = 1;
else if (!strncmp(long_option[option_index].name,
"show-tm", MAX_LONG_OPT_SZ))
enable_shw_tm = 1;
@@ -887,6 +894,25 @@ show_port(void)
}
}
+static void
+show_port_private_info(void)
+{
+ int i;
+
+ snprintf(bdr_str, MAX_STRING_LEN, " show - Port PMD Private ");
+ STATS_BDR_STR(10, bdr_str);
+
+ 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);
+ rte_eth_dev_priv_dump(i, stdout);
+ }
+}
+
static void
display_nodecap_info(int is_leaf, struct rte_tm_node_capabilities *cap)
{
@@ -1549,6 +1575,8 @@ main(int argc, char **argv)
/* show information for PMD */
if (enable_shw_port)
show_port();
+ if (enable_shw_port_priv)
+ show_port_private_info();
if (enable_shw_tm)
show_tm();
if (enable_shw_crypto)