All of lore.kernel.org
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 1/2] crypto/caam_jr: reduce the function trace from critical path
@ 2019-09-02 12:27 Akhil Goyal
  2019-09-02 12:27 ` [dpdk-dev] [PATCH 2/2] crypto/caam_jr: integrate DPAAX table Akhil Goyal
  2019-09-19 15:08 ` [dpdk-dev] [PATCH 1/2] crypto/caam_jr: reduce the function trace from critical path Akhil Goyal
  0 siblings, 2 replies; 3+ messages in thread
From: Akhil Goyal @ 2019-09-02 12:27 UTC (permalink / raw)
  To: dev; +Cc: hemant.agrawal

From: Hemant Agrawal <hemant.agrawal@nxp.com>

Reducing the functional traces from data path and critical session path

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
---
 drivers/crypto/caam_jr/caam_jr.c | 37 ++++----------------------------
 1 file changed, 4 insertions(+), 33 deletions(-)

diff --git a/drivers/crypto/caam_jr/caam_jr.c b/drivers/crypto/caam_jr/caam_jr.c
index 77c030347..e87c9895a 100644
--- a/drivers/crypto/caam_jr/caam_jr.c
+++ b/drivers/crypto/caam_jr/caam_jr.c
@@ -28,8 +28,11 @@
 #include <hw/desc/common.h>
 #include <hw/desc/algo.h>
 #include <of.h>
-
+#ifdef RTE_LIBRTE_PMD_CAAM_JR_DEBUG
+#define CAAM_JR_DBG	1
+#else
 #define CAAM_JR_DBG	0
+#endif
 #define CRYPTODEV_NAME_CAAM_JR_PMD	crypto_caam_jr
 static uint8_t cryptodev_driver_id;
 int caam_jr_logtype;
