DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH] app/procinfo: add device private info dump
@ 2022-02-19  1:59 Min Hu (Connor)
  2022-02-20  1:04 ` Stephen Hemminger
                   ` (2 more replies)
  0 siblings, 3 replies; 21+ messages in thread
From: Min Hu (Connor) @ 2022-02-19  1:59 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, thomas, maryam.tahhan, reshma.pattan

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>
---
 app/proc-info/main.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/app/proc-info/main.c b/app/proc-info/main.c
index 56070a3317..62a8b83bf5 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. */
+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,29 @@ 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);
+
+	for (i = 0; i < RTE_MAX_ETHPORTS; i++) {
+		/* Skip if port is not in mask */
+		if ((enabled_port_mask & (1ul << i)) == 0)
+			continue;
+
+		/* Skip if port is unused */
+		if (!rte_eth_dev_is_valid_port(i))
+			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 +1579,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)
-- 
2.33.0


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] app/procinfo: add device private info dump
  2022-02-19  1:59 [PATCH] app/procinfo: add device private info dump Min Hu (Connor)
@ 2022-02-20  1:04 ` Stephen Hemminger
  2022-02-20  8:56   ` Thomas Monjalon
  2022-02-21  2:24 ` [PATCH v2] app/procinfo: add devcie " Min Hu (Connor)
  2022-06-02  6:22 ` Min Hu (Connor)
  2 siblings, 1 reply; 21+ messages in thread
From: Stephen Hemminger @ 2022-02-20  1:04 UTC (permalink / raw)
  To: Min Hu (Connor); +Cc: dev, ferruh.yigit, thomas, maryam.tahhan, reshma.pattan

On Sat, 19 Feb 2022 09:59:16 +0800
"Min Hu (Connor)" <humin29@huawei.com> wrote:

> +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);
> +
> +	for (i = 0; i < RTE_MAX_ETHPORTS; i++) {
> +		/* Skip if port is not in mask */
> +		if ((enabled_port_mask & (1ul << i)) == 0)
> +			continue;
> +
> +		/* Skip if port is unused */
> +		if (!rte_eth_dev_is_valid_port(i))
> +			continue;

Maybe use RTE_ETH_FOREACH_DEV(i) here?

Procinfo is somewhat inconsistent, some code uses, and some does not.
The difference is that FOREACH skips ports that are "owned" i.e
associated with another port.

There probably should be a clear policy in the comments about
how this command should handle ports.  My preference would be
that it shows all valid ports, all the time since this is a diagnostic
command used to debug misconfiguration. 

There is RTE_ETH_FOREACH_VALID_DEV but it is marked internal?

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] app/procinfo: add device private info dump
  2022-02-20  1:04 ` Stephen Hemminger
@ 2022-02-20  8:56   ` Thomas Monjalon
  2022-02-21  2:26     ` Min Hu (Connor)
  0 siblings, 1 reply; 21+ messages in thread
From: Thomas Monjalon @ 2022-02-20  8:56 UTC (permalink / raw)
  To: Min Hu (Connor), Stephen Hemminger
  Cc: dev, ferruh.yigit, maryam.tahhan, reshma.pattan

20/02/2022 02:04, Stephen Hemminger:
> On Sat, 19 Feb 2022 09:59:16 +0800
> "Min Hu (Connor)" <humin29@huawei.com> wrote:
> 
> > +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);
> > +
> > +	for (i = 0; i < RTE_MAX_ETHPORTS; i++) {
> > +		/* Skip if port is not in mask */
> > +		if ((enabled_port_mask & (1ul << i)) == 0)
> > +			continue;
> > +
> > +		/* Skip if port is unused */
> > +		if (!rte_eth_dev_is_valid_port(i))
> > +			continue;
> 
> Maybe use RTE_ETH_FOREACH_DEV(i) here?
> 
> Procinfo is somewhat inconsistent, some code uses, and some does not.
> The difference is that FOREACH skips ports that are "owned" i.e
> associated with another port.

Yes RTE_ETH_FOREACH_DEV is for general usage,
you get only the ports you are supposed to manage.

> There probably should be a clear policy in the comments about
> how this command should handle ports.  My preference would be
> that it shows all valid ports, all the time since this is a diagnostic
> command used to debug misconfiguration. 
> 
> There is RTE_ETH_FOREACH_VALID_DEV but it is marked internal?

Yes, you get it right, RTE_ETH_FOREACH_VALID_DEV gets all ports
and that should be used only internally or for debugging.
If we expose it for debugging purpose, there is a risk of confusion.
The goal was to "force" applications to adopt good behaviour,
using RTE_ETH_FOREACH_DEV.
It means RTE_MAX_ETHPORTS must be used for debugging.
Is it a good decision?



^ permalink raw reply	[flat|nested] 21+ messages in thread

* [PATCH v2] app/procinfo: add devcie private info dump
  2022-02-19  1:59 [PATCH] app/procinfo: add device private info dump Min Hu (Connor)
  2022-02-20  1:04 ` Stephen Hemminger
