From: Sunil Kumar Kori <sk...@marvell.com>

Add tracepoints at important and mandatory APIs for tracing support.

Signed-off-by: Sunil Kumar Kori <sk...@marvell.com>
---
 lib/librte_cryptodev/Makefile                 |   4 +-
 lib/librte_cryptodev/cryptodev_trace_points.c |  70 +++++++++
 lib/librte_cryptodev/meson.build              |   6 +-
 lib/librte_cryptodev/rte_cryptodev.c          |  18 +++
 lib/librte_cryptodev/rte_cryptodev.h          |   6 +
 .../rte_cryptodev_version.map                 |  18 +++
 lib/librte_cryptodev/rte_trace_cryptodev.h    | 148 ++++++++++++++++++
 lib/librte_cryptodev/rte_trace_cryptodev_fp.h |  38 +++++
 8 files changed, 305 insertions(+), 3 deletions(-)
 create mode 100644 lib/librte_cryptodev/cryptodev_trace_points.c
 create mode 100644 lib/librte_cryptodev/rte_trace_cryptodev.h
 create mode 100644 lib/librte_cryptodev/rte_trace_cryptodev_fp.h

diff --git a/lib/librte_cryptodev/Makefile b/lib/librte_cryptodev/Makefile
index 2ba0dbeec..10b993260 100644
--- a/lib/librte_cryptodev/Makefile
+++ b/lib/librte_cryptodev/Makefile
@@ -13,7 +13,7 @@ LDLIBS += -lrte_eal -lrte_mempool -lrte_ring -lrte_mbuf
 LDLIBS += -lrte_kvargs
 
 # library source files
-SRCS-y += rte_cryptodev.c rte_cryptodev_pmd.c
+SRCS-y += rte_cryptodev.c rte_cryptodev_pmd.c cryptodev_trace_points.c
 
 # export include files
 SYMLINK-y-include += rte_crypto.h
@@ -21,6 +21,8 @@ SYMLINK-y-include += rte_crypto_sym.h
 SYMLINK-y-include += rte_cryptodev.h
 SYMLINK-y-include += rte_cryptodev_pmd.h
 SYMLINK-y-include += rte_crypto_asym.h
+SYMLINK-y-include += rte_trace_cryptodev.h
+SYMLINK-y-include += rte_trace_cryptodev_fp.h
 
 # versioning export map
 EXPORT_MAP := rte_cryptodev_version.map
