[v2] app/procinfo: add devcie private info dump

Message ID 20220221022412.47258-1-humin29@huawei.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series [v2] app/procinfo: add devcie private info dump |

Checks

Context Check Description
ci/iol-x86_64-compile-testing success Testing PASS
ci/checkpatch warning coding style issues
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/github-robot: build success github build: passed
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS

Commit Message

humin (Q) Feb. 21, 2022, 2:24 a.m. UTC
  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

humin (Q) April 7, 2022, 8:09 a.m. UTC | #1
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)
>
  
humin (Q) April 18, 2022, 1:11 a.m. UTC | #2
Hi, all,
     any comments for this patch?

在 2022/4/7 16:09, Min Hu (Connor) 写道:
> Hi, all,
>      any comments for this patch?
  
humin (Q) April 25, 2022, 6:44 a.m. UTC | #3
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)
>>
> .
  
humin (Q) May 21, 2022, 6:54 a.m. UTC | #4
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)
>
  
Ferruh Yigit May 23, 2022, 8:43 a.m. UTC | #5
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)
>>
  
Pattan, Reshma May 25, 2022, 2:33 p.m. UTC | #6
> -----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>
  
humin (Q) May 26, 2022, 6:01 a.m. UTC | #7
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>
> 
> .
>
  

Patch

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)