rte_eth_dev_count_avail() : evt_nr_active_lcores(opt->plcores);
}
-static inline __attribute__((always_inline)) void
+static __rte_always_inline void
atq_mark_fwd_latency(struct rte_event *const ev)
{
if (unlikely(ev->sub_event_type == 0)) {
}
}
-static inline __attribute__((always_inline)) void
+static __rte_always_inline void
atq_fwd_event(struct rte_event *const ev, uint8_t *const sched_type_list,
const uint8_t nb_stages)
{
continue;
}
+ if (prod_crypto_type &&
+ (ev.event_type == RTE_EVENT_TYPE_CRYPTODEV)) {
+ struct rte_crypto_op *op = ev.event_ptr;
+
+ if (op->status == RTE_CRYPTO_OP_STATUS_SUCCESS) {
+ if (op->sym->m_dst == NULL)
+ ev.event_ptr = op->sym->m_src;
+ else
+ ev.event_ptr = op->sym->m_dst;
+ rte_crypto_op_free(op);
+ } else {
+ rte_crypto_op_free(op);
+ continue;
+ }
+ }
+
if (enable_fwd_latency && !prod_timer_type)
/* first stage in pipeline, mark ts to compute fwd latency */
atq_mark_fwd_latency(&ev);
}
for (i = 0; i < nb_rx; i++) {
+ if (prod_crypto_type &&
+ (ev[i].event_type == RTE_EVENT_TYPE_CRYPTODEV)) {
+ struct rte_crypto_op *op = ev[i].event_ptr;
+
+ if (op->status ==
+ RTE_CRYPTO_OP_STATUS_SUCCESS) {
+ if (op->sym->m_dst == NULL)
+ ev[i].event_ptr =
+ op->sym->m_src;
+ else
+ ev[i].event_ptr =
+ op->sym->m_dst;
+ rte_crypto_op_free(op);
+ } else {
+ rte_crypto_op_free(op);
+ continue;
+ }
+ }
+
if (enable_fwd_latency && !prod_timer_type) {
rte_prefetch0(ev[i+1].event_ptr);
/* first stage in pipeline.
return ret;
}
}
+ } else if (opt->prod_type == EVT_PROD_TYPE_EVENT_CRYPTO_ADPTR) {
+ uint8_t cdev_id, cdev_count;
+
+ cdev_count = rte_cryptodev_count();
+ for (cdev_id = 0; cdev_id < cdev_count; cdev_id++) {
+ ret = rte_cryptodev_start(cdev_id);
+ if (ret) {
+ evt_err("Failed to start cryptodev %u",
+ cdev_id);
+ return ret;
+ }
+ }
}
return 0;
.opt_dump = perf_atq_opt_dump,
.test_setup = perf_test_setup,
.ethdev_setup = perf_ethdev_setup,
+ .cryptodev_setup = perf_cryptodev_setup,
.mempool_setup = perf_mempool_setup,
.eventdev_setup = perf_atq_eventdev_setup,
.launch_lcores = perf_atq_launch_lcores,
.eventdev_destroy = perf_eventdev_destroy,
.mempool_destroy = perf_mempool_destroy,
.ethdev_destroy = perf_ethdev_destroy,
+ .cryptodev_destroy = perf_cryptodev_destroy,
.test_result = perf_test_result,
.test_destroy = perf_test_destroy,
};