diff --git a/lib/librte_cryptodev/cryptodev_trace_points.c 
b/lib/librte_cryptodev/cryptodev_trace_points.c
new file mode 100644
index 000000000..2ee457401
--- /dev/null
+++ b/lib/librte_cryptodev/cryptodev_trace_points.c
@@ -0,0 +1,70 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2020 Marvell International Ltd.
+ */
+
+#define RTE_TRACE_POINT_REGISTER_SELECT /* Select trace point register macros 
*/
+
+#include "rte_trace_cryptodev.h"
+
+RTE_TRACE_POINT_DEFINE(rte_trace_lib_cryptodev_configure);
+RTE_TRACE_POINT_DEFINE(rte_trace_lib_cryptodev_start);
+RTE_TRACE_POINT_DEFINE(rte_trace_lib_cryptodev_stop);
+RTE_TRACE_POINT_DEFINE(rte_trace_lib_cryptodev_close);
+RTE_TRACE_POINT_DEFINE(rte_trace_lib_cryptodev_queue_pair_setup);
+RTE_TRACE_POINT_DEFINE(rte_trace_lib_cryptodev_sym_session_pool_create);
+RTE_TRACE_POINT_DEFINE(rte_trace_lib_cryptodev_sym_session_create);
+RTE_TRACE_POINT_DEFINE(rte_trace_lib_cryptodev_asym_session_create);
+RTE_TRACE_POINT_DEFINE(rte_trace_lib_cryptodev_sym_session_free);
+RTE_TRACE_POINT_DEFINE(rte_trace_lib_cryptodev_asym_session_free);
+RTE_TRACE_POINT_DEFINE(rte_trace_lib_cryptodev_sym_session_init);
+RTE_TRACE_POINT_DEFINE(rte_trace_lib_cryptodev_asym_session_init);
+RTE_TRACE_POINT_DEFINE(rte_trace_lib_cryptodev_sym_session_clear);
+RTE_TRACE_POINT_DEFINE(rte_trace_lib_cryptodev_asym_session_clear);
+RTE_TRACE_POINT_DEFINE(rte_trace_lib_cryptodev_enqueue_burst);
+RTE_TRACE_POINT_DEFINE(rte_trace_lib_cryptodev_dequeue_burst);
+
+RTE_INIT(cryptodev_trace_init)
+{
+       RTE_TRACE_POINT_REGISTER(rte_trace_lib_cryptodev_configure,
+                                lib.cryptodev.configure);
+
+       RTE_TRACE_POINT_REGISTER(rte_trace_lib_cryptodev_start,
+                                lib.cryptodev.start);
+
+       RTE_TRACE_POINT_REGISTER(rte_trace_lib_cryptodev_stop,
+                                lib.cryptodev.stop);
+
+       RTE_TRACE_POINT_REGISTER(rte_trace_lib_cryptodev_close,
+                                lib.cryptodev.close);
+
+       RTE_TRACE_POINT_REGISTER(rte_trace_lib_cryptodev_queue_pair_setup,
+                                lib.cryptodev.queue.pair.setup);
+
+       RTE_TRACE_POINT_REGISTER(
+                       rte_trace_lib_cryptodev_sym_session_pool_create,
+                       lib.cryptodev.sym.pool.create);
+
+       RTE_TRACE_POINT_REGISTER(rte_trace_lib_cryptodev_sym_session_create,
+                                lib.cryptodev.sym.create);
+
+       RTE_TRACE_POINT_REGISTER(rte_trace_lib_cryptodev_asym_session_create,
+                                lib.cryptodev.asym.create);
+
+       RTE_TRACE_POINT_REGISTER(rte_trace_lib_cryptodev_sym_session_free,
+                                lib.cryptodev.sym.free);
+
+       RTE_TRACE_POINT_REGISTER(rte_trace_lib_cryptodev_asym_session_free,
+                                lib.cryptodev.asym.free);
+
+       RTE_TRACE_POINT_REGISTER(rte_trace_lib_cryptodev_sym_session_init,
+                                lib.cryptodev.sym.init);
+
+       RTE_TRACE_POINT_REGISTER(rte_trace_lib_cryptodev_asym_session_init,
+                                lib.cryptodev.asym.init);
+
+       RTE_TRACE_POINT_REGISTER(rte_trace_lib_cryptodev_enqueue_burst,
+                                lib.cryptodev.enq.burst);
+
+       RTE_TRACE_POINT_REGISTER(rte_trace_lib_cryptodev_dequeue_burst,
+                                lib.cryptodev.deq.burst);
+}
diff --git a/lib/librte_cryptodev/meson.build b/lib/librte_cryptodev/meson.build
index 42825a810..9358b2811 100644
--- a/lib/librte_cryptodev/meson.build
+++ b/lib/librte_cryptodev/meson.build
@@ -1,10 +1,12 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017-2019 Intel Corporation
 
-sources = files('rte_cryptodev.c', 'rte_cryptodev_pmd.c')
+sources = files('rte_cryptodev.c', 'rte_cryptodev_pmd.c', 
'cryptodev_trace_points.c')
 headers = files('rte_cryptodev.h',
        'rte_cryptodev_pmd.h',
        'rte_crypto.h',
        'rte_crypto_sym.h',
-       'rte_crypto_asym.h')
+       'rte_crypto_asym.h',
+       'rte_trace_cryptodev.h',
+       'rte_trace_cryptodev_fp.h')
 deps += ['kvargs', 'mbuf']
diff --git a/lib/librte_cryptodev/rte_cryptodev.c 
b/lib/librte_cryptodev/rte_cryptodev.c
index 65d61a3ef..2ed91eee7 100644
--- a/lib/librte_cryptodev/rte_cryptodev.c
+++ b/lib/librte_cryptodev/rte_cryptodev.c
@@ -40,6 +40,7 @@
 #include "rte_crypto.h"
 #include "rte_cryptodev.h"
 #include "rte_cryptodev_pmd.h"
