All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jerin Jacob <jerinjacobk@gmail.com>
To: Amit Prakash Shukla <amitprakashs@marvell.com>
Cc: Akhil Goyal <gakhil@marvell.com>,
	Fan Zhang <roy.fan.zhang@intel.com>,
	 Ray Kinsella <mdr@ashroe.eu>,
	dev@dpdk.org, jerinj@marvell.com
Subject: Re: [PATCH] cryptodev: add trace points
Date: Wed, 28 Sep 2022 09:38:25 +0530	[thread overview]
Message-ID: <CALBAE1P+Ekj2Qi9MEDEbKjMRTDBw7EM=gbhVxP9=YZwzRUv5KA@mail.gmail.com> (raw)
In-Reply-To: <20220916173227.27758-1-amitprakashs@marvell.com>

On Fri, Sep 16, 2022 at 11:05 PM Amit Prakash Shukla
<amitprakashs@marvell.com> wrote:
>
> Add trace points for cryptodev functions.
>
> Signed-off-by: Amit Prakash Shukla <amitprakashs@marvell.com>
> ---

1) Please include the result of API operation in trace so that once
can know the API status
2) restrict trace additions to public API. i.e I think, no need to add
trace for PMD hooks
3) Please test with
https://patches.dpdk.org/project/dpdk/patch/20220804134430.6192-7-adwivedi@marvell.com/
patch by adding cryptodev symbols
to make sure not to missed any public cryptodev API.


