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
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?
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?
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
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? > > > . >
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.
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. > . >
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>
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
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>
>
> .
>
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
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
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)
>
+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)
>>
> .
>
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. */
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. */ > > > > . >