uint64_t *tsc_start __rte_unused)
{
uint16_t i;
- uint8_t result[sizeof(perf_mod_p)] = { 0 };
struct rte_cryptodev_asym_session *asym_sess = (void *)sess;
for (i = 0; i < nb_ops; i++) {
ops[i]->status = RTE_CRYPTO_OP_STATUS_NOT_PROCESSED;
asym_op->modex.base.data = perf_base;
asym_op->modex.base.length = sizeof(perf_base);
- asym_op->modex.result.data = result;
- asym_op->modex.result.length = sizeof(result);
+ asym_op->modex.result.data = perf_mod_result;
+ asym_op->modex.result.length = sizeof(perf_mod_result);
rte_crypto_op_attach_asym_session(ops[i], asym_sess);
}
return 0;
m->next = NULL;
}
+static void
+mempool_asym_obj_init(struct rte_mempool *mp, __rte_unused void *opaque_arg,
+ void *obj, __rte_unused unsigned int i)
+{
+ struct rte_crypto_op *op = obj;
+
+ /* Set crypto operation */
+ op->type = RTE_CRYPTO_OP_TYPE_ASYMMETRIC;
+ op->status = RTE_CRYPTO_OP_STATUS_NOT_PROCESSED;
+ op->sess_type = RTE_CRYPTO_OP_WITH_SESSION;
+ op->phys_addr = rte_mem_virt2iova(obj);
+ op->mempool = mp;
+}
+
static void
mempool_obj_init(struct rte_mempool *mp,
void *opaque_arg,
rte_socket_id());
*pool = rte_crypto_op_pool_create(
pool_name, RTE_CRYPTO_OP_TYPE_ASYMMETRIC,
- options->pool_sz, 0, 0, rte_socket_id());
+ options->pool_sz, RTE_MEMPOOL_CACHE_MAX_SIZE, 0,
+ rte_socket_id());
if (*pool == NULL) {
RTE_LOG(ERR, USER1,
"Cannot allocate mempool for device %u\n",
dev_id);
return -1;
}
+ rte_mempool_obj_iter(*pool, mempool_asym_obj_init, NULL);
return 0;
}