+#include "rte_trace_cryptodev.h"
 
 static uint8_t nb_drivers;
 
@@ -912,6 +913,7 @@ rte_cryptodev_configure(uint8_t dev_id, struct 
rte_cryptodev_config *config)
                return diag;
        }
 
+       rte_trace_lib_cryptodev_configure(dev_id, config);
        return (*dev->dev_ops->dev_configure)(dev, config);
 }
 
@@ -940,6 +942,7 @@ rte_cryptodev_start(uint8_t dev_id)
        }
 
        diag = (*dev->dev_ops->dev_start)(dev);
+       rte_trace_lib_cryptodev_start(dev_id, diag);
        if (diag == 0)
                dev->data->dev_started = 1;
        else
@@ -969,6 +972,7 @@ rte_cryptodev_stop(uint8_t dev_id)
        }
 
        (*dev->dev_ops->dev_stop)(dev);
+       rte_trace_lib_cryptodev_stop(dev_id);
        dev->data->dev_started = 0;
 }
 
@@ -1005,6 +1009,7 @@ rte_cryptodev_close(uint8_t dev_id)
 
        RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->dev_close, -ENOTSUP);
        retval = (*dev->dev_ops->dev_close)(dev);
+       rte_trace_lib_cryptodev_close(dev_id, retval);
 
        if (retval < 0)
                return retval;
@@ -1074,6 +1079,8 @@ rte_cryptodev_queue_pair_setup(uint8_t dev_id, uint16_t 
queue_pair_id,
 
        RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->queue_pair_setup, -ENOTSUP);
 
+       rte_trace_lib_cryptodev_queue_pair_setup(dev_id, queue_pair_id,
+                                                qp_conf);
        return (*dev->dev_ops->queue_pair_setup)(dev, queue_pair_id, qp_conf,
                        socket_id);
 }
@@ -1295,6 +1302,7 @@ rte_cryptodev_sym_session_init(uint8_t dev_id,
                }
        }
 
+       rte_trace_lib_cryptodev_sym_session_init(dev_id, sess, xforms, mp);
        sess->sess_data[index].refcnt++;
        return 0;
 }
@@ -1336,6 +1344,7 @@ rte_cryptodev_asym_session_init(uint8_t dev_id,
                }
        }
 
+       rte_trace_lib_cryptodev_asym_session_init(dev_id, sess, xforms, mp);
        return 0;
 }
 
@@ -1376,6 +1385,9 @@ rte_cryptodev_sym_session_pool_create(const char *name, 
uint32_t nb_elts,
        pool_priv->nb_drivers = nb_drivers;
        pool_priv->user_data_sz = user_data_size;
 
+       rte_trace_lib_cryptodev_sym_session_pool_create(name, nb_elts,
+                                                       elt_size, cache_size,
+                                                       user_data_size, mp);
        return mp;
 }
 
@@ -1420,6 +1432,7 @@ rte_cryptodev_sym_session_create(struct rte_mempool *mp)
        memset(sess->sess_data, 0,
                        rte_cryptodev_sym_session_data_size(sess));
 
+       rte_trace_lib_cryptodev_sym_session_create(mp, sess);
        return sess;
 }
 
@@ -1439,6 +1452,7 @@ rte_cryptodev_asym_session_create(struct rte_mempool *mp)
         */
        memset(sess, 0, (sizeof(void *) * nb_drivers) + sizeof(uint8_t));
 
+       rte_trace_lib_cryptodev_asym_session_create(mp, sess);
        return sess;
 }
 
@@ -1469,6 +1483,7 @@ rte_cryptodev_sym_session_clear(uint8_t dev_id,
 
        dev->dev_ops->sym_session_clear(dev, sess);
 
+       rte_trace_lib_cryptodev_sym_session_clear(dev_id, sess);
        return 0;
 }
 
