From: Matan Azrad <matan@nvidia.com> To: dev@dpdk.org Cc: Thomas Monjalon <thomas@monjalon.net>, Ashish Gupta <ashish.gupta@marvell.com>, Fiona Trahe <fiona.trahe@intel.com>, akhil.goyal@nxp.com Subject: [dpdk-dev] [PATCH v2 10/10] compress/mlx5: add the supported capabilities Date: Wed, 13 Jan 2021 16:18:10 +0000 Message-ID: <1610554690-411627-11-git-send-email-matan@nvidia.com> (raw) In-Reply-To: <1610554690-411627-1-git-send-email-matan@nvidia.com> Add all the capabilities supported by the device. Add the driver documentations. Signed-off-by: Matan Azrad <matan@nvidia.com> --- doc/guides/compressdevs/features/mlx5.ini | 13 +++++ doc/guides/compressdevs/index.rst | 1 + doc/guides/compressdevs/mlx5.rst | 84 +++++++++++++++++++++++++++++++ doc/guides/rel_notes/release_21_02.rst | 6 +++ drivers/compress/mlx5/mlx5_compress.c | 24 ++++++++- 5 files changed, 126 insertions(+), 2 deletions(-) create mode 100644 doc/guides/compressdevs/features/mlx5.ini create mode 100644 doc/guides/compressdevs/mlx5.rst diff --git a/doc/guides/compressdevs/features/mlx5.ini b/doc/guides/compressdevs/features/mlx5.ini new file mode 100644 index 0000000..891ce47 --- /dev/null +++ b/doc/guides/compressdevs/features/mlx5.ini @@ -0,0 +1,13 @@ +; +; Refer to default.ini for the full list of available PMD features. +; +; Supported features of 'MLX5' compression driver. +; +[Features] +HW Accelerated = Y +Deflate = Y +Adler32 = Y +Crc32 = Y +Adler32&Crc32 = Y +Fixed = Y +Dynamic = Y diff --git a/doc/guides/compressdevs/index.rst b/doc/guides/compressdevs/index.rst index 1f37e26..8f9f3a5 100644 --- a/doc/guides/compressdevs/index.rst +++ b/doc/guides/compressdevs/index.rst @@ -14,3 +14,4 @@ Compression Device Drivers octeontx qat_comp zlib + mlx5 diff --git a/doc/guides/compressdevs/mlx5.rst b/doc/guides/compressdevs/mlx5.rst new file mode 100644 index 0000000..4ee26b0 --- /dev/null +++ b/doc/guides/compressdevs/mlx5.rst @@ -0,0 +1,84 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright 2021 Mellanox Technologies, Ltd + +.. include:: <isonum.txt> + +MLX5 compress driver +==================== + +The MLX5 compress driver library +(**librte_compress_mlx5**) provides support for **Mellanox BlueField 2** +families of 25/50/100/200 Gb/s adapters. + +Design +------ + +This PMD is configuring the compress, decompress amd DMA engines. + +For security reasons and robustness, this driver only deals with virtual +memory addresses. The way resources allocations are handled by the kernel, +combined with hardware specifications that allow to handle virtual memory +addresses directly, ensure that DPDK applications cannot access random +physical memory (or memory that does not belong to the current process). + +The PMD uses libibverbs and libmlx5 to access the device firmware +or directly the hardware components. +There are different levels of objects and bypassing abilities +to get the best performances: + +- Verbs is a complete high-level generic API. +- Direct Verbs is a device-specific API. +- DevX allows to access firmware objects. + +Enabling librte_compress_mlx5 causes DPDK applications to be linked against +libibverbs. + +Mellanox mlx5 pci device can be probed by number of different pci devices, +for example net / vDPA / compress. To select the compress PMD ``class=compress`` +should be specified as device parameter. The compress device can be probed and +used with other Mellanox classes, by adding more options in the class. +For example: ``class=net:compress`` will probe both the net PMD and the compress +PMD. + +Features +-------- + +Compress mlx5 PMD has support for: + +Compression/Decompression algorithm: + +* DEFLATE. + +NULL algorithm for DMA operations. + +Huffman code type: + +* FIXED. +* DYNAMIC. + +Window size support: + +1KB, 2KB, 4KB, 8KB, 16KB and 32KB. + +Sharable transformation. + +Checksum generation: + +* CRC32, Adler32 and combined checksum. + +Limitations +----------- + +* Scatter-Gather, SHA and Stateful are not supported. +* Non-compressed block is not supported in compress (supported in decompress). + +Supported NICs +-------------- + +* Mellanox\ |reg| BlueField 2 SmartNIC + +Prerequisites +------------- + +- Mellanox OFED version: **5.2** + see :doc:`../../nics/mlx5` guide for more Mellanox OFED details. \ No newline at end of file diff --git a/doc/guides/rel_notes/release_21_02.rst b/doc/guides/rel_notes/release_21_02.rst index 706cbf8..f672d7f 100644 --- a/doc/guides/rel_notes/release_21_02.rst +++ b/doc/guides/rel_notes/release_21_02.rst @@ -51,6 +51,12 @@ New Features * Other libs * Apps, Examples, Tools (if significant) +* **Added mlx5 compress PMD.** + + Added a new compress PMD driver for Bluefield 2 adapters. + + See the :doc:`../compressdevs/mlx5` for more details. + This section is a comment. Do not overwrite or remove it. Also, make sure to start the actual text at the margin. ======================================================= diff --git a/drivers/compress/mlx5/mlx5_compress.c b/drivers/compress/mlx5/mlx5_compress.c index d768453..7384351 100644 --- a/drivers/compress/mlx5/mlx5_compress.c +++ b/drivers/compress/mlx5/mlx5_compress.c @@ -74,8 +74,28 @@ struct mlx5_compress_qp { int mlx5_compress_logtype; -const struct rte_compressdev_capabilities mlx5_caps[RTE_COMP_ALGO_LIST_END]; - +static const struct rte_compressdev_capabilities mlx5_caps[] = { + { + .algo = RTE_COMP_ALGO_NULL, + .comp_feature_flags = RTE_COMP_FF_ADLER32_CHECKSUM | + RTE_COMP_FF_CRC32_CHECKSUM | + RTE_COMP_FF_CRC32_ADLER32_CHECKSUM | + RTE_COMP_FF_SHAREABLE_PRIV_XFORM, + }, + { + .algo = RTE_COMP_ALGO_DEFLATE, + .comp_feature_flags = RTE_COMP_FF_ADLER32_CHECKSUM | + RTE_COMP_FF_CRC32_CHECKSUM | + RTE_COMP_FF_CRC32_ADLER32_CHECKSUM | + RTE_COMP_FF_SHAREABLE_PRIV_XFORM | + RTE_COMP_FF_HUFFMAN_FIXED | + RTE_COMP_FF_HUFFMAN_DYNAMIC, + .window_size = {.min = 10, .max = 15, .increment = 1}, + }, + { + .algo = RTE_COMP_ALGO_LIST_END, + } +}; static void mlx5_compress_dev_info_get(struct rte_compressdev *dev, -- 1.8.3.1
next prev parent reply other threads:[~2021-01-13 16:20 UTC|newest] Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-01-11 13:59 [dpdk-dev] [PATCH 00/10] add mlx5 compress PMD Matan Azrad 2021-01-11 13:59 ` [dpdk-dev] [PATCH 01/10] common/mlx5: add DevX attributes for compress Matan Azrad 2021-01-11 13:59 ` [dpdk-dev] [PATCH 02/10] drivers: introduce mlx5 compress PMD Matan Azrad 2021-01-11 13:59 ` [dpdk-dev] [PATCH 03/10] compress/mlx5: support basic control operations Matan Azrad 2021-01-11 13:59 ` [dpdk-dev] [PATCH 04/10] common/mlx5: add compress primitives Matan Azrad 2021-01-11 13:59 ` [dpdk-dev] [PATCH 05/10] compress/mlx5: support queue pair operations Matan Azrad 2021-01-11 13:59 ` [dpdk-dev] [PATCH 06/10] compress/mlx5: add transformation operations Matan Azrad 2021-01-11 13:59 ` [dpdk-dev] [PATCH 07/10] compress/mlx5: add memory region management Matan Azrad 2021-01-11 13:59 ` [dpdk-dev] [PATCH 08/10] compress/mlx5: add data-path functions Matan Azrad 2021-01-11 13:59 ` [dpdk-dev] [PATCH 09/10] compress/mlx5: add statistics operations Matan Azrad 2021-01-11 13:59 ` [dpdk-dev] [PATCH 10/10] compress/mlx5: add the supported capabilities Matan Azrad 2021-01-12 13:08 ` [dpdk-dev] [PATCH 00/10] add mlx5 compress PMD Asaf Penso 2021-01-13 16:18 ` [dpdk-dev] [PATCH v2 " Matan Azrad 2021-01-13 16:18 ` [dpdk-dev] [PATCH v2 01/10] common/mlx5: add DevX attributes for compress Matan Azrad 2021-01-18 15:08 ` Slava Ovsiienko 2021-01-13 16:18 ` [dpdk-dev] [PATCH v2 02/10] drivers: introduce mlx5 compress PMD Matan Azrad 2021-01-13 16:18 ` [dpdk-dev] [PATCH v2 03/10] compress/mlx5: support basic control operations Matan Azrad 2021-01-13 16:18 ` [dpdk-dev] [PATCH v2 04/10] common/mlx5: add compress primitives Matan Azrad 2021-01-13 16:18 ` [dpdk-dev] [PATCH v2 05/10] compress/mlx5: support queue pair operations Matan Azrad 2021-01-13 16:18 ` [dpdk-dev] [PATCH v2 06/10] compress/mlx5: add transformation operations Matan Azrad 2021-01-13 16:18 ` [dpdk-dev] [PATCH v2 07/10] compress/mlx5: add memory region management Matan Azrad 2021-01-13 16:18 ` [dpdk-dev] [PATCH v2 08/10] compress/mlx5: add data-path functions Matan Azrad 2021-01-13 16:18 ` [dpdk-dev] [PATCH v2 09/10] compress/mlx5: add statistics operations Matan Azrad 2021-01-13 16:18 ` Matan Azrad [this message] 2021-01-19 17:54 ` [dpdk-dev] [PATCH v2 10/10] compress/mlx5: add the supported capabilities Akhil Goyal 2021-01-20 7:19 ` Matan Azrad 2021-01-20 11:29 ` [dpdk-dev] [PATCH v3 00/11] add mlx5 compress PMD Matan Azrad 2021-01-20 11:29 ` [dpdk-dev] [PATCH v3 01/11] common/mlx5: add DevX attributes for compress Matan Azrad 2021-01-21 16:52 ` Tal Shnaiderman 2021-01-21 17:10 ` Matan Azrad 2021-01-20 11:29 ` [dpdk-dev] [PATCH v3 02/11] drivers: introduce mlx5 compress PMD Matan Azrad 2021-01-20 11:29 ` [dpdk-dev] [PATCH v3 03/11] compress/mlx5: support basic control operations Matan Azrad 2021-01-20 11:29 ` [dpdk-dev] [PATCH v3 04/11] common/mlx5: add compress primitives Matan Azrad 2021-01-20 11:29 ` [dpdk-dev] [PATCH v3 05/11] compress/mlx5: support queue pair operations Matan Azrad 2021-01-20 11:29 ` [dpdk-dev] [PATCH v3 06/11] compress/mlx5: add transformation operations Matan Azrad 2021-01-20 11:29 ` [dpdk-dev] [PATCH v3 07/11] compress/mlx5: add memory region management Matan Azrad 2021-01-20 11:29 ` [dpdk-dev] [PATCH v3 08/11] compress/mlx5: add data-path functions Matan Azrad 2021-01-20 11:29 ` [dpdk-dev] [PATCH v3 09/11] compress/mlx5: add statistics operations Matan Azrad 2021-01-20 11:29 ` [dpdk-dev] [PATCH v3 10/11] compress/mlx5: support 32-bit systems Matan Azrad 2021-01-20 11:29 ` [dpdk-dev] [PATCH v3 11/11] compress/mlx5: add the supported capabilities Matan Azrad 2021-01-27 19:38 ` [dpdk-dev] [PATCH v3 00/11] add mlx5 compress PMD 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=1610554690-411627-11-git-send-email-matan@nvidia.com \ --to=matan@nvidia.com \ --cc=akhil.goyal@nxp.com \ --cc=ashish.gupta@marvell.com \ --cc=dev@dpdk.org \ --cc=fiona.trahe@intel.com \ --cc=thomas@monjalon.net \ /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
DPDK patches and discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://inbox.dpdk.org/dev/0 dev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 dev dev/ http://inbox.dpdk.org/dev \ dev@dpdk.org public-inbox-index dev Example config snippet for mirrors. Newsgroup available over NNTP: nntp://inbox.dpdk.org/inbox.dpdk.dev AGPL code for this site: git clone https://public-inbox.org/public-inbox.git