app/crypto-perf: add pool size error message
[dpdk.git] / app / test-crypto-perf / cperf_test_throughput.c
index 87fac0f..87e7bfb 100644 (file)
@@ -64,8 +64,10 @@ cperf_throughput_test_free(struct cperf_throughput_ctx *ctx, uint32_t mbuf_nb)
        uint32_t i;
 
        if (ctx) {
-               if (ctx->sess)
-                       rte_cryptodev_sym_session_free(ctx->dev_id, ctx->sess);
+               if (ctx->sess) {
+                       rte_cryptodev_sym_session_clear(ctx->dev_id, ctx->sess);
+                       rte_cryptodev_sym_session_free(ctx->sess);
+               }
 
                if (ctx->mbufs_in) {
                        for (i = 0; i < mbuf_nb; i++)
@@ -175,7 +177,8 @@ error:
 }
 
 void *
-cperf_throughput_test_constructor(uint8_t dev_id, uint16_t qp_id,
+cperf_throughput_test_constructor(struct rte_mempool *sess_mp,
+               uint8_t dev_id, uint16_t qp_id,
                const struct cperf_options *options,
                const struct cperf_test_vector *test_vector,
                const struct cperf_op_fns *op_fns)
@@ -199,7 +202,8 @@ cperf_throughput_test_constructor(uint8_t dev_id, uint16_t qp_id,
        uint16_t iv_offset = sizeof(struct rte_crypto_op) +
                sizeof(struct rte_crypto_sym_op);
 
-       ctx->sess = op_fns->sess_create(dev_id, options, test_vector, iv_offset);
+       ctx->sess = op_fns->sess_create(sess_mp, dev_id, options, test_vector,
+                                       iv_offset);
        if (ctx->sess == NULL)
                goto err;
 
@@ -349,8 +353,14 @@ cperf_throughput_test_runner(void *test_ctx)
                        if (ops_needed != rte_crypto_op_bulk_alloc(
                                        ctx->crypto_op_pool,
                                        RTE_CRYPTO_OP_TYPE_SYMMETRIC,
-                                       ops, ops_needed))
+                                       ops, ops_needed)) {
+                               RTE_LOG(ERR, USER1,
+                                       "Failed to allocate more crypto operations "
+                                       "from the the crypto operation pool.\n"
+                                       "Consider increasing the pool size "
+                                       "with --pool-sz\n");
                                return -1;
+                       }
 
                        /* Setup crypto op, attach mbuf etc */
                        (ctx->populate_ops)(ops, &ctx->mbufs_in[m_idx],
@@ -524,5 +534,7 @@ cperf_throughput_test_destructor(void *arg)
        if (ctx == NULL)
                return;
 
+       rte_cryptodev_stop(ctx->dev_id);
+
        cperf_throughput_test_free(ctx, ctx->options->pool_sz);
 }