@ 2022-02-21  2:24 ` Min Hu (Connor)
  2022-04-07  8:09   ` Min Hu (Connor)
                     ` (3 more replies)
  2022-06-02  6:22 ` Min Hu (Connor)
  2 siblings, 4 replies; 21+ messages in thread
From: Min Hu (Connor) @ 2022-02-21  2:24 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, stephen, thomas, maryam.tahhan, reshma.pattan

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)
-- 
2.33.0


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] app/procinfo: add device private info dump
  2022-02-20  8:56   ` Thomas Monjalon
@ 2022-02-21  2:26     ` Min Hu (Connor)
  2022-02-21 17:04       ` Stephen Hemminger
  0 siblings, 1 reply; 21+ messages in thread
From: Min Hu (Connor) @ 2022-02-21  2:26 UTC (permalink / raw)
  To: Thomas Monjalon, Stephen Hemminger
  Cc: dev, ferruh.yigit, maryam.tahhan, reshma.pattan

Hi,

在 2022/2/20 16:56, Thomas Monjalon 写道:
> 20/02/2022 02:04, Stephen Hemminger:
>> On Sat, 19 Feb 2022 09:59:16 +0800
>> "Min Hu (Connor)" <humin29@huawei.com> wrote:
>>
>>> +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);
>>> +
>>> +	for (i = 0; i < RTE_MAX_ETHPORTS; i++) {
>>> +		/* Skip if port is not in mask */
>>> +		if ((enabled_port_mask & (1ul << i)) == 0)
>>> +			continue;
>>> +
>>> +		/* Skip if port is unused */
>>> +		if (!rte_eth_dev_is_valid_port(i))
>>> +			continue;
>>
>> Maybe use RTE_ETH_FOREACH_DEV(i) here?
>>
>> Procinfo is somewhat inconsistent, some code uses, and some does not.
>> The difference is that FOREACH skips ports that are "owned" i.e
>> associated with another port.
> 
> Yes RTE_ETH_FOREACH_DEV is for general usage,
> you get only the ports you are supposed to manage.
> 
>> There probably should be a clear policy in the comments about
>> how this command should handle ports.  My preference would be
>> that it shows all valid ports, all the time since this is a diagnostic
>> command used to debug misconfiguration.
>>
>> There is RTE_ETH_FOREACH_VALID_DEV but it is marked internal?
> 
> Yes, you get it right, RTE_ETH_FOREACH_VALID_DEV gets all ports
> and that should be used only internally or for debugging.
> If we expose it for debugging purpose, there is a risk of confusion.
> The goal was to "force" applications to adopt good behaviour,
> using RTE_ETH_FOREACH_DEV.
Agree with using RTE_ETH_FOREACH_DEV, v2 has been sent out.

> It means RTE_MAX_ETHPORTS must be used for debugging.
> Is it a good decision?
> 
> 
> .
> 

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] app/procinfo: add device private info dump
  2022-02-21  2:26     ` Min Hu (Connor)
