[dpdk-dev] [PATCH v5 7/7] app/bbdev: update offload test to dequeue full ring

Tom Rix trix at redhat.com
Wed Oct 28 21:28:48 CET 2020


On 10/26/20 9:27 AM, Chautru, Nicolas wrote:
>> -----Original Message-----
>> From: Tom Rix <trix at redhat.com>
>> Sent: Monday, October 26, 2020 6:56 AM
>> To: Chautru, Nicolas <nicolas.chautru at intel.com>; dev at dpdk.org;
>> akhil.goyal at nxp.com
>> Cc: david.marchand at redhat.com
>> Subject: Re: [PATCH v5 7/7] app/bbdev: update offload test to dequeue full
>> ring
>>
>>
>> On 10/23/20 4:43 PM, Nicolas Chautru wrote:
>>> update offload dequeue to retrieve the full ring to be agnostic of
>>> implementation.
>>>
>>> Signed-off-by: Nicolas Chautru <nicolas.chautru at intel.com>
>>> Acked-by: Aidan Goddard <aidan.goddard at accelercomm.com>
>>> Acked-by: Dave Burley <dave.burley at accelercomm.com>
>>> ---
>>>  app/test-bbdev/test_bbdev_perf.c | 16 ++++++++--------
>>>  1 file changed, 8 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/app/test-bbdev/test_bbdev_perf.c
>>> b/app/test-bbdev/test_bbdev_perf.c
>>> index b5dc536..a6884c5 100644
>>> --- a/app/test-bbdev/test_bbdev_perf.c
>>> +++ b/app/test-bbdev/test_bbdev_perf.c
>>> @@ -4463,8 +4463,8 @@ typedef int (test_case_function)(struct
>> active_device *ad,
>>>  		/* Dequeue one operation */
>> This comment and similar need to change, not doing just 1 anymore
> We still just need one operation dequeued to be considered done. 
>
>>>  		do {
>>>  			deq += rte_bbdev_dequeue_dec_ops(dev_id,
>> queue_id,
>>> -					&ops_deq[deq], 1);
>>> -		} while (unlikely(deq != 1));
>>> +					&ops_deq[deq], enq);
>>> +		} while (unlikely(deq == 0));
>> This check looks wrong, should likely be (deq != enq)
>>
>> Similar below
> No that is intentional. Not waiting for everything to be done but purely the first dequeue. If not this would be run multiple times.
> The rest of ring is dequeued below. 

So is > 1 an error condition or ok?

Maybe add a comment that it is really ok because the call logic is not setup for 1 but for enq

Tom

>
>> Tom
>>
>>>  		deq_last_time = rte_rdtsc_precise() - deq_start_time;
>>>  		time_st->deq_max_time = RTE_MAX(time_st-
>>> deq_max_time, @@ -4554,8
>>> +4554,8 @@ typedef int (test_case_function)(struct active_device *ad,
>>>  		/* Dequeue one operation */
>>>  		do {
>>>  			deq += rte_bbdev_dequeue_ldpc_dec_ops(dev_id,
>> queue_id,
>>> -					&ops_deq[deq], 1);
>>> -		} while (unlikely(deq != 1));
>>> +					&ops_deq[deq], enq);
>>> +		} while (unlikely(deq == 0));
>>>
>>>  		deq_last_time = rte_rdtsc_precise() - deq_start_time;
>>>  		time_st->deq_max_time = RTE_MAX(time_st-
>>> deq_max_time, @@ -4642,8
>>> +4642,8 @@ typedef int (test_case_function)(struct active_device *ad,
>>>  		/* Dequeue one operation */
>>>  		do {
>>>  			deq += rte_bbdev_dequeue_enc_ops(dev_id,
>> queue_id,
>>> -					&ops_deq[deq], 1);
>>> -		} while (unlikely(deq != 1));
>>> +					&ops_deq[deq], enq);
>>> +		} while (unlikely(deq == 0));
>>>
>>>  		deq_last_time = rte_rdtsc_precise() - deq_start_time;
>>>  		time_st->deq_max_time = RTE_MAX(time_st-
>>> deq_max_time, @@ -4725,8
>>> +4725,8 @@ typedef int (test_case_function)(struct active_device *ad,
>>>  		/* Dequeue one operation */
>>>  		do {
>>>  			deq += rte_bbdev_dequeue_ldpc_enc_ops(dev_id,
>> queue_id,
>>> -					&ops_deq[deq], 1);
>>> -		} while (unlikely(deq != 1));
>>> +					&ops_deq[deq], enq);
>>> +		} while (unlikely(deq == 0));
>>>
>>>  		deq_last_time = rte_rdtsc_precise() - deq_start_time;
>>>  		time_st->deq_max_time = RTE_MAX(time_st-
>>> deq_max_time,



More information about the dev mailing list