[dpdk-dev] [PATCH v2 5/5] app/testpmd: enable empty polls in burst stats

Ferruh Yigit ferruh.yigit at intel.com
Tue Jul 7 11:32:09 CEST 2020


On 7/6/2020 8:11 PM, Honnappa Nagarahalli wrote:
> Hi Ferruh,
> 	Thanks for the review comments
> 
> <snip>
> 
>> Subject: Re: [PATCH v2 5/5] app/testpmd: enable empty polls in burst stats
>>
>> On 6/26/2020 11:09 PM, Honnappa Nagarahalli wrote:
>>> The number of empty polls provides information about available CPU
>>> head room in the presence of continuous polling.
>>
>> +1 to have it, it can be useful.
>>
>>>
>>> Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli at arm.com>
>>> Reviewed-by: Phil Yang <phil.yang at arm.com>
>>> Reviewed-by: Ruifeng Wang <ruifeng.wang at arm.com>
>>> Tested-by: Phil Yang <phil.yang at arm.com>
>>> Tested-by: Ali Alnubani <alialnu at mellanox.com>
>>
>> <...>
>>
>>>  	/*
>>>  	 * First compute the total number of packet bursts and the
>>>  	 * two highest numbers of bursts of the same number of packets.
>>>  	 */
>>>  	total_burst = 0;
>>> -	burst_stats[0] = burst_stats[1] = burst_stats[2] = 0;
>>> -	pktnb_stats[0] = pktnb_stats[1] = pktnb_stats[2] = 0;
>>> +	memset(&burst_stats, 0x0, sizeof(burst_stats));
>>> +	memset(&pktnb_stats, 0x0, sizeof(pktnb_stats));
>>> +
>>>  	for (nb_pkt = 0; nb_pkt < MAX_PKT_BURST; nb_pkt++) {
>>>  		nb_burst = pbs->pkt_burst_spread[nb_pkt];
>>> -		if (nb_burst == 0)
>>> -			continue;
>>>  		total_burst += nb_burst;
>>> -		if (nb_burst > burst_stats[0]) {
>>> -			burst_stats[1] = burst_stats[0];
>>> -			pktnb_stats[1] = pktnb_stats[0];
>>> +
>>> +		/* Show empty poll stats always */
>>> +		if (nb_pkt == 0) {
>>>  			burst_stats[0] = nb_burst;
>>>  			pktnb_stats[0] = nb_pkt;
>>
>> just a minor issue but this assignment is not needed.
> The empty poll stats are being shown always (even if there were no empty polls). The check 'nb_pkts == 0' indicates that the burst stats are for empty polls. Hence this assignment is required. But, this can be moved out of the loop to provide clarity. I will do that.

It is not required because of 'memset' above, we know 'nb_pkt == 0' and we know
'pktnb_stats[0] == 0', so "pktnb_stats[0] = nb_pkt;" is redundant.

> 
>>
>>> -		} else if (nb_burst > burst_stats[1]) {
>>> +			continue;
>>> +		}
>>> +
>>> +		if (nb_burst == 0)
>>> +			continue;
>>
>> again another minor issue, can have this check above 'nb_pkt == 0', to prevent
>> unnecssary "burst_stats[0] = nb_burst;" assignment if "nb_burst == 0".
> The empty polls are always shown, even if there were 0% empty polls.

I got that, again because of memset, "burst_stats[0] == 0", you can skip
"burst_stats[0] = nb_burst;" in case "nb_burst == 0", that is why you can move
it up.

Anyway, both are trivial issues ...

> 
>>
>> <...>
>>
>> Reviewed-by: Ferruh Yigit <ferruh.yigit at intel.com>



More information about the dev mailing list