Hi,

> -----Original Message-----
> From: Anoob Joseph <ano...@marvell.com>
> Sent: Monday, May 16, 2022 12:57 PM
> To: Gagandeep Singh <g.si...@nxp.com>
> Cc: Akhil Goyal <gak...@marvell.com>; dev@dpdk.org; Hemant Agrawal
> <hemant.agra...@nxp.com>
> Subject: RE: [EXT] [PATCH 1/8] app/test-crypto-perf: improve dequeue logic
> 
> Hi Gagandeep,
> 
> Please see inline.
> 
> Thanks,
> Anoob
> 
> > -----Original Message-----
> > From: Gagandeep Singh <g.si...@nxp.com>
> > Sent: Monday, May 16, 2022 12:44 PM
> > To: Akhil Goyal <gak...@marvell.com>; dev@dpdk.org; Hemant Agrawal
> > <hemant.agra...@nxp.com>
> > Cc: Anoob Joseph <ano...@marvell.com>
> > Subject: RE: [EXT] [PATCH 1/8] app/test-crypto-perf: improve dequeue
> > logic
> >
> > Hi
> >
> > > -----Original Message-----
> > > From: Akhil Goyal <gak...@marvell.com>
> > > Sent: Friday, May 13, 2022 3:17 PM
> > > To: Gagandeep Singh <g.si...@nxp.com>; dev@dpdk.org; Hemant Agrawal
> > > <hemant.agra...@nxp.com>
> > > Cc: Anoob Joseph <ano...@marvell.com>
> > > Subject: RE: [EXT] [PATCH 1/8] app/test-crypto-perf: improve dequeue
> > > logic
> > >
> > > Hi Gagan,
> > > > Issue more dequeue commands if the gap between enqueued and
> > > > dequeued packets is more than burst size *8
> > > >
> > > > Signed-off-by: Gagandeep Singh <g.si...@nxp.com>
> > > > ---
> > > Why is this change required? What gain are we getting?
> > > I see a performance drop due to this patch.
> >
> > Issue is, in case if security engine/driver is slow in processing the
> > Jobs especially for larger packet sizes then in that case application
> > will keep enqueuing packets with higher rate than dequeue which may results
> in buffer pool exhaustion.
> > Application has option to increase pool size but that may not be
> > Helpful for the platforms those with memory constraints.
> 
> [Anoob] Can you elaborate the issue that you are hitting?
> 
> >
> > We can work on limiting the enqueue side instead of keeping the
> > dequeue to avoid any performance drop due to any empty dequeue.
> 
> [Anoob] Shouldn't PMD take care of limiting the enqueue side? Application can
> specify the desired queue depth and when application enqueues beyond that,
> enqueue API can return 0. Wouldn't that good enough?

Agree. Unfortunately, Currently In the NXP platform drivers like dpaa_sec, 
caam_jr
not using the API's given queue depth. This is what I will discuss internally 
to support
this in the PMDs itself to limit the enqueue, if we can do so without impacting
the NXP's PMDs performance.

> >
> > Dropping this patch from this series. I will update the logic and will
> > try to send as separate patch.
> >
> > >
> > > >  app/test-crypto-perf/cperf_test_throughput.c | 42
> > > > +++++++++++---------
> > > >  1 file changed, 23 insertions(+), 19 deletions(-)
> > > >
> > > > diff --git a/app/test-crypto-perf/cperf_test_throughput.c
> > > > b/app/test-crypto- perf/cperf_test_throughput.c index
> > > > cecf30e470..5cd8919c91 100644
> > > > --- a/app/test-crypto-perf/cperf_test_throughput.c
> > > > +++ b/app/test-crypto-perf/cperf_test_throughput.c
> > > > @@ -223,26 +223,30 @@ cperf_throughput_test_runner(void *test_ctx)
> > > >                         ops_unused = burst_size - ops_enqd;
> > > >                         ops_enqd_total += ops_enqd;
> > > >
> > > > -
> > > >                         /* Dequeue processed burst of ops from crypto 
> > > > device
> > */
> > > > -                       ops_deqd = 
> > > > rte_cryptodev_dequeue_burst(ctx->dev_id,
> > > > ctx->qp_id,
> > > > -                                       ops_processed, test_burst_size);
> > > > -
> > > > -                       if (likely(ops_deqd))  {
> > > > -                               /* Free crypto ops so they can be 
> > > > reused. */
> > > > -                               rte_mempool_put_bulk(ctx->pool,
> > > > -                                               (void **)ops_processed,
> > > > ops_deqd);
> > > > -
> > > > -                               ops_deqd_total += ops_deqd;
> > > > -                       } else {
> > > > -                               /**
> > > > -                                * Count dequeue polls which didn't 
> > > > return any
> > > > -                                * processed operations. This statistic 
> > > > is mainly
> > > > -                                * relevant to hw accelerators.
> > > > -                                */
> > > > -                               ops_deqd_failed++;
> > > > -                       }
> > > > -
> > > > +                       do {
> > > > +                               ops_deqd = rte_cryptodev_dequeue_burst(
> > > > +                                               ctx->dev_id, ctx->qp_id,
> > > > +                                               ops_processed,
> > > > test_burst_size);
> > > > +
> > > > +                               if (likely(ops_deqd))  {
> > > > +                                       /* Free crypto ops for reuse */
> > > > +                                       rte_mempool_put_bulk(ctx->pool,
> > > > +                                                       (void
> > > > **)ops_processed,
> > > > +                                                       ops_deqd);
> > > > +
> > > > +                                       ops_deqd_total += ops_deqd;
> > > > +                               } else {
> > > > +                                       /**
> > > > +                                        * Count dequeue polls which 
> > > > didn't
> > > > +                                        * return any processed 
> > > > operations.
> > > > +                                        * This statistic is mainly 
> > > > relevant
> > > > +                                        * to hw accelerators.
> > > > +                                        */
> > > > +                                       ops_deqd_failed++;
> > > > +                               }
> > > > +                       } while (ops_enqd_total - ops_deqd_total >
> > > > +                                       test_burst_size * 8);
> > > >                 }
> > > >
> > > >                 /* Dequeue any operations still in the crypto device */
> > > > --
> > > > 2.25.1

Reply via email to