[v7,00/16] compress/qat: add compression PMD
mbox series

Message ID 20180713022825.33106-1-pablo.de.lara.guarch@intel.com
Headers show
Series
  • compress/qat: add compression PMD
Related show

Message

De Lara Guarch, Pablo July 13, 2018, 2:28 a.m. UTC
Create compression PMD for Intel QuickAssist devices Currently only the C62x and c3xxx devices are supported.

The qat comp PMD supports
 - stateless compression and
   decompression using the Deflate algorithm with Fixed Huffman
   encoding. Dynamic huffman encoding is not supported, it
   will be added in a later patch.
 - checksum generation: Adler32, CRC32 and combined.

The compression service is hosted on a QuickAssist VF PCI device, which is managed by code in the drivers/common/qat directory.

v7 changes:
 - modified makefile to avoid compiling the PMD when no services are
   available (like in v5), but solving the build issue when libcrypto is
   not present
 - fixed meson build when libcrypto is not present
 - removed unnecessary unsupported feature list from .ini files
 - removed leftover Gerrit-Id tag
 - modified commit tile to have uppercase FW

v6 changes:
 - fixed makefile issue when cross compiling

v5 changes:
 - rebased against latest r/n and features/default.ini
 - fixed common/qat/Makefile so no build output files
   left hanging around in compress/qat src dir.

v4 changes:
 - corrected capabilities

v3 changes:
 - only commit message changes, i.e. removed ChangeId and fixed typos


v2 changes:
- Added check for correct firmware
- Split patchset
- Added documentation
- removed support for scatter-gather-lists and related config flag
- Removed support for Dynamic huffman encoding and related IM buffer config flag
- Removed support for DH895xcc device


*** BLURB HERE ***

Fiona Trahe (16):
  common/qat: updated firmware headers
  compress/qat: add makefiles for PMD
  compress/qat: add meson build
  compress/qat: add xform processing
  compress/qat: create FW request and process response
  compress/qat: check that correct firmware is in use
  compress/qat: add stats functions
  compress/qat: setup queue-pairs for compression service
  compress/qat: add fns to configure and clear device
  compress/qat: add fn to return device info
  compress/qat: add enqueue/dequeue functions
  compress/qat: add device start and stop fns
  compress/qat: create and populate the ops structure
  compress/qat: add fns to create and destroy the PMD
  compress/qat: prevent device usage if incorrect firmware
  doc/qat: refactor docs adding compression guide

 MAINTAINERS                                  |   4 +
 config/common_base                           |   5 +-
 doc/guides/compressdevs/features/qat.ini     |  12 +
 doc/guides/compressdevs/index.rst            |   1 +
 doc/guides/compressdevs/qat_comp.rst         |  49 +++
 doc/guides/cryptodevs/qat.rst                | 183 ++++++----
 doc/guides/rel_notes/release_18_08.rst       |   5 +
 drivers/common/qat/Makefile                  |  60 ++--
 drivers/common/qat/qat_adf/icp_qat_fw.h      |  69 +++-
 drivers/common/qat/qat_adf/icp_qat_fw_comp.h | 482 +++++++++++++++++++++++++++
 drivers/common/qat/qat_adf/icp_qat_hw.h      | 130 +++++++-
 drivers/common/qat/qat_device.h              |   4 +
 drivers/common/qat/qat_qp.c                  |  11 +-
 drivers/common/qat/qat_qp.h                  |   5 +
 drivers/compress/meson.build                 |   2 +-
 drivers/compress/qat/meson.build             |  18 +
 drivers/compress/qat/qat_comp.c              | 359 ++++++++++++++++++++
 drivers/compress/qat/qat_comp.h              |  56 ++++
 drivers/compress/qat/qat_comp_pmd.c          | 407 ++++++++++++++++++++++
 drivers/compress/qat/qat_comp_pmd.h          |  39 +++
 drivers/compress/qat/rte_pmd_qat_version.map |   3 +
 drivers/crypto/qat/meson.build               |  14 +-
 drivers/crypto/qat/rte_pmd_qat_version.map   |   3 -
 mk/rte.app.mk                                |   8 +-
 test/test/test_cryptodev.c                   |   6 +-
 25 files changed, 1806 insertions(+), 129 deletions(-)
 create mode 100644 doc/guides/compressdevs/features/qat.ini
 create mode 100644 doc/guides/compressdevs/qat_comp.rst
 create mode 100644 drivers/common/qat/qat_adf/icp_qat_fw_comp.h
 create mode 100644 drivers/compress/qat/meson.build
 create mode 100644 drivers/compress/qat/qat_comp.c
 create mode 100644 drivers/compress/qat/qat_comp.h
 create mode 100644 drivers/compress/qat/qat_comp_pmd.c
 create mode 100644 drivers/compress/qat/qat_comp_pmd.h
 create mode 100644 drivers/compress/qat/rte_pmd_qat_version.map
 delete mode 100644 drivers/crypto/qat/rte_pmd_qat_version.map

Comments

De Lara Guarch, Pablo July 13, 2018, 2:22 p.m. UTC | #1
> -----Original Message-----
> From: De Lara Guarch, Pablo
> Sent: Friday, July 13, 2018 3:28 AM
> To: Trahe, Fiona <fiona.trahe@intel.com>; Jozwiak, TomaszX
> <tomaszx.jozwiak@intel.com>; Griffin, John <john.griffin@intel.com>; Jain,
> Deepak K <deepak.k.jain@intel.com>
> Cc: dev@dpdk.org; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [PATCH v7 00/16] compress/qat: add compression PMD
> 
> Create compression PMD for Intel QuickAssist devices Currently only the C62x
> and c3xxx devices are supported.
> 
> The qat comp PMD supports
>  - stateless compression and
>    decompression using the Deflate algorithm with Fixed Huffman
>    encoding. Dynamic huffman encoding is not supported, it
>    will be added in a later patch.
>  - checksum generation: Adler32, CRC32 and combined.
> 
> The compression service is hosted on a QuickAssist VF PCI device, which is
> managed by code in the drivers/common/qat directory.
> 

Series applied to dpdk-next-crypto.

Thanks for the work!
Pablo