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.

>  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