@ 2022-02-21 17:04       ` Stephen Hemminger
  2022-02-22  0:40         ` Min Hu (Connor)
  0 siblings, 1 reply; 21+ messages in thread
From: Stephen Hemminger @ 2022-02-21 17:04 UTC (permalink / raw)
  To: Min Hu (Connor)
  Cc: Thomas Monjalon, dev, ferruh.yigit, maryam.tahhan, reshma.pattan

On Mon, 21 Feb 2022 10:26:38 +0800
"Min Hu (Connor)" <humin29@huawei.com> wrote:

> Hi,
> 
> 在 2022/2/20 16:56, Thomas Monjalon 写道:
> > 20/02/2022 02:04, Stephen Hemminger:  
> >> On Sat, 19 Feb 2022 09:59:16 +0800
> >> "Min Hu (Connor)" <humin29@huawei.com> wrote:
> >>  
> >>> +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);
> >>> +
> >>> +	for (i = 0; i < RTE_MAX_ETHPORTS; i++) {
> >>> +		/* Skip if port is not in mask */
> >>> +		if ((enabled_port_mask & (1ul << i)) == 0)
> >>> +			continue;
> >>> +
> >>> +		/* Skip if port is unused */
> >>> +		if (!rte_eth_dev_is_valid_port(i))
> >>> +			continue;  
> >>
> >> Maybe use RTE_ETH_FOREACH_DEV(i) here?
> >>
> >> Procinfo is somewhat inconsistent, some code uses, and some does not.
> >> The difference is that FOREACH skips ports that are "owned" i.e
> >> associated with another port.  
> > 
> > Yes RTE_ETH_FOREACH_DEV is for general usage,
> > you get only the ports you are supposed to manage.
> >   
> >> There probably should be a clear policy in the comments about
> >> how this command should handle ports.  My preference would be
> >> that it shows all valid ports, all the time since this is a diagnostic
> >> command used to debug misconfiguration.
> >>
> >> There is RTE_ETH_FOREACH_VALID_DEV but it is marked internal?  
> > 
> > Yes, you get it right, RTE_ETH_FOREACH_VALID_DEV gets all ports
> > and that should be used only internally or for debugging.
> > If we expose it for debugging purpose, there is a risk of confusion.
> > The goal was to "force" applications to adopt good behaviour,
> > using RTE_ETH_FOREACH_DEV.  
> Agree with using RTE_ETH_FOREACH_DEV, v2 has been sent out.
> 
> > It means RTE_MAX_ETHPORTS must be used for debugging.
> > Is it a good decision?
> > 
> > 
> > .
> >   

Maybe procinfo should have a flag (--all) to show all devices.

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH] app/procinfo: add device private info dump
  2022-02-21 17:04       ` Stephen Hemminger
@ 2022-02-22  0:40         ` Min Hu (Connor)
  0 siblings, 0 replies; 21+ messages in thread
From: Min Hu (Connor) @ 2022-02-22  0:40 UTC (permalink / raw)
  To: Stephen Hemminger
  Cc: Thomas Monjalon, dev, ferruh.yigit, maryam.tahhan, reshma.pattan


HI,

