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

Chautru, Nicolas nicolas.chautru at intel.com
Mon Oct 26 17:27:21 CET 2020


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

> 
> 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