> @@ -135,6 +139,8 @@ rte_cryptodev_pmd_create(const char *name,
>         /* initialise user call-back tail queue */
>         TAILQ_INIT(&(cryptodev->link_intr_cbs));
>
> +       rte_cryptodev_trace_pmd_create(name, params->socket_id, cryptodev);
> +
>         return cryptodev;
>  }
>
> @@ -144,6 +150,8 @@ rte_cryptodev_pmd_destroy(struct rte_cryptodev *cryptodev)
>         int retval;
>         void *dev_priv = cryptodev->data->dev_private;
>
> +       rte_cryptodev_trace_pmd_destroy(cryptodev);
> +
>         CDEV_LOG_INFO("Closing crypto device %s", cryptodev->device->name);
>
>         /* free crypto device */
> @@ -166,6 +174,9 @@ rte_cryptodev_pmd_probing_finish(struct rte_cryptodev *cryptodev)
>  {
>         if (cryptodev == NULL)
>                 return;
> +
> +       rte_cryptodev_trace_pmd_probing_finish(cryptodev);
> +
>         /*
>          * for secondary process, at that point we expect device
>          * to be already 'usable', so shared data and all function
> @@ -231,6 +242,8 @@ cryptodev_fp_ops_set(struct rte_crypto_fp_ops *fp_ops,
>  void *
>  rte_cryptodev_session_event_mdata_get(struct rte_crypto_op *op)
>  {
> +       rte_cryptodev_trace_session_event_mdata_get(op->type);
> +
>         if (op->type == RTE_CRYPTO_OP_TYPE_SYMMETRIC &&
>                         op->sess_type == RTE_CRYPTO_OP_WITH_SESSION)
>                 return rte_cryptodev_sym_session_get_user_data(op->sym->session);
> diff --git a/lib/cryptodev/cryptodev_trace_points.c b/lib/cryptodev/cryptodev_trace_points.c
> index c5bfe08b79..bca4deecc2 100644
> --- a/lib/cryptodev/cryptodev_trace_points.c
> +++ b/lib/cryptodev/cryptodev_trace_points.c
> @@ -50,3 +50,168 @@ RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_enqueue_burst,
>
>  RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_dequeue_burst,
>         lib.cryptodev.deq.burst)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_callback_register,
> +       lib.cryptodev.callback.register)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_callback_unregister,
> +       lib.cryptodev.callback.unregister)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_device_count_by_driver,
> +       lib.cryptodev.device.count.by.driver)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_devices_get,
> +       lib.cryptodev.devices.get)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_driver_id_get,
> +       lib.cryptodev.driver.id.get)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_driver_name_get,
> +       lib.cryptodev.driver.name.get)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_get_aead_algo_enum,
> +       lib.cryptodev.get.aead.algo.enum)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_get_auth_algo_enum,
> +       lib.cryptodev.get.auth.algo.enum)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_get_cipher_algo_enum,
> +       lib.cryptodev.get.cipher.algo.enum)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_get_dev_id,
> +       lib.cryptodev.get.dev.id)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_get_feature_name,
> +       lib.cryptodev.get.feature.name)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_get_sec_ctx,
> +       lib.cryptodev.get.sec.ctx)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_info_get,
> +       lib.cryptodev.info.get)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_is_valid_dev,
> +       lib.cryptodev.is.valid.dev)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_name_get,
> +       lib.cryptodev.name.get)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_queue_pair_count,
> +       lib.cryptodev.queue.pair.count)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_socket_id,
> +       lib.cryptodev.socket.id)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_stats_get,
> +       lib.cryptodev.stats.get)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_stats_reset,
> +       lib.cryptodev.stats.reset)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_sym_capability_check_aead,
> +       lib.cryptodev.sym.capability.check.aead)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_sym_capability_check_auth,
> +       lib.cryptodev.sym.capability.check.auth)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_sym_capability_check_cipher,
> +       lib.cryptodev.sym.capability.check.cipher)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_sym_capability_get,
> +       lib.cryptodev.sym.capability.get)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_sym_get_private_session_size,
> +       lib.cryptodev.sym.get.private.session.size)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_asym_capability_get,
> +       lib.cryptodev.asym.capability.get)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_asym_get_private_session_size,
> +       lib.cryptodev.asym.get.private.session.size)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_asym_get_xform_enum,
> +       lib.cryptodev.asym.get.xform.enum)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_asym_xform_capability_check_modlen,
> +       lib.cryptodev.asym.xform.capability.check.modlen)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_sym_cpu_crypto_process,
> +       lib.cryptodev.sym.cpu.crypto.process)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_sym_get_existing_header_session_size,
> +       lib.cryptodev.sym.get.existing.header.session.size)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_sym_session_get_user_data,
> +       lib.cryptodev.sym.session.get.user.data)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_sym_session_set_user_data,
> +       lib.cryptodev.sym.session.set.user.data)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_get_qp_status,
> +       lib.cryptodev.get.qp.status)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_configure_raw_dp_ctx,
> +       lib.cryptodev.configure.raw.dp.ctx)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_get_raw_dp_ctx_size,
> +       lib.cryptodev.get.raw.dp.ctx.size)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_add_deq_callback,
> +       lib.cryptodev.add.deq.callback)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_add_enq_callback,
> +       lib.cryptodev.add.enq.callback)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_remove_deq_callback,
> +       lib.cryptodev.remove.deq.callback)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_remove_enq_callback,
> +       lib.cryptodev.remove.enq.callback)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_asym_session_get_user_data,
> +       lib.cryptodev.asym.session.get.user.data)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_asym_session_set_user_data,
> +       lib.cryptodev.asym.session.set.user.data)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_session_event_mdata_set,
> +       lib.cryptodev.session.event.mdata.set)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_allocate_driver,
> +       lib.cryptodev.allocate.driver)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_pmd_allocate,
> +       lib.cryptodev.pmd.allocate)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_pmd_callback_process,
> +       lib.cryptodev.pmd.callback.process)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_pmd_create,
> +       lib.cryptodev.pmd.create)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_pmd_create_dev_name,
> +       lib.cryptodev.pmd.create.dev.name)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_pmd_destroy,
> +       lib.cryptodev.pmd.destroy)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_pmd_get_dev,
> +       lib.cryptodev.pmd.get.dev)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_pmd_get_named_dev,
> +       lib.cryptodev.pmd.get.named.dev)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_pmd_parse_input_args,
> +       lib.cryptodev.pmd.parse.input.args)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_pmd_probing_finish,
> +       lib.cryptodev.pmd.probing.finish)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_pmd_release_device,
> +       lib.cryptodev.pmd.release.device)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_session_event_mdata_get,
> +       lib.cryptodev.session.event.mdata.get)
> +
> +RTE_TRACE_POINT_REGISTER(rte_cryptodev_trace_op_pool_create,
> +       lib.cryptodev.op.pool.create)
> diff --git a/lib/cryptodev/rte_cryptodev.c b/lib/cryptodev/rte_cryptodev.c
> index 42f3221052..b712315674 100644
> --- a/lib/cryptodev/rte_cryptodev.c
> +++ b/lib/cryptodev/rte_cryptodev.c
> @@ -216,6 +216,8 @@ rte_cryptodev_get_cipher_algo_enum(enum rte_crypto_cipher_algorithm *algo_enum,
>  {
>         unsigned int i;
>
> +       rte_cryptodev_trace_get_cipher_algo_enum(algo_string);
> +
>         for (i = 1; i < RTE_DIM(rte_crypto_cipher_algorithm_strings); i++) {
>                 if (strcmp(algo_string, rte_crypto_cipher_algorithm_strings[i]) == 0) {
>                         *algo_enum = (enum rte_crypto_cipher_algorithm) i;
> @@ -233,6 +235,8 @@ rte_cryptodev_get_auth_algo_enum(enum rte_crypto_auth_algorithm *algo_enum,
>  {
>         unsigned int i;
>
> +       rte_cryptodev_trace_get_auth_algo_enum(algo_string);
> +
>         for (i = 1; i < RTE_DIM(rte_crypto_auth_algorithm_strings); i++) {
>                 if (strcmp(algo_string, rte_crypto_auth_algorithm_strings[i]) == 0) {
>                         *algo_enum = (enum rte_crypto_auth_algorithm) i;
> @@ -250,6 +254,8 @@ rte_cryptodev_get_aead_algo_enum(enum rte_crypto_aead_algorithm *algo_enum,
>  {
>         unsigned int i;
>
> +       rte_cryptodev_trace_get_aead_algo_enum(algo_string);
> +
>         for (i = 1; i < RTE_DIM(rte_crypto_aead_algorithm_strings); i++) {
>                 if (strcmp(algo_string, rte_crypto_aead_algorithm_strings[i]) == 0) {
>                         *algo_enum = (enum rte_crypto_aead_algorithm) i;
> @@ -267,6 +273,8 @@ rte_cryptodev_asym_get_xform_enum(enum rte_crypto_asym_xform_type *xform_enum,
>  {
>         unsigned int i;
>
> +       rte_cryptodev_trace_asym_get_xform_enum(xform_string);
> +
>         for (i = 1; i < RTE_DIM(rte_crypto_asym_xform_strings); i++) {
>                 if (strcmp(xform_string,
>                         rte_crypto_asym_xform_strings[i]) == 0) {
> @@ -299,6 +307,9 @@ rte_cryptodev_sym_capability_get(uint8_t dev_id,
>
>         rte_cryptodev_info_get(dev_id, &dev_info);
>
> +       rte_cryptodev_trace_sym_capability_get(dev_id, dev_info.driver_name,
> +               dev_info.driver_id, idx->type);
> +
>         while ((capability = &dev_info.capabilities[i++])->op !=
>                         RTE_CRYPTO_OP_TYPE_UNDEFINED) {
>                 if (capability->op != RTE_CRYPTO_OP_TYPE_SYMMETRIC)
> @@ -359,6 +370,9 @@ rte_cryptodev_asym_capability_get(uint8_t dev_id,
>         memset(&dev_info, 0, sizeof(struct rte_cryptodev_info));
>         rte_cryptodev_info_get(dev_id, &dev_info);
>
> +       rte_cryptodev_trace_asym_capability_get(dev_info.driver_name,
> +               dev_info.driver_id, idx->type);
> +
>         while ((capability = &dev_info.capabilities[i++])->op !=
>                         RTE_CRYPTO_OP_TYPE_UNDEFINED) {
>                 if (capability->op != RTE_CRYPTO_OP_TYPE_ASYMMETRIC)
> @@ -375,6 +389,9 @@ rte_cryptodev_sym_capability_check_cipher(
>                 const struct rte_cryptodev_symmetric_capability *capability,
>                 uint16_t key_size, uint16_t iv_size)
>  {
> +       rte_cryptodev_trace_sym_capability_check_cipher(capability, key_size,
> +               iv_size);
> +
>         if (param_range_check(key_size, &capability->cipher.key_size) != 0)
>                 return -1;
>
> @@ -389,6 +406,9 @@ rte_cryptodev_sym_capability_check_auth(
>                 const struct rte_cryptodev_symmetric_capability *capability,
>                 uint16_t key_size, uint16_t digest_size, uint16_t iv_size)
>  {
> +       rte_cryptodev_trace_sym_capability_check_auth(capability, key_size,
> +               digest_size, iv_size);
> +
>         if (param_range_check(key_size, &capability->auth.key_size) != 0)
>                 return -1;
>
> @@ -407,6 +427,9 @@ rte_cryptodev_sym_capability_check_aead(
>                 uint16_t key_size, uint16_t digest_size, uint16_t aad_size,
>                 uint16_t iv_size)
>  {
> +       rte_cryptodev_trace_sym_capability_check_aead(capability, key_size,
> +               digest_size, aad_size, iv_size);
> +
>         if (param_range_check(key_size, &capability->aead.key_size) != 0)
>                 return -1;
>
> @@ -437,6 +460,9 @@ rte_cryptodev_asym_xform_capability_check_modlen(
>         const struct rte_cryptodev_asymmetric_xform_capability *capability,
>         uint16_t modlen)
>  {
> +       rte_cryptodev_trace_asym_xform_capability_check_modlen(capability,
> +               modlen);
> +
>         /* no need to check for limits, if min or max = 0 */
>         if (capability->modlen.min != 0) {
>                 if (modlen < capability->modlen.min)
> @@ -577,6 +603,8 @@ cryptodev_cb_init(struct rte_cryptodev *dev)
>  const char *
>  rte_cryptodev_get_feature_name(uint64_t flag)
>  {
> +       rte_cryptodev_trace_get_feature_name(flag);
> +
>         switch (flag) {
>         case RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO:
>                 return "SYMMETRIC_CRYPTO";
> @@ -638,6 +666,8 @@ rte_cryptodev_get_feature_name(uint64_t flag)
>  struct rte_cryptodev *
>  rte_cryptodev_pmd_get_dev(uint8_t dev_id)
>  {
> +       rte_cryptodev_trace_pmd_get_dev(dev_id);
> +
>         return &cryptodev_globals.devs[dev_id];
>  }
>
> @@ -650,6 +680,8 @@ rte_cryptodev_pmd_get_named_dev(const char *name)
>         if (name == NULL)
>                 return NULL;
>
> +       rte_cryptodev_trace_pmd_get_named_dev(name);
> +
>         for (i = 0; i < RTE_CRYPTO_MAX_DEVS; i++) {
>                 dev = &cryptodev_globals.devs[i];
>
> @@ -676,6 +708,8 @@ rte_cryptodev_is_valid_dev(uint8_t dev_id)
>  {
>         struct rte_cryptodev *dev = NULL;
>
> +       rte_cryptodev_trace_is_valid_dev(dev_id);
> +
>         if (!rte_cryptodev_is_valid_device_data(dev_id))
>                 return 0;
>
> @@ -695,6 +729,8 @@ rte_cryptodev_get_dev_id(const char *name)
>         if (name == NULL)
>                 return -1;
>
> +       rte_cryptodev_trace_get_dev_id(name);
> +
>         for (i = 0; i < RTE_CRYPTO_MAX_DEVS; i++) {
>                 if (!rte_cryptodev_is_valid_device_data(i))
>                         continue;
> @@ -725,6 +761,8 @@ rte_cryptodev_device_count_by_driver(uint8_t driver_id)
>                                         RTE_CRYPTODEV_ATTACHED)
>                         dev_count++;
>
> +       rte_cryptodev_trace_device_count_by_driver(driver_id, dev_count);
> +
>         return dev_count;
>  }
>
> @@ -751,12 +789,16 @@ rte_cryptodev_devices_get(const char *driver_name, uint8_t *devices,
>                 }
>         }
>
> +       rte_cryptodev_trace_devices_get(driver_name, count);
> +
>         return count;
>  }
>
>  void *
>  rte_cryptodev_get_sec_ctx(uint8_t dev_id)
>  {
> +       rte_cryptodev_trace_get_sec_ctx(dev_id);
> +
>         if (dev_id < RTE_CRYPTO_MAX_DEVS &&
>                         (rte_crypto_devices[dev_id].feature_flags &
>                         RTE_CRYPTODEV_FF_SECURITY))
> @@ -775,6 +817,8 @@ rte_cryptodev_socket_id(uint8_t dev_id)
>
>         dev = rte_cryptodev_pmd_get_dev(dev_id);
>
> +       rte_cryptodev_trace_socket_id(dev_id, dev->data->name,
> +               dev->data->socket_id);
>         return dev->data->socket_id;
>  }
>
> @@ -913,6 +957,7 @@ rte_cryptodev_pmd_allocate(const char *name, int socket_id)
>                 cryptodev_globals.nb_devs++;
>         }
>
> +       rte_cryptodev_trace_pmd_allocate(cryptodev);
>         return cryptodev;
>  }
>
> @@ -925,6 +970,8 @@ rte_cryptodev_pmd_release_device(struct rte_cryptodev *cryptodev)
>         if (cryptodev == NULL)
>                 return -EINVAL;
>
> +       rte_cryptodev_trace_pmd_release_device(cryptodev);
> +
>         dev_id = cryptodev->data->dev_id;
>
>         cryptodev_fp_ops_reset(rte_crypto_fp_ops + dev_id);
> @@ -956,6 +1003,8 @@ rte_cryptodev_queue_pair_count(uint8_t dev_id)
>         }
>
>         dev = &rte_crypto_devices[dev_id];
> +       rte_cryptodev_trace_queue_pair_count(dev);
> +
>         return dev->data->nb_queue_pairs;
>  }
>
> @@ -1178,6 +1227,8 @@ rte_cryptodev_get_qp_status(uint8_t dev_id, uint16_t queue_pair_id)
>  {
>         struct rte_cryptodev *dev;
>
> +       rte_cryptodev_trace_get_qp_status(dev_id, queue_pair_id);
> +
>         if (!rte_cryptodev_is_valid_dev(dev_id)) {
>                 CDEV_LOG_ERR("Invalid dev_id=%" PRIu8, dev_id);
>                 return -EINVAL;
> @@ -1331,6 +1382,7 @@ rte_cryptodev_add_enq_callback(uint8_t dev_id,
>
>         rte_spinlock_unlock(&rte_cryptodev_callback_lock);
>
> +       rte_cryptodev_trace_add_enq_callback(dev_id, qp_id, cb_fn);
>         return cb;
>  }
>
> @@ -1356,6 +1408,8 @@ rte_cryptodev_remove_enq_callback(uint8_t dev_id,
>                 return -ENODEV;
>         }
>
> +       rte_cryptodev_trace_remove_enq_callback(dev_id, qp_id, cb->fn);
> +
>         dev = &rte_crypto_devices[dev_id];
>         if (qp_id >= dev->data->nb_queue_pairs) {
>                 CDEV_LOG_ERR("Invalid queue_pair_id=%d", qp_id);
> @@ -1466,6 +1520,8 @@ rte_cryptodev_add_deq_callback(uint8_t dev_id,
>
>         rte_spinlock_unlock(&rte_cryptodev_callback_lock);
>
> +       rte_cryptodev_trace_add_deq_callback(dev_id, qp_id, cb_fn);
> +
>         return cb;
>  }
>
> @@ -1491,6 +1547,8 @@ rte_cryptodev_remove_deq_callback(uint8_t dev_id,
>                 return -ENODEV;
>         }
>
> +       rte_cryptodev_trace_remove_deq_callback(dev_id, qp_id, cb->fn);
> +
>         dev = &rte_crypto_devices[dev_id];
>         if (qp_id >= dev->data->nb_queue_pairs) {
>                 CDEV_LOG_ERR("Invalid queue_pair_id=%d", qp_id);
> @@ -1559,6 +1617,8 @@ rte_cryptodev_stats_get(uint8_t dev_id, struct rte_cryptodev_stats *stats)
>
>         RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->stats_get, -ENOTSUP);
>         (*dev->dev_ops->stats_get)(dev, stats);
> +
> +       rte_cryptodev_trace_stats_get(dev_id, stats);
>         return 0;
>  }
>
> @@ -1567,6 +1627,8 @@ rte_cryptodev_stats_reset(uint8_t dev_id)
>  {
>         struct rte_cryptodev *dev;
>
> +       rte_cryptodev_trace_stats_reset(dev_id);
> +
>         if (!rte_cryptodev_is_valid_dev(dev_id)) {
>                 CDEV_LOG_ERR("Invalid dev_id=%" PRIu8, dev_id);
>                 return;
> @@ -1597,6 +1659,9 @@ rte_cryptodev_info_get(uint8_t dev_id, struct rte_cryptodev_info *dev_info)
>
>         dev_info->driver_name = dev->device->driver->name;
>         dev_info->device = dev->device;
> +
> +       rte_cryptodev_trace_info_get(dev_id);
> +
>  }
>
>  int
> @@ -1639,6 +1704,8 @@ rte_cryptodev_callback_register(uint8_t dev_id,
>         }
>
>         rte_spinlock_unlock(&rte_cryptodev_cb_lock);
> +
> +       rte_cryptodev_trace_callback_register(dev_id, event, cb_fn);
>         return (user_cb == NULL) ? -ENOMEM : 0;
>  }
>
> @@ -1685,6 +1752,8 @@ rte_cryptodev_callback_unregister(uint8_t dev_id,
>         }
>
>         rte_spinlock_unlock(&rte_cryptodev_cb_lock);
> +
> +       rte_cryptodev_trace_callback_unregister(dev_id, event, cb_fn);
>         return ret;
>  }
>
> @@ -1695,6 +1764,7 @@ rte_cryptodev_pmd_callback_process(struct rte_cryptodev *dev,
>         struct rte_cryptodev_callback *cb_lst;
>         struct rte_cryptodev_callback dev_cb;
>
> +       rte_cryptodev_trace_pmd_callback_process(dev, event);
>         rte_spinlock_lock(&rte_cryptodev_cb_lock);
>         TAILQ_FOREACH(cb_lst, &(dev->link_intr_cbs), next) {
>                 if (cb_lst->cb_fn == NULL || cb_lst->event != event)
> @@ -2117,6 +2187,9 @@ rte_cryptodev_sym_get_private_session_size(uint8_t dev_id)
>
>         priv_sess_size = (*dev->dev_ops->sym_session_get_size)(dev);
>
> +       rte_cryptodev_trace_sym_get_private_session_size(dev_id,
> +               priv_sess_size);
> +
>         return priv_sess_size;
>  }
>
> @@ -2136,6 +2209,9 @@ rte_cryptodev_asym_get_private_session_size(uint8_t dev_id)
>
>         priv_sess_size = (*dev->dev_ops->asym_session_get_size)(dev);
>
> +       rte_cryptodev_trace_asym_get_private_session_size(dev_id,
> +               priv_sess_size);
> +
>         return priv_sess_size;
>  }
>
> @@ -2152,6 +2228,9 @@ rte_cryptodev_sym_session_set_user_data(
>                 return -ENOMEM;
>
>         rte_memcpy(sess->sess_data + sess->nb_drivers, data, size);
> +
> +       rte_cryptodev_trace_sym_session_set_user_data(sess, data, size);
> +
>         return 0;
>  }
>
> @@ -2162,6 +2241,8 @@ rte_cryptodev_sym_session_get_user_data(
>         if (sess == NULL || sess->user_data_sz == 0)
>                 return NULL;
>
> +       rte_cryptodev_trace_sym_session_get_user_data(sess);
> +
>         return (void *)(sess->sess_data + sess->nb_drivers);
>  }
>
> @@ -2178,6 +2259,9 @@ rte_cryptodev_asym_session_set_user_data(void *session, void *data, uint16_t siz
>         rte_memcpy(sess->sess_private_data +
>                         sess->max_priv_data_sz,
>                         data, size);
> +
> +       rte_cryptodev_trace_asym_session_set_user_data(sess, data, size);
> +
>         return 0;
>  }
>
> @@ -2188,6 +2272,8 @@ rte_cryptodev_asym_session_get_user_data(void *session)
>         if (sess == NULL || sess->user_data_sz == 0)
>                 return NULL;
>
> +       rte_cryptodev_trace_asym_session_get_user_data(sess);
> +
>         return (void *)(sess->sess_private_data +
>                         sess->max_priv_data_sz);
>  }
> @@ -2207,6 +2293,8 @@ rte_cryptodev_sym_cpu_crypto_process(uint8_t dev_id,
>  {
>         struct rte_cryptodev *dev;
>
> +       rte_cryptodev_trace_sym_cpu_crypto_process(dev_id, sess);
> +
>         if (!rte_cryptodev_is_valid_dev(dev_id)) {
>                 sym_crypto_fill_status(vec, EINVAL);
>                 return 0;
> @@ -2230,6 +2318,8 @@ rte_cryptodev_get_raw_dp_ctx_size(uint8_t dev_id)
>         int32_t size = sizeof(struct rte_crypto_raw_dp_ctx);
>         int32_t priv_size;
>
> +       rte_cryptodev_trace_get_raw_dp_ctx_size(dev_id);
> +
>         if (!rte_cryptodev_is_valid_dev(dev_id))
>                 return -EINVAL;
>
> @@ -2256,6 +2346,8 @@ rte_cryptodev_configure_raw_dp_ctx(uint8_t dev_id, uint16_t qp_id,
>  {
>         struct rte_cryptodev *dev;
>
> +       rte_cryptodev_trace_configure_raw_dp_ctx(dev_id, qp_id, sess_type);
> +
>         if (!rte_cryptodev_get_qp_status(dev_id, qp_id))
>                 return -EINVAL;
>
> @@ -2280,6 +2372,9 @@ rte_cryptodev_session_event_mdata_set(uint8_t dev_id, void *sess,
>         if (sess == NULL || ev_mdata == NULL)
>                 return -EINVAL;
>
> +       rte_cryptodev_trace_session_event_mdata_set(dev_id, sess, op_type,
> +               sess_type, ev_mdata, size);
> +
>         if (!rte_cryptodev_is_valid_dev(dev_id))
>                 goto skip_pmd_op;
>
> @@ -2429,6 +2524,7 @@ rte_crypto_op_pool_create(const char *name, enum rte_crypto_op_type type,
>         priv->priv_size = priv_size;
>         priv->type = type;
>
> +       rte_cryptodev_trace_op_pool_create(name, socket_id, type, nb_elts, mp);
>         return mp;
>  }
>
> @@ -2441,6 +2537,8 @@ rte_cryptodev_pmd_create_dev_name(char *name, const char *dev_name_prefix)
>         if (name == NULL)
>                 return -EINVAL;
>
> +       rte_cryptodev_trace_pmd_create_dev_name(dev_name_prefix);
> +
>         for (i = 0; i < RTE_CRYPTO_MAX_DEVS; i++) {
>                 int ret = snprintf(name, RTE_CRYPTODEV_NAME_MAX_LEN,
>                                 "%s_%u", dev_name_prefix, i);
> @@ -2467,6 +2565,8 @@ rte_cryptodev_driver_id_get(const char *name)
>         struct cryptodev_driver *driver;
>         const char *driver_name;
>
> +       rte_cryptodev_trace_driver_id_get(name);
> +
>         if (name == NULL) {
>                 RTE_LOG(DEBUG, CRYPTODEV, "name pointer NULL");
>                 return -1;
> @@ -2494,6 +2594,8 @@ rte_cryptodev_name_get(uint8_t dev_id)
>         if (dev == NULL)
>                 return NULL;
>
> +       rte_cryptodev_trace_name_get(dev_id, dev->data->name);
> +
>         return dev->data->name;
>  }
>
> @@ -2503,8 +2605,11 @@ rte_cryptodev_driver_name_get(uint8_t driver_id)
>         struct cryptodev_driver *driver;
>
>         TAILQ_FOREACH(driver, &cryptodev_driver_list, next)
> -               if (driver->id == driver_id)
> +               if (driver->id == driver_id) {
> +                       rte_cryptodev_trace_driver_name_get(driver_id,
> +                               driver->driver->name);
>                         return driver->driver->name;
> +               }
>         return NULL;
>  }
>
> @@ -2517,6 +2622,8 @@ rte_cryptodev_allocate_driver(struct cryptodev_driver *crypto_drv,
>
>         TAILQ_INSERT_TAIL(&cryptodev_driver_list, crypto_drv, next);
>
> +       rte_cryptodev_trace_allocate_driver(drv->name);
> +
>         return nb_drivers++;
>  }
>
> diff --git a/lib/cryptodev/rte_cryptodev_trace.h b/lib/cryptodev/rte_cryptodev_trace.h
> index a3f6048e7d..84991c5b0a 100644
> --- a/lib/cryptodev/rte_cryptodev_trace.h
> +++ b/lib/cryptodev/rte_cryptodev_trace.h
> @@ -18,6 +18,7 @@ extern "C" {
>  #include <rte_trace_point.h>
>
>  #include "rte_cryptodev.h"
> +#include "cryptodev_pmd.h"
>
>  RTE_TRACE_POINT(
>         rte_cryptodev_trace_configure,
> @@ -138,6 +139,428 @@ RTE_TRACE_POINT(
>         rte_trace_point_emit_ptr(sess);
>  )
>
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_callback_register,
> +       RTE_TRACE_POINT_ARGS(uint8_t dev_id,
> +               enum rte_cryptodev_event_type event, const void *cb_fn),
> +       rte_trace_point_emit_u8(dev_id);
> +       rte_trace_point_emit_int(event);
> +       rte_trace_point_emit_ptr(cb_fn);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_callback_unregister,
> +       RTE_TRACE_POINT_ARGS(uint8_t dev_id,
> +               enum rte_cryptodev_event_type event, const void *cb_fn),
> +       rte_trace_point_emit_u8(dev_id);
> +       rte_trace_point_emit_int(event);
> +       rte_trace_point_emit_ptr(cb_fn);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_device_count_by_driver,
> +       RTE_TRACE_POINT_ARGS(uint8_t driver_id, uint8_t dev_count),
> +       rte_trace_point_emit_u8(driver_id);
> +       rte_trace_point_emit_u8(dev_count);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_devices_get,
> +       RTE_TRACE_POINT_ARGS(const char *driver_name, uint8_t count),
> +       rte_trace_point_emit_string(driver_name);
> +       rte_trace_point_emit_u8(count);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_driver_id_get,
> +       RTE_TRACE_POINT_ARGS(const char *name),
> +       rte_trace_point_emit_string(name);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_driver_name_get,
> +       RTE_TRACE_POINT_ARGS(uint8_t driver_id, const char *name),
> +       rte_trace_point_emit_u8(driver_id);
> +       rte_trace_point_emit_string(name);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_get_aead_algo_enum,
> +       RTE_TRACE_POINT_ARGS(const char *algo_string),
> +       rte_trace_point_emit_string(algo_string);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_get_auth_algo_enum,
> +       RTE_TRACE_POINT_ARGS(const char *algo_string),
> +       rte_trace_point_emit_string(algo_string);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_get_cipher_algo_enum,
> +       RTE_TRACE_POINT_ARGS(const char *algo_string),
> +       rte_trace_point_emit_string(algo_string);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_get_dev_id,
> +       RTE_TRACE_POINT_ARGS(const char *name),
> +       rte_trace_point_emit_string(name);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_get_feature_name,
> +       RTE_TRACE_POINT_ARGS(uint64_t flag),
> +       rte_trace_point_emit_u64(flag);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_get_sec_ctx,
> +       RTE_TRACE_POINT_ARGS(uint8_t dev_id),
> +       rte_trace_point_emit_u8(dev_id);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_info_get,
> +       RTE_TRACE_POINT_ARGS(uint8_t dev_id),
> +       rte_trace_point_emit_u8(dev_id);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_is_valid_dev,
> +       RTE_TRACE_POINT_ARGS(uint8_t dev_id),
> +       rte_trace_point_emit_u8(dev_id);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_name_get,
> +       RTE_TRACE_POINT_ARGS(uint8_t dev_id, const char *name),
> +       rte_trace_point_emit_u8(dev_id);
> +       rte_trace_point_emit_string(name);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_queue_pair_count,
> +       RTE_TRACE_POINT_ARGS(const struct rte_cryptodev *dev),
> +       rte_trace_point_emit_ptr(dev);
> +       rte_trace_point_emit_string(dev->data->name);
> +       rte_trace_point_emit_u8(dev->data->socket_id);
> +       rte_trace_point_emit_u8(dev->data->dev_id);
> +       rte_trace_point_emit_u16(dev->data->nb_queue_pairs);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_socket_id,
> +       RTE_TRACE_POINT_ARGS(uint8_t dev_id, const char *name, int socket_id),
> +       rte_trace_point_emit_u8(dev_id);
> +       rte_trace_point_emit_string(name);
> +       rte_trace_point_emit_int(socket_id);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_stats_get,
> +       RTE_TRACE_POINT_ARGS(uint8_t dev_id,
> +               const struct rte_cryptodev_stats *stats),
> +       rte_trace_point_emit_u8(dev_id);
> +       rte_trace_point_emit_u64(stats->enqueued_count);
> +       rte_trace_point_emit_u64(stats->dequeued_count);
> +       rte_trace_point_emit_u64(stats->enqueue_err_count);
> +       rte_trace_point_emit_u64(stats->dequeue_err_count);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_stats_reset,
> +       RTE_TRACE_POINT_ARGS(uint8_t dev_id),
> +       rte_trace_point_emit_u8(dev_id);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_sym_capability_check_aead,
> +       RTE_TRACE_POINT_ARGS(
> +               const struct rte_cryptodev_symmetric_capability *capability,
> +               uint16_t key_size, uint16_t digest_size, uint16_t aad_size,
> +               uint16_t iv_size),
> +       rte_trace_point_emit_ptr(capability);
> +       rte_trace_point_emit_int(capability->xform_type);
> +       rte_trace_point_emit_u16(key_size);
> +       rte_trace_point_emit_u16(digest_size);
> +       rte_trace_point_emit_u16(aad_size);
> +       rte_trace_point_emit_u16(iv_size);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_sym_capability_check_auth,
> +       RTE_TRACE_POINT_ARGS(
> +               const struct rte_cryptodev_symmetric_capability *capability,
> +               uint16_t key_size, uint16_t digest_size, uint16_t iv_size),
> +       rte_trace_point_emit_ptr(capability);
> +       rte_trace_point_emit_int(capability->xform_type);
> +       rte_trace_point_emit_u16(key_size);
> +       rte_trace_point_emit_u16(digest_size);
> +       rte_trace_point_emit_u16(iv_size);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_sym_capability_check_cipher,
> +       RTE_TRACE_POINT_ARGS(
> +               const struct rte_cryptodev_symmetric_capability *capability,
> +               uint16_t key_size, uint16_t iv_size),
> +       rte_trace_point_emit_ptr(capability);
> +       rte_trace_point_emit_int(capability->xform_type);
> +       rte_trace_point_emit_u16(key_size);
> +       rte_trace_point_emit_u16(iv_size);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_sym_capability_get,
> +       RTE_TRACE_POINT_ARGS(uint8_t dev_id, const char *driver_name,
> +               uint8_t driver_id, int idx_type),
> +       rte_trace_point_emit_u8(dev_id);
> +       rte_trace_point_emit_string(driver_name);
> +       rte_trace_point_emit_u8(driver_id);
> +       rte_trace_point_emit_int(idx_type);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_sym_get_private_session_size,
> +       RTE_TRACE_POINT_ARGS(uint8_t dev_id, uint32_t priv_sess_size),
> +       rte_trace_point_emit_u8(dev_id);
> +       rte_trace_point_emit_u32(priv_sess_size);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_asym_capability_get,
> +       RTE_TRACE_POINT_ARGS(const char *driver_name, uint8_t driver_id,
> +               int idx_type),
> +       rte_trace_point_emit_string(driver_name);
> +       rte_trace_point_emit_u8(driver_id);
> +       rte_trace_point_emit_int(idx_type);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_asym_get_private_session_size,
> +       RTE_TRACE_POINT_ARGS(uint8_t dev_id, uint32_t priv_sess_size),
> +       rte_trace_point_emit_u8(dev_id);
> +       rte_trace_point_emit_u32(priv_sess_size);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_asym_get_xform_enum,
> +       RTE_TRACE_POINT_ARGS(const char *xform_string),
> +       rte_trace_point_emit_string(xform_string);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_asym_xform_capability_check_modlen,
> +       RTE_TRACE_POINT_ARGS(const void *capability, uint16_t modlen),
> +       rte_trace_point_emit_ptr(capability);
> +       rte_trace_point_emit_u16(modlen);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_sym_cpu_crypto_process,
> +       RTE_TRACE_POINT_ARGS(uint8_t dev_id, const void *sess),
> +       rte_trace_point_emit_u8(dev_id);
> +       rte_trace_point_emit_ptr(sess);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_sym_get_existing_header_session_size,
> +       RTE_TRACE_POINT_ARGS(struct rte_cryptodev_sym_session *sess),
> +       rte_trace_point_emit_ptr(sess);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_sym_session_get_user_data,
> +       RTE_TRACE_POINT_ARGS(const void *sess),
> +       rte_trace_point_emit_ptr(sess);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_sym_session_set_user_data,
> +       RTE_TRACE_POINT_ARGS(const void *sess, const void *data, uint16_t size),
> +       rte_trace_point_emit_ptr(sess);
> +       rte_trace_point_emit_ptr(data);
> +       rte_trace_point_emit_u16(size);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_get_qp_status,
> +       RTE_TRACE_POINT_ARGS(uint8_t dev_id, uint16_t queue_pair_id),
> +       rte_trace_point_emit_u8(dev_id);
> +       rte_trace_point_emit_u16(queue_pair_id);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_configure_raw_dp_ctx,
> +       RTE_TRACE_POINT_ARGS(uint8_t dev_id, uint16_t qp_id, int sess_type),
> +       rte_trace_point_emit_u8(dev_id);
> +       rte_trace_point_emit_u16(qp_id);
> +       rte_trace_point_emit_int(sess_type);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_get_raw_dp_ctx_size,
> +       RTE_TRACE_POINT_ARGS(uint8_t dev_id),
> +       rte_trace_point_emit_u8(dev_id);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_add_deq_callback,
> +       RTE_TRACE_POINT_ARGS(uint8_t dev_id, uint16_t qp_id, const void *cb_fn),
> +       rte_trace_point_emit_u8(dev_id);
> +       rte_trace_point_emit_u16(qp_id);
> +       rte_trace_point_emit_ptr(cb_fn);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_add_enq_callback,
> +       RTE_TRACE_POINT_ARGS(uint8_t dev_id, uint16_t qp_id, const void *cb_fn),
> +       rte_trace_point_emit_u8(dev_id);
> +       rte_trace_point_emit_u16(qp_id);
> +       rte_trace_point_emit_ptr(cb_fn);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_remove_deq_callback,
> +       RTE_TRACE_POINT_ARGS(uint8_t dev_id, uint16_t qp_id, const void *fn),
> +       rte_trace_point_emit_u8(dev_id);
> +       rte_trace_point_emit_u16(qp_id);
> +       rte_trace_point_emit_ptr(fn);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_remove_enq_callback,
> +       RTE_TRACE_POINT_ARGS(uint8_t dev_id, uint16_t qp_id, const void *fn),
> +       rte_trace_point_emit_u8(dev_id);
> +       rte_trace_point_emit_u16(qp_id);
> +       rte_trace_point_emit_ptr(fn);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_asym_session_get_user_data,
> +       RTE_TRACE_POINT_ARGS(const void *sess),
> +       rte_trace_point_emit_ptr(sess);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_asym_session_set_user_data,
> +       RTE_TRACE_POINT_ARGS(const void *sess, const void *data, uint16_t size),
> +       rte_trace_point_emit_ptr(sess);
> +       rte_trace_point_emit_ptr(data);
> +       rte_trace_point_emit_u16(size);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_session_event_mdata_set,
> +       RTE_TRACE_POINT_ARGS(uint8_t dev_id, const void *sess, int op_type,
> +               int sess_type, const void *ev_mdata, uint16_t size),
> +       rte_trace_point_emit_u8(dev_id);
> +       rte_trace_point_emit_ptr(sess);
> +       rte_trace_point_emit_int(op_type);
> +       rte_trace_point_emit_int(sess_type);
> +       rte_trace_point_emit_ptr(ev_mdata);
> +       rte_trace_point_emit_u16(size);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_allocate_driver,
> +       RTE_TRACE_POINT_ARGS(const char *name),
> +       rte_trace_point_emit_string(name);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_pmd_allocate,
> +       RTE_TRACE_POINT_ARGS(const struct rte_cryptodev *cryptodev),
> +       rte_trace_point_emit_ptr(cryptodev);
> +       rte_trace_point_emit_string(cryptodev->data->name);
> +       rte_trace_point_emit_u8(cryptodev->data->socket_id);
> +       rte_trace_point_emit_u8(cryptodev->data->dev_id);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_pmd_callback_process,
> +       RTE_TRACE_POINT_ARGS(struct rte_cryptodev *dev,
> +               enum rte_cryptodev_event_type event),
> +       rte_trace_point_emit_ptr(dev);
> +       rte_trace_point_emit_string(dev->data->name);
> +       rte_trace_point_emit_u8(dev->data->socket_id);
> +       rte_trace_point_emit_u8(dev->data->dev_id);
> +       rte_trace_point_emit_int(event);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_pmd_create,
> +       RTE_TRACE_POINT_ARGS(const char *name, int socket_id,
> +               const void *cryptodev),
> +       rte_trace_point_emit_string(name);
> +       rte_trace_point_emit_int(socket_id);
> +       rte_trace_point_emit_ptr(cryptodev);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_pmd_create_dev_name,
> +       RTE_TRACE_POINT_ARGS(const char *dev_name_prefix),
> +       rte_trace_point_emit_string(dev_name_prefix);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_pmd_destroy,
> +       RTE_TRACE_POINT_ARGS(const struct rte_cryptodev *cryptodev),
> +       rte_trace_point_emit_ptr(cryptodev);
> +       rte_trace_point_emit_string(cryptodev->data->name);
> +       rte_trace_point_emit_u8(cryptodev->data->socket_id);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_pmd_get_dev,
> +       RTE_TRACE_POINT_ARGS(uint8_t dev_id),
> +       rte_trace_point_emit_u8(dev_id);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_pmd_get_named_dev,
> +       RTE_TRACE_POINT_ARGS(const char *name),
> +       rte_trace_point_emit_string(name);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_pmd_parse_input_args,
> +       RTE_TRACE_POINT_ARGS(char *name, int socket_id,
> +               uint32_t max_nb_queue_pairs),
> +       rte_trace_point_emit_string(name);
> +       rte_trace_point_emit_int(socket_id);
> +       rte_trace_point_emit_u32(max_nb_queue_pairs);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_pmd_probing_finish,
> +       RTE_TRACE_POINT_ARGS(const struct rte_cryptodev *cryptodev),
> +       rte_trace_point_emit_ptr(cryptodev);
> +       rte_trace_point_emit_string(cryptodev->data->name);
> +       rte_trace_point_emit_u8(cryptodev->data->socket_id);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_pmd_release_device,
> +       RTE_TRACE_POINT_ARGS(const struct rte_cryptodev *cryptodev),
> +       rte_trace_point_emit_ptr(cryptodev);
> +       rte_trace_point_emit_string(cryptodev->data->name);
> +       rte_trace_point_emit_u8(cryptodev->data->socket_id);
> +       rte_trace_point_emit_u8(cryptodev->data->dev_id);
> +)
> +
> +RTE_TRACE_POINT(
> +       rte_cryptodev_trace_op_pool_create,
> +       RTE_TRACE_POINT_ARGS(const char *name, int socket_id, int type,
> +               uint32_t nb_elts, const void *mp),
> +       rte_trace_point_emit_string(name);
> +       rte_trace_point_emit_int(socket_id);
> +       rte_trace_point_emit_int(type);
> +       rte_trace_point_emit_u32(nb_elts);
> +       rte_trace_point_emit_ptr(mp);
> +)
> +
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/lib/cryptodev/rte_cryptodev_trace_fp.h b/lib/cryptodev/rte_cryptodev_trace_fp.h
> index 9218997c14..03f4503d34 100644
> --- a/lib/cryptodev/rte_cryptodev_trace_fp.h
> +++ b/lib/cryptodev/rte_cryptodev_trace_fp.h
> @@ -31,6 +31,12 @@ RTE_TRACE_POINT_FP(
>         rte_trace_point_emit_u16(nb_ops);
>  )
>
> +RTE_TRACE_POINT_FP(
> +       rte_cryptodev_trace_session_event_mdata_get,
> +       RTE_TRACE_POINT_ARGS(uint8_t type),
> +       rte_trace_point_emit_u8(type);
> +)
> +
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/lib/cryptodev/version.map b/lib/cryptodev/version.map
> index 5aee87c6f7..a788185229 100644
> --- a/lib/cryptodev/version.map
> +++ b/lib/cryptodev/version.map
> @@ -109,6 +109,63 @@ EXPERIMENTAL {
>         #added in 22.07
>         rte_cryptodev_session_event_mdata_set;
>         rte_crypto_asym_ke_strings;
> +
> +       #added in 22.11
> +       __rte_cryptodev_trace_add_deq_callback;
> +       __rte_cryptodev_trace_add_enq_callback;
> +       __rte_cryptodev_trace_allocate_driver;
> +       __rte_cryptodev_trace_asym_capability_get;
> +       __rte_cryptodev_trace_asym_get_private_session_size;
> +       __rte_cryptodev_trace_asym_get_xform_enum;
> +       __rte_cryptodev_trace_asym_session_get_user_data;
> +       __rte_cryptodev_trace_asym_session_set_user_data;
> +       __rte_cryptodev_trace_asym_xform_capability_check_modlen;
> +       __rte_cryptodev_trace_callback_register;
> +       __rte_cryptodev_trace_callback_unregister;
> +       __rte_cryptodev_trace_configure_raw_dp_ctx;
> +       __rte_cryptodev_trace_device_count_by_driver;
> +       __rte_cryptodev_trace_devices_get;
> +       __rte_cryptodev_trace_driver_id_get;
> +       __rte_cryptodev_trace_driver_name_get;
> +       __rte_cryptodev_trace_get_aead_algo_enum;
> +       __rte_cryptodev_trace_get_auth_algo_enum;
> +       __rte_cryptodev_trace_get_cipher_algo_enum;
> +       __rte_cryptodev_trace_get_dev_id;
> +       __rte_cryptodev_trace_get_feature_name;
> +       __rte_cryptodev_trace_get_qp_status;
> +       __rte_cryptodev_trace_get_raw_dp_ctx_size;
> +       __rte_cryptodev_trace_get_sec_ctx;
> +       __rte_cryptodev_trace_info_get;
> +       __rte_cryptodev_trace_is_valid_dev;
> +       __rte_cryptodev_trace_name_get;
> +       __rte_cryptodev_trace_op_pool_create;
> +       __rte_cryptodev_trace_pmd_allocate;
> +       __rte_cryptodev_trace_pmd_callback_process;
> +       __rte_cryptodev_trace_pmd_create;
> +       __rte_cryptodev_trace_pmd_create_dev_name;
> +       __rte_cryptodev_trace_pmd_destroy;
> +       __rte_cryptodev_trace_pmd_get_dev;
> +       __rte_cryptodev_trace_pmd_get_named_dev;
> +       __rte_cryptodev_trace_pmd_parse_input_args;
> +       __rte_cryptodev_trace_pmd_probing_finish;
> +       __rte_cryptodev_trace_pmd_release_device;
> +       __rte_cryptodev_trace_queue_pair_count;
> +       __rte_cryptodev_trace_remove_deq_callback;
> +       __rte_cryptodev_trace_remove_enq_callback;
> +       __rte_cryptodev_trace_session_event_mdata_get;
> +       __rte_cryptodev_trace_session_event_mdata_set;
> +       __rte_cryptodev_trace_socket_id;
> +       __rte_cryptodev_trace_stats_get;
> +       __rte_cryptodev_trace_stats_reset;
> +       __rte_cryptodev_trace_sym_capability_check_aead;
> +       __rte_cryptodev_trace_sym_capability_check_auth;
> +       __rte_cryptodev_trace_sym_capability_check_cipher;
> +       __rte_cryptodev_trace_sym_capability_get;
> +       __rte_cryptodev_trace_sym_cpu_crypto_process;
> +       __rte_cryptodev_trace_sym_get_existing_header_session_size;
> +       __rte_cryptodev_trace_sym_get_private_session_size;
> +       __rte_cryptodev_trace_sym_session_get_user_data;
> +       __rte_cryptodev_trace_sym_session_set_user_data;
>  };
>
>  INTERNAL {
> --
> 2.25.1
>

  parent reply	other threads:[~2022-09-28  4:08 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-16 17:32 [PATCH] cryptodev: add trace points Amit Prakash Shukla
2022-09-27  8:06 ` Akhil Goyal
2022-09-27 13:48   ` Amit Prakash Shukla
2022-09-28  4:08 ` Jerin Jacob [this message]
2022-09-28 17:30   ` [EXT] " Amit Prakash Shukla
2022-09-29 12:35 ` [PATCH v2] " Amit Prakash Shukla
2022-09-30  7:34   ` Jerin Jacob
2022-09-30 18:22     ` [EXT] " Akhil Goyal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CALBAE1P+Ekj2Qi9MEDEbKjMRTDBw7EM=gbhVxP9=YZwzRUv5KA@mail.gmail.com' \
    --to=jerinjacobk@gmail.com \
    --cc=amitprakashs@marvell.com \
    --cc=dev@dpdk.org \
    --cc=gakhil@marvell.com \
    --cc=jerinj@marvell.com \
    --cc=mdr@ashroe.eu \
    --cc=roy.fan.zhang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.