在 2022/2/22 1:04, Stephen Hemminger 写道:
> On Mon, 21 Feb 2022 10:26:38 +0800
> "Min Hu (Connor)" <humin29@huawei.com> wrote:
> 
>> Hi,
>>
>> 在 2022/2/20 16:56, Thomas Monjalon 写道:
>>> 20/02/2022 02:04, Stephen Hemminger:
>>>> On Sat, 19 Feb 2022 09:59:16 +0800
>>>> "Min Hu (Connor)" <humin29@huawei.com> wrote:
>>>>   
>>>>> +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);
>>>>> +
>>>>> +	for (i = 0; i < RTE_MAX_ETHPORTS; i++) {
>>>>> +		/* Skip if port is not in mask */
>>>>> +		if ((enabled_port_mask & (1ul << i)) == 0)
>>>>> +			continue;
>>>>> +
>>>>> +		/* Skip if port is unused */
>>>>> +		if (!rte_eth_dev_is_valid_port(i))
>>>>> +			continue;
>>>>
>>>> Maybe use RTE_ETH_FOREACH_DEV(i) here?
>>>>
>>>> Procinfo is somewhat inconsistent, some code uses, and some does not.
>>>> The difference is that FOREACH skips ports that are "owned" i.e
>>>> associated with another port.
>>>
>>> Yes RTE_ETH_FOREACH_DEV is for general usage,
>>> you get only the ports you are supposed to manage.
>>>    
>>>> There probably should be a clear policy in the comments about
>>>> how this command should handle ports.  My preference would be
>>>> that it shows all valid ports, all the time since this is a diagnostic
>>>> command used to debug misconfiguration.
>>>>
>>>> There is RTE_ETH_FOREACH_VALID_DEV but it is marked internal?
>>>
>>> Yes, you get it right, RTE_ETH_FOREACH_VALID_DEV gets all ports
>>> and that should be used only internally or for debugging.
>>> If we expose it for debugging purpose, there is a risk of confusion.
>>> The goal was to "force" applications to adopt good behaviour,
>>> using RTE_ETH_FOREACH_DEV.
>> Agree with using RTE_ETH_FOREACH_DEV, v2 has been sent out.
>>
>>> It means RTE_MAX_ETHPORTS must be used for debugging.
>>> Is it a good decision?
>>>
>>>
>>> .
>>>    
> 
> Maybe procinfo should have a flag (--all) to show all devices.
How about keep the patch as v1 shows, like that:
+	for (i = 0; i < RTE_MAX_ETHPORTS; i++) {
+		/* Skip if port is not in mask */
+		if ((enabled_port_mask & (1ul << i)) == 0)
+			continue;
+
+		/* Skip if port is unused */
+		if (!rte_eth_dev_is_valid_port(i))
+			continue;

This can show all devices.
> .
> 

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH v2] app/procinfo: add devcie private info dump
  2022-02-21  2:24 ` [PATCH v2] app/procinfo: add devcie " Min Hu (Connor)
@ 2022-04-07  8:09   ` Min Hu (Connor)
  2022-04-18  1:11     ` Min Hu (Connor)
  2022-04-25  6:44     ` Min Hu (Connor)
  2022-05-21  6:54   ` Min Hu (Connor)
                     ` (2 subsequent siblings)
  3 siblings, 2 replies; 21+ messages in thread
From: Min Hu (Connor) @ 2022-04-07  8:09 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, stephen, thomas, maryam.tahhan, reshma.pattan

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)
> 

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH v2] app/procinfo: add devcie private info dump
  2022-04-07  8:09   ` Min Hu (Connor)
@ 2022-04-18  1:11     ` Min Hu (Connor)
  2022-04-25  6:44     ` Min Hu (Connor)
  1 sibling, 0 replies; 21+ messages in thread
From: Min Hu (Connor) @ 2022-04-18  1:11 UTC (permalink / raw)
  To: dev; +Cc: ferruh.yigit, stephen, thomas, maryam.tahhan, reshma.pattan

Hi, all,
     any comments for this patch?

在 2022/4/7 16:09, Min Hu (Connor) 写道:
> Hi, all,
>      any comments for this patch?

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH v2] app/procinfo: add devcie private info dump
  2022-04-07  8:09   ` Min Hu (Connor)
  2022-04-18  1:11     ` Min Hu (Connor)
@ 2022-04-25  6:44     ` Min Hu (Connor)
  1 sibling, 0 replies; 21+ messages in thread
