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

Min Hu (Connor) humin29 at huawei.com
Mon Apr 25 08:44:01 CEST 2022


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


More information about the dev mailing list