[PATCH] app/procinfo: add device private info dump

Min Hu (Connor) humin29 at huawei.com
Tue Feb 22 01:40:39 CET 2022


HI,

在 2022/2/22 1:04, Stephen Hemminger 写道:
> On Mon, 21 Feb 2022 10:26:38 +0800
> "Min Hu (Connor)" <humin29 at 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 at 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.
> .
> 


More information about the dev mailing list