From: Min Hu (Connor) @ 2022-04-25  6:44 UTC (permalink / raw)
  To: dev
  Cc: ferruh.yigit, stephen, thomas, maryam.tahhan, reshma.pattan,
	ferruh.yigit

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)
>>
> .

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH v2] app/procinfo: add devcie private info dump
  2022-02-21  2:24 ` [PATCH v2] app/procinfo: add devcie " Min Hu (Connor)
  2022-04-07  8:09   ` Min Hu (Connor)
@ 2022-05-21  6:54   ` Min Hu (Connor)
  2022-05-23  8:43     ` Ferruh Yigit
  2022-05-25 14:33   ` Pattan, Reshma
  2022-05-26  1:10   ` [PATCH v3] app/procinfo: add device " Min Hu (Connor)
  3 siblings, 1 reply; 21+ messages in thread
From: Min Hu (Connor) @ 2022-05-21  6:54 UTC (permalink / raw)
  To: dev
  Cc: ferruh.yigit, stephen, thomas, maryam.tahhan, reshma.pattan,
	Ferruh Yigit

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)
> 

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH v2] app/procinfo: add devcie private info dump
  2022-05-21  6:54   ` Min Hu (Connor)
@ 2022-05-23  8:43     ` Ferruh Yigit
  0 siblings, 0 replies; 21+ messages in thread
From: Ferruh Yigit @ 2022-05-23  8:43 UTC (permalink / raw)
  To: reshma.pattan, Maryam Tahhan; +Cc: stephen, thomas, dev, Min Hu (Connor)

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)
>>


^ permalink raw reply	[flat|nested] 21+ messages in thread

* RE: [PATCH v2] app/procinfo: add devcie private info dump
  2022-02-21  2:24 ` [PATCH v2] app/procinfo: add devcie " Min Hu (Connor)
  2022-04-07  8:09   ` Min Hu (Connor)
  2022-05-21  6:54   ` Min Hu (Connor)
@ 2022-05-25 14:33   ` Pattan, Reshma
  2022-05-26  6:01     ` Min Hu (Connor)
  2022-05-26  1:10   ` [PATCH v3] app/procinfo: add device " Min Hu (Connor)
  3 siblings, 1 reply; 21+ messages in thread
From: Pattan, Reshma @ 2022-05-25 14:33 UTC (permalink / raw)
  To: Min Hu (Connor), dev; +Cc: Yigit, Ferruh, stephen, thomas, maryam.tahhan




> -----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>


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [PATCH v3] app/procinfo: add device private info dump
  2022-02-21  2:24 ` [PATCH v2] app/procinfo: add devcie " Min Hu (Connor)
                     ` (2 preceding siblings ...)
  2022-05-25 14:33   ` Pattan, Reshma
@ 2022-05-26  1:10   ` Min Hu (Connor)
  3 siblings, 0 replies; 21+ messages in thread
From: Min Hu (Connor) @ 2022-05-26  1:10 UTC (permalink / raw)
  To: dev

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>
---
v3:
* fix wrong spelling.

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..1d350291b9 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, " Dump - Ports private information");
+	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)
-- 
2.33.0


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH v2] app/procinfo: add devcie private info dump
  2022-05-25 14:33   ` Pattan, Reshma
@ 2022-05-26  6:01     ` Min Hu (Connor)
  0 siblings, 0 replies; 21+ messages in thread
From: Min Hu (Connor) @ 2022-05-26  6:01 UTC (permalink / raw)
  To: Pattan, Reshma, dev; +Cc: Yigit, Ferruh, stephen, thomas, maryam.tahhan

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>
> 
> .
> 

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [PATCH v3] app/procinfo: add device private info dump
  2022-02-19  1:59 [PATCH] app/procinfo: add device private info dump Min Hu (Connor)
  2022-02-20  1:04 ` Stephen Hemminger
  2022-02-21  2:24 ` [PATCH v2] app/procinfo: add devcie " Min Hu (Connor)
@ 2022-06-02  6:22 ` Min Hu (Connor)
  2022-06-06 14:39   ` [PATCH v4] " Dongdong Liu
  2 siblings, 1 reply; 21+ messages in thread
