diff options
author | Piotr Bronowski <piotrx.bronowski@intel.com> | 2023-06-09 14:22:40 +0000 |
---|---|---|
committer | Damjan Marion <dmarion@0xa5.net> | 2023-06-13 12:08:54 +0000 |
commit | d53a95ceadd481401f3ae4c3279636c3e5050999 (patch) | |
tree | 3c800fd92981ff90ab43675c434d6ada2d2752c0 /src/plugins/dpdk/cryptodev/cryptodev.c | |
parent | 84fb83def4e1b219af7bea33610a53473c7a2f19 (diff) |
dpdk-cryptodev: introduce sw_ring
This patch introduces sw_ring. This ring is used in next set of patchas
and plays role of a buffer for QAT, allowing collecting frame elements
in case QAT queue is fully utilized, and assembling frame
from QAT dequeued elements.
Type: improvement
Signed-off-by: Piotr Bronowski <piotrx.bronowski@intel.com>
Signed-off-by: Dastin Wilski <dastin.wilski@gmail.com>
Change-Id: I20718e200986ab4dba5cbc31c05a904072a6981a
Diffstat (limited to 'src/plugins/dpdk/cryptodev/cryptodev.c')
-rw-r--r-- | src/plugins/dpdk/cryptodev/cryptodev.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/plugins/dpdk/cryptodev/cryptodev.c b/src/plugins/dpdk/cryptodev/cryptodev.c index 84a307d02ce..8750ffd3c31 100644 --- a/src/plugins/dpdk/cryptodev/cryptodev.c +++ b/src/plugins/dpdk/cryptodev/cryptodev.c @@ -667,6 +667,40 @@ VLIB_CLI_COMMAND (show_cryptodev_assignment, static) = { }; static clib_error_t * +cryptodev_show_sw_rings_fn (vlib_main_t *vm, unformat_input_t *input, + vlib_cli_command_t *cmd) +{ + cryptodev_main_t *cmt = &cryptodev_main; + u32 thread_index = 0; + vec_foreach_index (thread_index, cmt->per_thread_data) + { + cryptodev_engine_thread_t *cet = cmt->per_thread_data + thread_index; + if (vlib_num_workers () > 0 && thread_index == 0) + continue; + vlib_cli_output (vm, "\n\n"); + vlib_cli_output (vm, "Frames total: %d", cet->frames_on_ring); + vlib_cli_output (vm, "Frames pending in a ring: %d", + cet->frames_on_ring - cet->enqueued_not_dequeueq - + cet->deqeued_not_returned); + vlib_cli_output (vm, "Frames enqueued but not dequeued: %d", + cet->enqueued_not_dequeueq); + vlib_cli_output (vm, "Frames dequed but not returned: %d", + cet->deqeued_not_returned); + vlib_cli_output (vm, "inflight: %d", cet->inflight); + vlib_cli_output (vm, "Head: %d", cet->frame_ring.head); + vlib_cli_output (vm, "Tail: %d", cet->frame_ring.tail); + vlib_cli_output (vm, "\n\n"); + } + return 0; +} + +VLIB_CLI_COMMAND (show_cryptodev_sw_rings, static) = { + .path = "show cryptodev sw-ring status", + .short_help = "show status of all cryptodev software rings", + .function = cryptodev_show_sw_rings_fn, +}; + +static clib_error_t * cryptodev_set_assignment_fn (vlib_main_t * vm, unformat_input_t * input, vlib_cli_command_t * cmd) { |