From: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
To: <dev@dpdk.org>
Cc: <jerinj@marvell.com>, <anoobj@marvell.com>,
<adwivedi@marvell.com>, <ktejasree@marvell.com>,
Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
Subject: [dpdk-dev] [v4] crypto/cnxk: add telemetry endpoints to cryptodev
Date: Wed, 29 Sep 2021 14:26:27 +0530 [thread overview]
Message-ID: <4a36d1c6749d30cdea0716bdee3c693d798e7224.1632905630.git.gmuthukrishn@marvell.com> (raw)
In-Reply-To: <938c8ce71d77f59a251f29ff750dc491f8178488.1632897177.git.gmuthukrishn@marvell.com>
Add telemetry endpoints to cryptodev.
Signed-off-by: Gowrishankar Muthukrishnan <gmuthukrishn@marvell.com>
---
Depends-on: patch-19252 ("cryptodev: add telemetry endpoint for cryptodev info")
Depends-on: series-19253 ("cnxk: enable telemetry endpoints")
v4:
- fix compilation issue.
---
.../crypto/cnxk/cnxk_cryptodev_telemetry.c | 119 ++++++++++++++++++
drivers/crypto/cnxk/meson.build | 1 +
2 files changed, 120 insertions(+)
create mode 100644 drivers/crypto/cnxk/cnxk_cryptodev_telemetry.c
diff --git a/drivers/crypto/cnxk/cnxk_cryptodev_telemetry.c b/drivers/crypto/cnxk/cnxk_cryptodev_telemetry.c
new file mode 100644
index 0000000000..a9df7e49c3
--- /dev/null
+++ b/drivers/crypto/cnxk/cnxk_cryptodev_telemetry.c
@@ -0,0 +1,119 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2021 Marvell.
+ */
+
+#include <rte_cryptodev.h>
+#include <rte_telemetry.h>
+#include <cryptodev_pmd.h>
+
+#include <cnxk_telemetry.h>
+#include <roc_api.h>
+
+#include "cnxk_cryptodev.h"
+
+#define CRYPTO_CAPS_SZ \
+ (RTE_ALIGN_CEIL(sizeof(struct rte_cryptodev_capabilities), \
+ sizeof(uint64_t)) / \
+ sizeof(uint64_t))
+
+#define SEC_CAPS_SZ \
+ (RTE_ALIGN_CEIL(sizeof(struct rte_security_capability), \
+ sizeof(uint64_t)) / \
+ sizeof(uint64_t))
+
+static int
+crypto_caps_array(struct rte_tel_data *d,
+ struct rte_cryptodev_capabilities *dev_caps,
+ size_t dev_caps_n)
+{
+ union caps_u {
+ struct rte_cryptodev_capabilities dev_caps;
+ uint64_t val[CRYPTO_CAPS_SZ];
+ } caps;
+ unsigned int i, j, n = 0;
+
+ rte_tel_data_start_array(d, RTE_TEL_U64_VAL);
+
+ for (i = 0; i < dev_caps_n; i++) {
+ if (dev_caps[i].op == RTE_CRYPTO_OP_TYPE_UNDEFINED)
+ break;
+
+ memset(&caps, 0, sizeof(caps));
+ rte_memcpy(&caps.dev_caps, &dev_caps[i], sizeof(dev_caps[0]));
+ for (j = 0; j < CRYPTO_CAPS_SZ; j++)
+ rte_tel_data_add_array_u64(d, caps.val[j]);
+ ++n;
+ }
+
+ return n;
+}
+
+static int
+sec_caps_array(struct rte_tel_data *d, struct rte_security_capability *dev_caps,
+ size_t dev_caps_n)
+{
+ union caps_u {
+ struct rte_security_capability dev_caps;
+ uint64_t val[SEC_CAPS_SZ];
+ } caps;
+ unsigned int i, j, n = 0;
+
+ rte_tel_data_start_array(d, RTE_TEL_U64_VAL);
+
+ for (i = 0; i < dev_caps_n; i++) {
+ memset(&caps, 0, sizeof(caps));
+ rte_memcpy(&caps.dev_caps, &dev_caps[i], sizeof(dev_caps[0]));
+ for (j = 0; j < SEC_CAPS_SZ; j++)
+ rte_tel_data_add_array_u64(d, caps.val[j]);
+ ++n;
+ }
+
+ return n;
+}
+
+static int
+cryptodev_tel_handle_info(const char *cmd __rte_unused, const char *params,
+ struct rte_tel_data *d)
+{
+ struct rte_tel_data *sec_crypto_caps, *sec_caps;
+ char name[RTE_CRYPTODEV_NAME_MAX_LEN];
+ int sec_crypto_caps_n, sec_caps_n;
+ struct rte_cryptodev *dev;
+ struct cnxk_cpt_vf *vf;
+
+ if (params == NULL || strlen(params) == 0 || !isdigit(*params))
+ return -EINVAL;
+
+ rte_strlcpy(name, params, RTE_CRYPTODEV_NAME_LEN);
+ dev = rte_cryptodev_pmd_get_named_dev(name);
+ if (!dev) {
+ plt_err("No cryptodev of name %s available", name);
+ return -EINVAL;
+ }
+
+ vf = dev->data->dev_private;
+ rte_tel_data_start_dict(d);
+
+ /* Security Crypto capabilities */
+ sec_crypto_caps = rte_tel_data_alloc();
+ sec_crypto_caps_n = crypto_caps_array(
+ sec_crypto_caps, vf->sec_crypto_caps, CNXK_SEC_CRYPTO_MAX_CAPS);
+ rte_tel_data_add_dict_container(d, "sec_crypto_caps", sec_crypto_caps,
+ 0);
+ rte_tel_data_add_dict_int(d, "sec_crypto_caps_n", sec_crypto_caps_n);
+
+ /* Security capabilities */
+ sec_caps = rte_tel_data_alloc();
+ sec_caps_n = sec_caps_array(sec_caps, vf->sec_caps, CNXK_SEC_MAX_CAPS);
+ rte_tel_data_add_dict_container(d, "sec_caps", sec_caps, 0);
+ rte_tel_data_add_dict_int(d, "sec_caps_n", sec_caps_n);
+
+ return 0;
+}
+
+RTE_INIT(cnxk_cryptodev_init_telemetry)
+{
+ rte_telemetry_register_cmd(
+ "/cnxk/cryptodev/info", cryptodev_tel_handle_info,
+ "Returns cryptodev info. Parameters: pci id");
+}
diff --git a/drivers/crypto/cnxk/meson.build b/drivers/crypto/cnxk/meson.build
index 437d208b5a..4350928289 100644
--- a/drivers/crypto/cnxk/meson.build
+++ b/drivers/crypto/cnxk/meson.build
@@ -19,6 +19,7 @@ sources = files(
'cnxk_cryptodev_capabilities.c',
'cnxk_cryptodev_ops.c',
'cnxk_cryptodev_sec.c',
+ 'cnxk_cryptodev_telemetry.c',
)
deps += ['bus_pci', 'common_cnxk', 'security', 'eventdev']
--
2.25.1
next prev parent reply other threads:[~2021-09-29 8:56 UTC|newest]
Thread overview: 121+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-29 15:25 [dpdk-dev] [v1, 0/3] common/cnxk: enable npa telemetry Gowrishankar Muthukrishnan
2021-07-29 15:25 ` [dpdk-dev] [v1, 1/3] telemetry: enable storing pointer value Gowrishankar Muthukrishnan
2021-07-29 15:48 ` Bruce Richardson
2021-07-30 12:08 ` [dpdk-dev] [EXT] " Gowrishankar Muthukrishnan
2021-08-01 17:40 ` Gowrishankar Muthukrishnan
2021-07-29 15:25 ` [dpdk-dev] [v1, 2/3] test/telemetry: add unit tests for " Gowrishankar Muthukrishnan
2021-07-29 15:25 ` [dpdk-dev] [v1, 3/3] common/cnxk: add telemetry endpoints to npa Gowrishankar Muthukrishnan
2021-08-01 17:37 ` [dpdk-dev] [v2, 0/3] common/cnxk: enable npa telemetry Gowrishankar Muthukrishnan
2021-08-01 17:37 ` [dpdk-dev] [v2, 1/3] telemetry: enable storing pointer value Gowrishankar Muthukrishnan
2021-08-01 17:37 ` [dpdk-dev] [v2, 2/3] test/telemetry: add unit tests for " Gowrishankar Muthukrishnan
2021-08-01 17:37 ` [dpdk-dev] [v2, 3/3] common/cnxk: add telemetry endpoints to npa Gowrishankar Muthukrishnan
2021-08-03 8:05 ` [dpdk-dev] [v3, 0/3] common/cnxk: enable npa telemetry Gowrishankar Muthukrishnan
2021-08-03 8:05 ` [dpdk-dev] [v3, 1/3] telemetry: enable storing pointer value Gowrishankar Muthukrishnan
2021-08-03 8:05 ` [dpdk-dev] [v3, 2/3] test/telemetry: add unit tests for " Gowrishankar Muthukrishnan
2021-08-03 8:05 ` [dpdk-dev] [v3, 3/3] common/cnxk: add telemetry endpoints to npa Gowrishankar Muthukrishnan
2021-08-11 15:59 ` [dpdk-dev] [v3, 0/3] common/cnxk: enable npa telemetry Power, Ciara
2021-08-11 16:18 ` Gowrishankar Muthukrishnan
2021-08-24 8:53 ` Gowrishankar Muthukrishnan
2021-08-25 10:09 ` Thomas Monjalon
2021-08-25 14:38 ` [dpdk-dev] [EXT] " Gowrishankar Muthukrishnan
2021-08-26 17:15 ` [dpdk-dev] [v4, 0/2] cnxk: enable npa and mempool telemetry Gowrishankar Muthukrishnan
2021-08-26 17:15 ` [dpdk-dev] [v4, 1/2] common/cnxk: add telemetry endpoints to npa Gowrishankar Muthukrishnan
2021-08-26 18:06 ` Bruce Richardson
2021-08-27 6:43 ` [dpdk-dev] [EXT] " Gowrishankar Muthukrishnan
2021-08-26 17:15 ` [dpdk-dev] [v4, 2/2] mempool/cnxk: add telemetry end points Gowrishankar Muthukrishnan
2021-08-27 6:41 ` [dpdk-dev] [v5, 0/2] cnxk: enable npa and mempool telemetry Gowrishankar Muthukrishnan
2021-08-27 6:41 ` [dpdk-dev] [v5, 1/2] common/cnxk: add telemetry endpoints to npa Gowrishankar Muthukrishnan
2021-08-27 6:41 ` [dpdk-dev] [v5, 2/2] mempool/cnxk: add telemetry end points Gowrishankar Muthukrishnan
2021-09-04 3:25 ` [dpdk-dev] [v6, 0/4] cnxk: enable telemetry endpoints Gowrishankar Muthukrishnan
2021-09-04 3:25 ` [dpdk-dev] [v6, 1/4] common/cnxk: add telemetry endpoints to npa Gowrishankar Muthukrishnan
2021-09-04 3:25 ` [dpdk-dev] [v6, 2/4] mempool/cnxk: add telemetry end points Gowrishankar Muthukrishnan
2021-09-04 3:25 ` [dpdk-dev] [v6, 3/4] common/cnxk: add telemetry endpoints to nix Gowrishankar Muthukrishnan
2021-09-04 3:25 ` [dpdk-dev] [v6, 4/4] net/cnxk: add telemetry endpoing to ethdev Gowrishankar Muthukrishnan
2021-09-08 17:03 ` [dpdk-dev] [v7, 0/6] cnxk: enable telemetry endpoints Gowrishankar Muthukrishnan
2021-09-08 17:03 ` [dpdk-dev] [v7, 1/6] common/cnxk: add telemetry endpoints to npa Gowrishankar Muthukrishnan
2021-09-08 17:03 ` [dpdk-dev] [v7, 2/6] mempool/cnxk: add telemetry end points Gowrishankar Muthukrishnan
2021-09-08 17:03 ` [dpdk-dev] [v7, 3/6] common/cnxk: add telemetry endpoints to nix Gowrishankar Muthukrishnan
2021-09-08 17:03 ` [dpdk-dev] [v7, 4/6] net/cnxk: add telemetry endpoing to ethdev Gowrishankar Muthukrishnan
2021-09-08 17:03 ` [dpdk-dev] [v7, 5/6] telemetry: fix json output buffer size Gowrishankar Muthukrishnan
2021-09-21 11:02 ` [dpdk-dev] [v2] " Gowrishankar Muthukrishnan
2021-09-22 9:21 ` Power, Ciara
2021-09-23 5:53 ` Gowrishankar Muthukrishnan
2021-09-30 8:47 ` Power, Ciara
2021-09-30 9:00 ` Gowrishankar Muthukrishnan
2021-10-07 9:04 ` Power, Ciara
2021-09-23 6:21 ` [dpdk-dev] [v3] " Gowrishankar Muthukrishnan
2021-09-23 6:26 ` [dpdk-dev] [v4] " Gowrishankar Muthukrishnan
2021-09-29 4:18 ` [dpdk-dev] [v5] " Gowrishankar Muthukrishnan
2021-10-06 17:38 ` Thomas Monjalon
2021-10-07 4:58 ` [dpdk-dev] [EXT] " Gowrishankar Muthukrishnan
2021-10-07 7:22 ` Thomas Monjalon
2021-10-07 8:36 ` Gowrishankar Muthukrishnan
2021-10-11 10:54 ` [dpdk-dev] [v6] telemetry: remove limitation on JSON output buffer length Gowrishankar Muthukrishnan
2021-10-13 11:06 ` Power, Ciara
2021-10-13 15:25 ` Thomas Monjalon
2021-09-08 17:03 ` [dpdk-dev] [v7, 6/6] crypto/cnxk: add telemetry endpoints to cryptodev Gowrishankar Muthukrishnan
2021-09-21 11:32 ` [dpdk-dev] [v2] " Gowrishankar Muthukrishnan
2021-09-29 6:45 ` [dpdk-dev] [v1] cryptodev: add telemetry endpoint for cryptodev info Gowrishankar Muthukrishnan
2021-10-22 12:28 ` [dpdk-dev] [v2] cryptodev: add telemetry endpoint for cryptodev capabilities Gowrishankar Muthukrishnan
2021-10-22 12:37 ` [dpdk-dev] [v5] crypto/cnxk: add telemetry endpoints to cryptodev Gowrishankar Muthukrishnan
2021-10-22 12:59 ` [dpdk-dev] [v6] " Gowrishankar Muthukrishnan
2021-10-22 12:57 ` [dpdk-dev] [v3] cryptodev: add telemetry endpoint for cryptodev capabilities Gowrishankar Muthukrishnan
2021-10-22 16:02 ` [dpdk-dev] [v7] crypto/cnxk: add telemetry endpoints to cryptodev Gowrishankar Muthukrishnan
2021-10-26 13:44 ` [dpdk-dev] [v8] " Gowrishankar Muthukrishnan
2021-10-26 14:10 ` Akhil Goyal
2021-11-03 4:43 ` Gowrishankar Muthukrishnan
2021-10-30 17:41 ` [dpdk-dev] [v9] " Gowrishankar Muthukrishnan
2021-10-30 17:45 ` [dpdk-dev] [v1] security: add telemetry endpoint for cryptodev security capabilities Gowrishankar Muthukrishnan
2021-10-31 5:24 ` [dpdk-dev] [v2] " Gowrishankar Muthukrishnan
2021-11-02 14:42 ` [dpdk-dev] [v3] " Gowrishankar Muthukrishnan
2021-11-02 14:52 ` [dpdk-dev] [v4] " Gowrishankar Muthukrishnan
2021-11-03 19:37 ` Akhil Goyal
2021-11-04 4:29 ` Gowrishankar Muthukrishnan
2021-11-04 5:11 ` [dpdk-dev] [v5] " Gowrishankar Muthukrishnan
2021-11-04 10:50 ` Akhil Goyal
2021-10-25 7:26 ` [dpdk-dev] [v3] cryptodev: add telemetry endpoint for cryptodev capabilities Akhil Goyal
2021-10-26 13:13 ` [dpdk-dev] [v5] " Gowrishankar Muthukrishnan
2021-10-26 14:12 ` Akhil Goyal
2021-10-26 15:44 ` Gowrishankar Muthukrishnan
2021-10-26 18:34 ` Akhil Goyal
2021-10-26 12:52 ` [dpdk-dev] [v4] " Gowrishankar Muthukrishnan
2021-09-29 7:01 ` [dpdk-dev] [v3] crypto/cnxk: add telemetry endpoints to cryptodev Gowrishankar Muthukrishnan
2021-09-29 8:56 ` Gowrishankar Muthukrishnan [this message]
2021-09-16 8:52 ` [dpdk-dev] [v7, 0/6] cnxk: enable telemetry endpoints Jerin Jacob
2021-09-21 10:52 ` [dpdk-dev] [v8, 0/4] cnxk: enable telemetry endpoints for mempool and ethdev Gowrishankar Muthukrishnan
2021-09-21 10:52 ` [dpdk-dev] [v8, 1/4] common/cnxk: add telemetry endpoints to npa Gowrishankar Muthukrishnan
2021-09-21 10:52 ` [dpdk-dev] [v8, 2/4] mempool/cnxk: add telemetry end points Gowrishankar Muthukrishnan
2021-09-29 6:40 ` [dpdk-dev] [v1] mempool: add telemetry endpoint for mempool info Gowrishankar Muthukrishnan
2021-10-13 15:21 ` Thomas Monjalon
2021-10-13 15:26 ` Bruce Richardson
2021-10-13 15:40 ` Bruce Richardson
2021-10-22 3:28 ` [dpdk-dev] [v2] " Gowrishankar Muthukrishnan
2021-10-22 5:55 ` David Marchand
2021-10-22 16:11 ` [dpdk-dev] [v3] " Gowrishankar Muthukrishnan
2021-10-22 20:38 ` Thomas Monjalon
2021-09-21 10:52 ` [dpdk-dev] [v8, 3/4] common/cnxk: add telemetry endpoints to nix Gowrishankar Muthukrishnan
2021-09-21 10:52 ` [dpdk-dev] [v8, 4/4] net/cnxk: add telemetry endpoing to ethdev Gowrishankar Muthukrishnan
2021-09-21 11:27 ` Jerin Jacob
2021-09-21 11:53 ` Bruce Richardson
2021-09-21 12:16 ` Olivier Matz
2021-09-29 4:25 ` [dpdk-dev] [v1] ethdev: add telemetry endpoint for device info Gowrishankar Muthukrishnan
2021-10-11 14:40 ` Ferruh Yigit
2021-10-11 15:40 ` Bruce Richardson
2021-10-11 15:44 ` Ferruh Yigit
2021-10-14 21:47 ` Ferruh Yigit
2021-09-29 6:54 ` [dpdk-dev] [v9 0/4] cnxk: enable telemetry endpoints Gowrishankar Muthukrishnan
2021-09-29 6:55 ` [dpdk-dev] [v9 1/4] common/cnxk: add telemetry endpoints to npa Gowrishankar Muthukrishnan
2021-10-14 15:22 ` [dpdk-dev] [EXT] " Harman Kalra
2021-09-29 6:55 ` [dpdk-dev] [v9 2/4] common/cnxk: add telemetry endpoints to nix Gowrishankar Muthukrishnan
2021-10-14 16:37 ` [dpdk-dev] [EXT] " Harman Kalra
2021-09-29 6:55 ` [dpdk-dev] [v9 3/4] mempool/cnxk: add telemetry endpoints mempool Gowrishankar Muthukrishnan
2021-10-14 16:43 ` [dpdk-dev] [EXT] " Harman Kalra
2021-09-29 6:55 ` [dpdk-dev] [v9 4/4] net/cnxk: add telemetry endpoints to ethdev Gowrishankar Muthukrishnan
2021-10-14 16:47 ` [dpdk-dev] [EXT] " Harman Kalra
2021-10-19 11:27 ` [dpdk-dev] [v10 0/4] cnxk: enable telemetry endpoints Gowrishankar Muthukrishnan
2021-10-19 11:27 ` [dpdk-dev] [v10 1/4] common/cnxk: add telemetry endpoints to npa Gowrishankar Muthukrishnan
2021-10-19 11:27 ` [dpdk-dev] [v10 2/4] common/cnxk: add telemetry endpoints to nix Gowrishankar Muthukrishnan
2021-10-19 11:27 ` [dpdk-dev] [v10 3/4] mempool/cnxk: add telemetry endpoints mempool Gowrishankar Muthukrishnan
2021-10-19 11:27 ` [dpdk-dev] [v10 4/4] net/cnxk: add telemetry endpoints to ethdev Gowrishankar Muthukrishnan
2021-10-19 16:42 ` [dpdk-dev] [v9 0/4] cnxk: enable telemetry endpoints Jerin Jacob
2021-10-20 13:30 ` Ferruh Yigit
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=4a36d1c6749d30cdea0716bdee3c693d798e7224.1632905630.git.gmuthukrishn@marvell.com \
--to=gmuthukrishn@marvell.com \
--cc=adwivedi@marvell.com \
--cc=anoobj@marvell.com \
--cc=dev@dpdk.org \
--cc=jerinj@marvell.com \
--cc=ktejasree@marvell.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).