From: Min Hu (Connor) @ 2022-06-02  6:22 UTC (permalink / raw)
  To: dev

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>
---
v3:
* fix wrong spelling.

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..1d350291b9 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, " Dump - Ports private information");
+	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)
-- 
2.33.0


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [PATCH v4] app/procinfo: add device private info dump
  2022-06-02  6:22 ` Min Hu (Connor)
@ 2022-06-06 14:39   ` Dongdong Liu
  2022-06-13 12:45     ` Dongdong Liu
  2022-06-26 15:50     ` Thomas Monjalon
  0 siblings, 2 replies; 21+ messages in thread
From: Dongdong Liu @ 2022-06-06 14:39 UTC (permalink / raw)
  To: dev
  Cc: stephen, thomas, ferruh.yigit, reshma.pattan, mtahhan,
	Min Hu (Connor),
	Dongdong Liu, Maryam Tahhan

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

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>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
---
v3->v4:
- add Acked-by Reshma.

v2->v3:
- fix wrong spelling.

v1->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..1d350291b9 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, " Dump - Ports private information");
+	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)
-- 
2.22.0


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH v4] app/procinfo: add device private info dump
  2022-06-06 14:39   ` [PATCH v4] " Dongdong Liu
@ 2022-06-13 12:45     ` Dongdong Liu
  2022-06-13 12:51       ` Dongdong Liu
  2022-06-26 15:50     ` Thomas Monjalon
  1 sibling, 1 reply; 21+ messages in thread
From: Dongdong Liu @ 2022-06-13 12:45 UTC (permalink / raw)
  To: dev, ferruh.yigit, Maryam Tahhan
  Cc: stephen, thomas, reshma.pattan, mtahhan, Min Hu (Connor)

Hi Maryam, ferruh

kind ping...

If there are no other comments, could you help to
apply this patch.

Thanks,
Dongdong
On 2022/6/6 22:39, Dongdong Liu wrote:
> From: "Min Hu (Connor)" <humin29@huawei.com>
>
> 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>
> Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
> Acked-by: Reshma Pattan <reshma.pattan@intel.com>
> ---
> v3->v4:
> - add Acked-by Reshma.
>
> v2->v3:
> - fix wrong spelling.
>
> v1->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..1d350291b9 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, " Dump - Ports private information");
> +	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)
>

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH v4] app/procinfo: add device private info dump
  2022-06-13 12:45     ` Dongdong Liu
@ 2022-06-13 12:51       ` Dongdong Liu
  0 siblings, 0 replies; 21+ messages in thread
From: Dongdong Liu @ 2022-06-13 12:51 UTC (permalink / raw)
  To: dev, ferruh.yigit, Maryam Tahhan, Ferruh Yigit

+cc Ferruh (ferruh.yigit@xilinx.com).

It seems this email could not be delivered to maryam.tahhan@intel.com.

Thanks,
Dongdong
On 2022/6/13 20:45, Dongdong Liu wrote:
> Hi Maryam, ferruh
>
> kind ping...
>
> If there are no other comments, could you help to
> apply this patch.
>
> Thanks,
> Dongdong
> On 2022/6/6 22:39, Dongdong Liu wrote:
>> From: "Min Hu (Connor)" <humin29@huawei.com>
>>
>> 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>
>> Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
>> Acked-by: Reshma Pattan <reshma.pattan@intel.com>
>> ---
>> v3->v4:
>> - add Acked-by Reshma.
>>
>> v2->v3:
>> - fix wrong spelling.
>>
>> v1->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..1d350291b9 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, " Dump - Ports private
>> information");
>> +    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)
>>
> .
>

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH v4] app/procinfo: add device private info dump
  2022-06-06 14:39   ` [PATCH v4] " Dongdong Liu
  2022-06-13 12:45     ` Dongdong Liu