@@ -62,14 +65,12 @@ struct sec_outring_entry {
 static inline phys_addr_t
 caam_jr_vtop_ctx(struct caam_jr_op_ctx *ctx, void *vaddr)
 {
-	PMD_INIT_FUNC_TRACE();
 	return (size_t)vaddr - ctx->vtop_offset;
 }
 
 static inline void
 caam_jr_op_ending(struct caam_jr_op_ctx *ctx)
 {
-	PMD_INIT_FUNC_TRACE();
 	/* report op status to sym->op and then free the ctx memory  */
 	rte_mempool_put(ctx->ctx_pool, (void *)ctx);
 }
@@ -80,7 +81,6 @@ caam_jr_alloc_ctx(struct caam_jr_session *ses)
 	struct caam_jr_op_ctx *ctx;
 	int ret;
 
-	PMD_INIT_FUNC_TRACE();
 	ret = rte_mempool_get(ses->ctx_pool, (void **)(&ctx));
 	if (!ctx || ret) {
 		CAAM_JR_DP_WARN("Alloc sec descriptor failed!");
@@ -158,7 +158,6 @@ void caam_jr_stats_reset(struct rte_cryptodev *dev)
 static inline int
 is_cipher_only(struct caam_jr_session *ses)
 {
-	PMD_INIT_FUNC_TRACE();
 	return ((ses->cipher_alg != RTE_CRYPTO_CIPHER_NULL) &&
 		(ses->auth_alg == RTE_CRYPTO_AUTH_NULL));
 }
@@ -166,7 +165,6 @@ is_cipher_only(struct caam_jr_session *ses)
 static inline int
 is_auth_only(struct caam_jr_session *ses)
 {
-	PMD_INIT_FUNC_TRACE();
 	return ((ses->cipher_alg == RTE_CRYPTO_CIPHER_NULL) &&
 		(ses->auth_alg != RTE_CRYPTO_AUTH_NULL));
 }
@@ -174,7 +172,6 @@ is_auth_only(struct caam_jr_session *ses)
 static inline int
 is_aead(struct caam_jr_session *ses)
 {
-	PMD_INIT_FUNC_TRACE();
 	return ((ses->cipher_alg == 0) &&
 		(ses->auth_alg == 0) &&
 		(ses->aead_alg != 0));
@@ -183,7 +180,6 @@ is_aead(struct caam_jr_session *ses)
 static inline int
 is_auth_cipher(struct caam_jr_session *ses)
 {
-	PMD_INIT_FUNC_TRACE();
 	return ((ses->cipher_alg != RTE_CRYPTO_CIPHER_NULL) &&
 		(ses->auth_alg != RTE_CRYPTO_AUTH_NULL) &&
 		(ses->proto_alg != RTE_SECURITY_PROTOCOL_IPSEC));
@@ -192,28 +188,24 @@ is_auth_cipher(struct caam_jr_session *ses)
 static inline int
 is_proto_ipsec(struct caam_jr_session *ses)
 {
-	PMD_INIT_FUNC_TRACE();
 	return (ses->proto_alg == RTE_SECURITY_PROTOCOL_IPSEC);
 }
 
 static inline int
 is_encode(struct caam_jr_session *ses)
 {
-	PMD_INIT_FUNC_TRACE();
 	return ses->dir == DIR_ENC;
 }
 
 static inline int
 is_decode(struct caam_jr_session *ses)
 {
-	PMD_INIT_FUNC_TRACE();
 	return ses->dir == DIR_DEC;
 }
 
 static inline void
 caam_auth_alg(struct caam_jr_session *ses, struct alginfo *alginfo_a)
 {
-	PMD_INIT_FUNC_TRACE();
 	switch (ses->auth_alg) {
 	case RTE_CRYPTO_AUTH_NULL:
 		ses->digest_length = 0;
@@ -262,7 +254,6 @@ caam_auth_alg(struct caam_jr_session *ses, struct alginfo *alginfo_a)
 static inline void
 caam_cipher_alg(struct caam_jr_session *ses, struct alginfo *alginfo_c)
 {
-	PMD_INIT_FUNC_TRACE();
 	switch (ses->cipher_alg) {
 	case RTE_CRYPTO_CIPHER_NULL:
 		break;
@@ -292,7 +283,6 @@ caam_cipher_alg(struct caam_jr_session *ses, struct alginfo *alginfo_c)
 static inline void
 caam_aead_alg(struct caam_jr_session *ses, struct alginfo *alginfo)
 {
-	PMD_INIT_FUNC_TRACE();
 	switch (ses->aead_alg) {
 	case RTE_CRYPTO_AEAD_AES_GCM:
 		alginfo->algtype = OP_ALG_ALGSEL_AES;
@@ -317,7 +307,6 @@ caam_jr_prep_cdb(struct caam_jr_session *ses)
 	int swap = true;
 #endif
 
-	PMD_INIT_FUNC_TRACE();
 	if (ses->cdb)
 		caam_jr_dma_free(ses->cdb);
 
@@ -505,7 +494,6 @@ hw_flush_job_ring(struct sec_job_ring_t *job_ring,
 	int32_t jobs_no_to_discard = 0;
 	int32_t discarded_descs_no = 0;
 
-	PMD_INIT_FUNC_TRACE();
 	CAAM_JR_DEBUG("Jr[%p] pi[%d] ci[%d].Flushing jr notify desc=[%d]",
 		job_ring, job_ring->pidx, job_ring->cidx, do_notify);
 
@@ -559,7 +547,6 @@ hw_poll_job_ring(struct sec_job_ring_t *job_ring,
 	phys_addr_t *temp_addr;
 	struct caam_jr_op_ctx *ctx;
 
-	PMD_INIT_FUNC_TRACE();
 	/* TODO check for ops have memory*/
 	/* check here if any JR error that cannot be written
 	 * in the output status word has occurred
@@ -682,7 +669,6 @@ caam_jr_dequeue_burst(void *qp, struct rte_crypto_op **ops,
 	int num_rx;
 	int ret;
 
-	PMD_INIT_FUNC_TRACE();
 	CAAM_JR_DP_DEBUG("Jr[%p]Polling. limit[%d]", ring, nb_ops);
 
 	/* Poll job ring
@@ -739,7 +725,6 @@ build_auth_only_sg(struct rte_crypto_op *op, struct caam_jr_session *ses)
 	struct sec_job_descriptor_t *jobdescr;
 	uint8_t extra_segs;
 
-	PMD_INIT_FUNC_TRACE();
 	if (is_decode(ses))
 		extra_segs = 2;
 	else
@@ -824,7 +809,6 @@ build_auth_only(struct rte_crypto_op *op, struct caam_jr_session *ses)
 	uint64_t sdesc_offset;
 	struct sec_job_descriptor_t *jobdescr;
 
-	PMD_INIT_FUNC_TRACE();
 	ctx = caam_jr_alloc_ctx(ses);
 	if (!ctx)
 		return NULL;
@@ -893,7 +877,6 @@ build_cipher_only_sg(struct rte_crypto_op *op, struct caam_jr_session *ses)
 	struct sec_job_descriptor_t *jobdescr;
 	uint8_t reg_segs;
 
-	PMD_INIT_FUNC_TRACE();
 	if (sym->m_dst) {
 		mbuf = sym->m_dst;
 		reg_segs = mbuf->nb_segs + sym->m_src->nb_segs + 2;
@@ -1008,7 +991,6 @@ build_cipher_only(struct rte_crypto_op *op, struct caam_jr_session *ses)
 			ses->iv.offset);
 	struct sec_job_descriptor_t *jobdescr;
 
-	PMD_INIT_FUNC_TRACE();
 	ctx = caam_jr_alloc_ctx(ses);
 	if (!ctx)
 		return NULL;
@@ -1086,7 +1068,6 @@ build_cipher_auth_sg(struct rte_crypto_op *op, struct caam_jr_session *ses)
 	struct sec_job_descriptor_t *jobdescr;
 	uint32_t auth_only_len;
 
-	PMD_INIT_FUNC_TRACE();
 	auth_only_len = op->sym->auth.data.length -
 				op->sym->cipher.data.length;
 
@@ -1229,7 +1210,6 @@ build_cipher_auth(struct rte_crypto_op *op, struct caam_jr_session *ses)
 	struct sec_job_descriptor_t *jobdescr;
 	uint32_t auth_only_len;
 
-	PMD_INIT_FUNC_TRACE();
 	auth_only_len = op->sym->auth.data.length -
 				op->sym->cipher.data.length;
 
@@ -1335,7 +1315,6 @@ build_proto(struct rte_crypto_op *op, struct caam_jr_session *ses)
 	uint64_t sdesc_offset;
 	struct sec_job_descriptor_t *jobdescr;
 
-	PMD_INIT_FUNC_TRACE();
 	ctx = caam_jr_alloc_ctx(ses);
 	if (!ctx)
 		return NULL;
@@ -1376,7 +1355,6 @@ caam_jr_enqueue_op(struct rte_crypto_op *op, struct caam_jr_qp *qp)
 	struct caam_jr_op_ctx *ctx = NULL;
 	struct sec_job_descriptor_t *jobdescr __rte_unused;
 
-	PMD_INIT_FUNC_TRACE();
 	switch (op->sess_type) {
 	case RTE_CRYPTO_OP_WITH_SESSION:
 		ses = (struct caam_jr_session *)
@@ -1497,8 +1475,6 @@ caam_jr_enqueue_burst(void *qp, struct rte_crypto_op **ops,
 	int32_t ret;
 	struct caam_jr_qp *jr_qp = (struct caam_jr_qp *)qp;
 	uint16_t num_tx = 0;
-
-	PMD_INIT_FUNC_TRACE();
 	/*Prepare each packet which is to be sent*/
 	for (loop = 0; loop < nb_ops; loop++) {
 		ret = caam_jr_enqueue_op(ops[loop], jr_qp);
@@ -1586,7 +1562,6 @@ caam_jr_cipher_init(struct rte_cryptodev *dev __rte_unused,
 		    struct rte_crypto_sym_xform *xform,
 		    struct caam_jr_session *session)
 {
-	PMD_INIT_FUNC_TRACE();
 	session->cipher_alg = xform->cipher.algo;
 	session->iv.length = xform->cipher.iv.length;
 	session->iv.offset = xform->cipher.iv.offset;
@@ -1611,7 +1586,6 @@ caam_jr_auth_init(struct rte_cryptodev *dev __rte_unused,
 		  struct rte_crypto_sym_xform *xform,
 		  struct caam_jr_session *session)
 {
-	PMD_INIT_FUNC_TRACE();
 	session->auth_alg = xform->auth.algo;
 	session->auth_key.data = rte_zmalloc(NULL, xform->auth.key.length,
 					     RTE_CACHE_LINE_SIZE);
@@ -1635,7 +1609,6 @@ caam_jr_aead_init(struct rte_cryptodev *dev __rte_unused,
 		  struct rte_crypto_sym_xform *xform,
 		  struct caam_jr_session *session)
 {
-	PMD_INIT_FUNC_TRACE();
 	session->aead_alg = xform->aead.algo;
 	session->iv.length = xform->aead.iv.length;
 	session->iv.offset = xform->aead.iv.offset;
@@ -1951,7 +1924,6 @@ caam_jr_security_session_create(void *dev,
 	struct rte_cryptodev *cdev = (struct rte_cryptodev *)dev;
 	int ret;
 
-	PMD_INIT_FUNC_TRACE();
 	if (rte_mempool_get(mempool, &sess_private_data)) {
 		CAAM_JR_ERR("Couldn't get object from session mempool");
 		return -ENOMEM;
@@ -2109,7 +2081,6 @@ static struct rte_security_ops caam_jr_security_ops = {
 static void
 close_job_ring(struct sec_job_ring_t *job_ring)
 {
-	PMD_INIT_FUNC_TRACE();
 	if (job_ring->irq_fd) {
 		/* Producer index is frozen. If consumer index is not equal
 		 * with producer index, then we have descs to flush.
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [dpdk-dev] [PATCH 2/2] crypto/caam_jr: integrate DPAAX table
  2019-09-02 12:27 [dpdk-dev] [PATCH 1/2] crypto/caam_jr: reduce the function trace from critical path Akhil Goyal
@ 2019-09-02 12:27 ` Akhil Goyal
  2019-09-19 15:08 ` [dpdk-dev] [PATCH 1/2] crypto/caam_jr: reduce the function trace from critical path Akhil Goyal
  1 sibling, 0 replies; 3+ messages in thread
From: Akhil Goyal @ 2019-09-02 12:27 UTC (permalink / raw)
  To: dev; +Cc: hemant.agrawal, Gagandeep Singh

From: Gagandeep Singh <g.singh@nxp.com>

Virtual to physical conversions are optimized using the
DPAAX tables. This patch integrates DPAAX with caam_jr PMD.

Signed-off-by: Gagandeep Singh <g.singh@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
---
 drivers/crypto/caam_jr/Makefile      | 1 +
 drivers/crypto/caam_jr/caam_jr_pvt.h | 6 ++++++
 2 files changed, 7 insertions(+)

diff --git a/drivers/crypto/caam_jr/Makefile b/drivers/crypto/caam_jr/Makefile
index cecfbbdc8..0a8a2150b 100644
--- a/drivers/crypto/caam_jr/Makefile
+++ b/drivers/crypto/caam_jr/Makefile
@@ -39,5 +39,6 @@ LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
 LDLIBS += -lrte_cryptodev
 LDLIBS += -lrte_bus_dpaa
 LDLIBS += -lrte_bus_vdev
+LDLIBS += -lrte_common_dpaax
 
 include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/crypto/caam_jr/caam_jr_pvt.h b/drivers/crypto/caam_jr/caam_jr_pvt.h
index 9f1adabc7..d32291b60 100644
--- a/drivers/crypto/caam_jr/caam_jr_pvt.h
+++ b/drivers/crypto/caam_jr/caam_jr_pvt.h
@@ -6,6 +6,7 @@
 #define CAAM_JR_PVT_H
 
 #include <hw/desc/ipsec.h>
+#include <dpaax_iova_table.h>
 
 /* NXP CAAM JR PMD device name */
 
@@ -254,6 +255,11 @@ caam_jr_mem_vtop(void *vaddr)
 static inline void *
 caam_jr_dma_ptov(rte_iova_t paddr)
 {
+	void *va;
+	va = dpaax_iova_table_get_va(paddr);
+	if (likely(va != NULL))
+		return va;
+
 	return rte_mem_iova2virt(paddr);
 }
 
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [dpdk-dev] [PATCH 1/2] crypto/caam_jr: reduce the function trace from critical path
  2019-09-02 12:27 [dpdk-dev] [PATCH 1/2] crypto/caam_jr: reduce the function trace from critical path Akhil Goyal
  2019-09-02 12:27 ` [dpdk-dev] [PATCH 2/2] crypto/caam_jr: integrate DPAAX table Akhil Goyal
@ 2019-09-19 15:08 ` Akhil Goyal
  1 sibling, 0 replies; 3+ messages in thread
From: Akhil Goyal @ 2019-09-19 15:08 UTC (permalink / raw)
  To: Akhil Goyal, dev; +Cc: Hemant Agrawal



> From: Hemant Agrawal <hemant.agrawal@nxp.com>
> 
> Reducing the functional traces from data path and critical session path
> 
> Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
> ---
Series Applied to dpdk-next-crypto


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-09-19 15:08 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-02 12:27 [dpdk-dev] [PATCH 1/2] crypto/caam_jr: reduce the function trace from critical path Akhil Goyal
2019-09-02 12:27 ` [dpdk-dev] [PATCH 2/2] crypto/caam_jr: integrate DPAAX table Akhil Goyal
2019-09-19 15:08 ` [dpdk-dev] [PATCH 1/2] crypto/caam_jr: reduce the function trace from critical path Akhil Goyal

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.