@@ -1492,6 +1507,7 @@ rte_cryptodev_asym_session_clear(uint8_t dev_id,
 
        dev->dev_ops->asym_session_clear(dev, sess);
 
+       rte_trace_lib_cryptodev_sym_session_clear(dev_id, sess);
        return 0;
 }
 
@@ -1514,6 +1530,7 @@ rte_cryptodev_sym_session_free(struct 
rte_cryptodev_sym_session *sess)
        sess_mp = rte_mempool_from_obj(sess);
        rte_mempool_put(sess_mp, sess);
 
+       rte_trace_lib_cryptodev_sym_session_free(sess);
        return 0;
 }
 
@@ -1538,6 +1555,7 @@ rte_cryptodev_asym_session_free(struct 
rte_cryptodev_asym_session *sess)
        sess_mp = rte_mempool_from_obj(sess);
        rte_mempool_put(sess_mp, sess);
 
+       rte_trace_lib_cryptodev_asym_session_free(sess);
        return 0;
 }
 
diff --git a/lib/librte_cryptodev/rte_cryptodev.h 
b/lib/librte_cryptodev/rte_cryptodev.h
index 437b8a9b3..9008b70b6 100644
--- a/lib/librte_cryptodev/rte_cryptodev.h
+++ b/lib/librte_cryptodev/rte_cryptodev.h
@@ -24,6 +24,8 @@ extern "C" {
 #include <rte_common.h>
 #include <rte_config.h>
 
+#include "rte_trace_cryptodev_fp.h"
+
 extern const char **rte_cyptodev_names;
 
 /* Logging Macros */
@@ -924,6 +926,8 @@ rte_cryptodev_dequeue_burst(uint8_t dev_id, uint16_t qp_id,
        nb_ops = (*dev->dequeue_burst)
                        (dev->data->queue_pairs[qp_id], ops, nb_ops);
 
+       rte_trace_lib_cryptodev_dequeue_burst(dev_id, qp_id, (void **)ops,
+                                             nb_ops);
        return nb_ops;
 }
 
@@ -964,6 +968,8 @@ rte_cryptodev_enqueue_burst(uint8_t dev_id, uint16_t qp_id,
 {
        struct rte_cryptodev *dev = &rte_cryptodevs[dev_id];
 
+       rte_trace_lib_cryptodev_enqueue_burst(dev_id, qp_id, (void **)ops,
+                                             nb_ops);
        return (*dev->enqueue_burst)(
                        dev->data->queue_pairs[qp_id], ops, nb_ops);
 }
diff --git a/lib/librte_cryptodev/rte_cryptodev_version.map 
b/lib/librte_cryptodev/rte_cryptodev_version.map
index 6e41b4be5..d023de7aa 100644
--- a/lib/librte_cryptodev/rte_cryptodev_version.map
+++ b/lib/librte_cryptodev/rte_cryptodev_version.map
@@ -78,4 +78,22 @@ EXPERIMENTAL {
        rte_cryptodev_sym_session_set_user_data;
        rte_crypto_asym_op_strings;
        rte_crypto_asym_xform_strings;
+
+       # added in 20.05
+       __rte_trace_lib_cryptodev_configure;
+       __rte_trace_lib_cryptodev_start;
+       __rte_trace_lib_cryptodev_stop;
+       __rte_trace_lib_cryptodev_close;
+       __rte_trace_lib_cryptodev_queue_pair_setup;
+       __rte_trace_lib_cryptodev_sym_session_pool_create;
+       __rte_trace_lib_cryptodev_sym_session_create;
+       __rte_trace_lib_cryptodev_asym_session_create;
+       __rte_trace_lib_cryptodev_sym_session_free;
+       __rte_trace_lib_cryptodev_asym_session_free;
+       __rte_trace_lib_cryptodev_sym_session_init;
+       __rte_trace_lib_cryptodev_asym_session_init;
+       __rte_trace_lib_cryptodev_sym_session_clear;
+       __rte_trace_lib_cryptodev_asym_session_clear;
+       __rte_trace_lib_cryptodev_dequeue_burst;
+       __rte_trace_lib_cryptodev_enqueue_burst;
 };
diff --git a/lib/librte_cryptodev/rte_trace_cryptodev.h 
b/lib/librte_cryptodev/rte_trace_cryptodev.h
new file mode 100644
index 000000000..d9b896fe0
--- /dev/null
+++ b/lib/librte_cryptodev/rte_trace_cryptodev.h
@@ -0,0 +1,148 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2020 Marvell International Ltd.
+ */
+
+#ifndef _RTE_TRACE_CRYPTODEV_H_
+#define _RTE_TRACE_CRYPTODEV_H_
+
+/**
+ * @file
+ *
+ * API for cryptodev trace support
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <rte_trace_point.h>
+
+#include "rte_cryptodev.h"
+
+RTE_TRACE_POINT(
+       rte_trace_lib_cryptodev_configure,
+       RTE_TRACE_POINT_ARGS(uint8_t dev_id, struct rte_cryptodev_config *conf),
+       rte_trace_point_emit_u8(dev_id);
+       rte_trace_point_emit_u16(conf->nb_queue_pairs);
+       rte_trace_point_emit_i64(conf->ff_disable);
+)
+
+RTE_TRACE_POINT(
+       rte_trace_lib_cryptodev_start,
+       RTE_TRACE_POINT_ARGS(uint8_t dev_id, int rc),
+       rte_trace_point_emit_u8(dev_id);
+       rte_trace_point_emit_int(rc);
+)
+
+RTE_TRACE_POINT(
+       rte_trace_lib_cryptodev_stop,
+       RTE_TRACE_POINT_ARGS(uint8_t dev_id),
+       rte_trace_point_emit_u8(dev_id);
+)
+
+RTE_TRACE_POINT(
+       rte_trace_lib_cryptodev_close,
+       RTE_TRACE_POINT_ARGS(uint8_t dev_id, int rc),
+       rte_trace_point_emit_u8(dev_id);
+       rte_trace_point_emit_int(rc);
+)
+
+RTE_TRACE_POINT(
+       rte_trace_lib_cryptodev_queue_pair_setup,
+       RTE_TRACE_POINT_ARGS(uint8_t dev_id, uint16_t queue_pair_id,
+                            const struct rte_cryptodev_qp_conf *conf),
+       rte_trace_point_emit_u8(dev_id);
+       rte_trace_point_emit_u16(queue_pair_id);
+       rte_trace_point_emit_u32(conf->nb_descriptors);
+       rte_trace_point_emit_ptr(conf->mp_session);
+       rte_trace_point_emit_ptr(conf->mp_session_private);
+)
+
+RTE_TRACE_POINT(
+       rte_trace_lib_cryptodev_sym_session_pool_create,
+       RTE_TRACE_POINT_ARGS(const char *name, uint32_t nb_elts,
+                            uint32_t elt_size, uint32_t cache_size,
+                            uint16_t user_data_size, void *mempool),
+       rte_trace_point_emit_string(name);
+       rte_trace_point_emit_u32(nb_elts);
+       rte_trace_point_emit_u32(elt_size);
+       rte_trace_point_emit_u32(cache_size);
+       rte_trace_point_emit_u16(user_data_size);
+       rte_trace_point_emit_ptr(mempool);
+)
+
+RTE_TRACE_POINT(
+       rte_trace_lib_cryptodev_sym_session_create,
+       RTE_TRACE_POINT_ARGS(void *mempool,
+                            struct rte_cryptodev_sym_session *sess),
+       rte_trace_point_emit_ptr(mempool);
+       rte_trace_point_emit_ptr(sess);
+       rte_trace_point_emit_u64(sess->opaque_data);
+       rte_trace_point_emit_u16(sess->nb_drivers);
+       rte_trace_point_emit_u16(sess->user_data_sz);
+)
+
+RTE_TRACE_POINT(
+       rte_trace_lib_cryptodev_asym_session_create,
+       RTE_TRACE_POINT_ARGS(void *mempool,
+                            struct rte_cryptodev_asym_session *sess),
+       rte_trace_point_emit_ptr(mempool);
+       rte_trace_point_emit_ptr(sess);
+)
+
+RTE_TRACE_POINT(
+       rte_trace_lib_cryptodev_sym_session_free,
+       RTE_TRACE_POINT_ARGS(struct rte_cryptodev_sym_session *sess),
+       rte_trace_point_emit_ptr(sess);
+)
+
+RTE_TRACE_POINT(
+       rte_trace_lib_cryptodev_asym_session_free,
+       RTE_TRACE_POINT_ARGS(struct rte_cryptodev_asym_session *sess),
+       rte_trace_point_emit_ptr(sess);
+)
+
+RTE_TRACE_POINT(
+       rte_trace_lib_cryptodev_sym_session_init,
+       RTE_TRACE_POINT_ARGS(uint8_t dev_id,
+                            struct rte_cryptodev_sym_session *sess,
+                            void *xforms, void *mempool),
+       rte_trace_point_emit_u8(dev_id);
+       rte_trace_point_emit_ptr(sess);
+       rte_trace_point_emit_u64(sess->opaque_data);
+       rte_trace_point_emit_u16(sess->nb_drivers);
+       rte_trace_point_emit_u16(sess->user_data_sz);
+       rte_trace_point_emit_ptr(xforms);
+       rte_trace_point_emit_ptr(mempool);
+)
+
+RTE_TRACE_POINT(
+       rte_trace_lib_cryptodev_asym_session_init,
+       RTE_TRACE_POINT_ARGS(uint8_t dev_id,
+                            struct rte_cryptodev_asym_session *sess,
+                            void *xforms, void *mempool),
+       rte_trace_point_emit_u8(dev_id);
+       rte_trace_point_emit_ptr(sess);
+       rte_trace_point_emit_ptr(xforms);
+       rte_trace_point_emit_ptr(mempool);
+)
+
+RTE_TRACE_POINT(
+       rte_trace_lib_cryptodev_sym_session_clear,
+       RTE_TRACE_POINT_ARGS(uint8_t dev_id, void *sess),
+       rte_trace_point_emit_u8(dev_id);
+       rte_trace_point_emit_ptr(sess);
+)
+
+RTE_TRACE_POINT(
+       rte_trace_lib_cryptodev_asym_session_clear,
+       RTE_TRACE_POINT_ARGS(uint8_t dev_id, void *sess),
+       rte_trace_point_emit_u8(dev_id);
+       rte_trace_point_emit_ptr(sess);
+)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTE_TRACE_CRYPTODEV_H_ */
diff --git a/lib/librte_cryptodev/rte_trace_cryptodev_fp.h 
b/lib/librte_cryptodev/rte_trace_cryptodev_fp.h
new file mode 100644
index 000000000..ccbf71f69
--- /dev/null
+++ b/lib/librte_cryptodev/rte_trace_cryptodev_fp.h
@@ -0,0 +1,38 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2020 Marvell International Ltd.
+ */
+
+#ifndef _RTE_TRACE_CRYPTODEV_FP_H_
+#define _RTE_TRACE_CRYPTODEV_FP_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <rte_trace_point.h>
+
+RTE_TRACE_POINT_FP(
+       rte_trace_lib_cryptodev_enqueue_burst,
+       RTE_TRACE_POINT_ARGS(uint8_t dev_id, uint16_t qp_id, void **ops,
+                            uint16_t nb_ops),
+       rte_trace_point_emit_u8(dev_id);
+       rte_trace_point_emit_u16(qp_id);
+       rte_trace_point_emit_ptr(ops);
+       rte_trace_point_emit_u16(nb_ops);
+)
+
+RTE_TRACE_POINT_FP(
+       rte_trace_lib_cryptodev_dequeue_burst,
+       RTE_TRACE_POINT_ARGS(uint8_t dev_id, uint16_t qp_id, void **ops,
+                            uint16_t nb_ops),
+       rte_trace_point_emit_u8(dev_id);
+       rte_trace_point_emit_u16(qp_id);
+       rte_trace_point_emit_ptr(ops);
+       rte_trace_point_emit_u16(nb_ops);
+)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTE_TRACE_CRYPTODEV_FP_H_ */
-- 
2.25.1

Reply via email to