@ 2022-06-26 15:50     ` Thomas Monjalon
  2022-07-02  8:22       ` Dongdong Liu
  1 sibling, 1 reply; 21+ messages in thread
From: Thomas Monjalon @ 2022-06-26 15:50 UTC (permalink / raw)
  To: Min Hu (Connor), Dongdong Liu
  Cc: dev, stephen, ferruh.yigit, reshma.pattan, mtahhan, Maryam Tahhan

06/06/2022 16:39, Dongdong Liu:
> From: "Min Hu (Connor)" <humin29@huawei.com>
> 
> 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>
> Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
> Acked-by: Reshma Pattan <reshma.pattan@intel.com>

Applied, thanks.

[...]
>  /**< Enable show port. */
>  static uint32_t enable_shw_port;
> +/**< Enable show port private info. */
> +static uint32_t enable_shw_port_priv;

That's very strange this file is using some (wrong) doxygen syntax.
I'll fix this one when applying.
A cleanup may be needed for other comments in the file.

>  /**< Enable show tm. */
>  static uint32_t enable_shw_tm;
>  /**< Enable show crypto. */




^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH v4] app/procinfo: add device private info dump
  2022-06-26 15:50     ` Thomas Monjalon
@ 2022-07-02  8:22       ` Dongdong Liu
  0 siblings, 0 replies; 21+ messages in thread
From: Dongdong Liu @ 2022-07-02  8:22 UTC (permalink / raw)
  To: Thomas Monjalon, Min Hu (Connor)
  Cc: dev, stephen, ferruh.yigit, reshma.pattan, mtahhan, Maryam Tahhan

Hi Thomas

On 2022/6/26 23:50, Thomas Monjalon wrote:
> 06/06/2022 16:39, Dongdong Liu:
>> From: "Min Hu (Connor)" <humin29@huawei.com>
>>
>> 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>
>> Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
>> Acked-by: Reshma Pattan <reshma.pattan@intel.com>
>
> Applied, thanks.
>
> [...]
>>  /**< Enable show port. */
>>  static uint32_t enable_shw_port;
>> +/**< Enable show port private info. */
>> +static uint32_t enable_shw_port_priv;
>
> That's very strange this file is using some (wrong) doxygen syntax.
> I'll fix this one when applying.
Many thanks for fixing it.
> A cleanup may be needed for other comments in the file.
Will do.

Thanks,
Dongdong
>
>>  /**< Enable show tm. */
>>  static uint32_t enable_shw_tm;
>>  /**< Enable show crypto. */
>
>
>
> .
>

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2022-07-02  8:22 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-19  1:59 [PATCH] app/procinfo: add device private info dump Min Hu (Connor)
2022-02-20  1:04 ` Stephen Hemminger
2022-02-20  8:56   ` Thomas Monjalon
2022-02-21  2:26     ` Min Hu (Connor)
2022-02-21 17:04       ` Stephen Hemminger
2022-02-22  0:40         ` Min Hu (Connor)
2022-02-21  2:24 ` [PATCH v2] app/procinfo: add devcie " Min Hu (Connor)
2022-04-07  8:09   ` Min Hu (Connor)
2022-04-18  1:11     ` Min Hu (Connor)
2022-04-25  6:44     ` Min Hu (Connor)
2022-05-21  6:54   ` Min Hu (Connor)
2022-05-23  8:43     ` Ferruh Yigit
2022-05-25 14:33   ` Pattan, Reshma
2022-05-26  6:01     ` Min Hu (Connor)
2022-05-26  1:10   ` [PATCH v3] app/procinfo: add device " Min Hu (Connor)
2022-06-02  6:22 ` Min Hu (Connor)
2022-06-06 14:39   ` [PATCH v4] " Dongdong Liu
2022-06-13 12:45     ` Dongdong Liu
2022-06-13 12:51       ` Dongdong Liu
2022-06-26 15:50     ` Thomas Monjalon
2022-07-02  8:22       ` Dongdong Liu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).