[dpdk-dev] [PATCH 00/30] crypto/qat: refactor to support multiple service

Fiona Trahe fiona.trahe at intel.com
Fri Apr 6 20:51:42 CEST 2018


The QAT crypto PMD was peppered with references to rte_cryptodev artefacts.
Also the pci device it presented to the API layer was 
entirely owned by the one cryptodev device instance created by the probe.
This patchset refactors the PMD so one pci device can present out multiple
different device instances to implement different APIs, specifically
cryptodev and compressdev instances.
The code is refactored into
 - common code which handles the pci device discovery, configuration,
   queue-pair setup, stats gathering and data-path enqueue and dequeue.
 - service-specific code for symmetric crypto, which is a thin layer
   implementing the cryptodev API and using the common code.
 - place-holder files for service-specific code to support asymmetric
   crypto and compression services in future.


Fiona Trahe (29):
  crypto/qat: use SPDX license
  crypto/qat: add qat common header
  crypto/qat: add qat device files
  crypto/qat: remove unused includes
  crypto/qat: add symmetric session file
  crypto/qat: change filename crypto to sym
  crypto/qat: rename fns for consistency
  crypto/qat: renamed sym-specific structs
  crypto/qat: make enqueue function generic
  crypto/qat: make dequeue function generic
  crypto/qat: move generic qp fn to qp file
  crypto/qat: separate sym-specific from generic qp setup
  crypto/qat: move sym-specific qp code to sym file
  crypto/qat: remove dependencies on cryptodev from common
  crypto/qat: move defines from sym to qp header file
  crypto/qat: create data structures to support different generations
  crypto/qat: rename sgl related objects
  crypto/qat: move sgl related element to appropriate files
  crypto/qat: add QAT PCI device struct
  crypto/qat: separate the name used for PCI reg from crypto name
  crypto/qat: move to using new device structure
  crypto/qat: use common stats structures
  crypto/qat: rename functions which depend on cryptodev
  crypto/qat: move code into appropriate files
  crypto/qat: add lock around csr access and change logic
  crypto/qat: remove incorrect usage of bundle number
  crypto/qat: cleanups
  crypto/qat: create appropriately named device for registration
  crypto/qat: add MAX PCI DEVICES flag to config file

Tomasz Jozwiak (1):
  crypto/qat: add performance improvement into qat crypto dev.

 config/common_base                                 |    4 +
 config/rte_config.h                                |    2 +
 drivers/crypto/qat/Makefile                        |   12 +-
 drivers/crypto/qat/meson.build                     |   11 +-
 .../qat/qat_adf/adf_transport_access_macros.h      |   56 +-
 drivers/crypto/qat/qat_adf/icp_qat_fw.h            |   47 +-
 drivers/crypto/qat/qat_adf/icp_qat_fw_la.h         |   47 +-
 drivers/crypto/qat/qat_adf/icp_qat_hw.h            |   47 +-
 drivers/crypto/qat/qat_adf/qat_algs.h              |   72 +-
 drivers/crypto/qat/qat_adf/qat_algs_build_desc.c   | 1059 ------------
 drivers/crypto/qat/qat_asym_pmd.c                  |   17 +
 drivers/crypto/qat/qat_asym_pmd.h                  |   15 +
 drivers/crypto/qat/qat_common.c                    |  107 ++
 drivers/crypto/qat/qat_common.h                    |   76 +
 drivers/crypto/qat/qat_comp_pmd.c                  |   18 +
 drivers/crypto/qat/qat_comp_pmd.h                  |   29 +
 drivers/crypto/qat/qat_crypto.c                    | 1696 -------------------
 drivers/crypto/qat/qat_crypto.h                    |  150 --
 drivers/crypto/qat/qat_crypto_capabilities.h       |  557 -------
 drivers/crypto/qat/qat_device.c                    |  241 +++
 drivers/crypto/qat/qat_device.h                    |   78 +
 drivers/crypto/qat/qat_logs.h                      |    2 +-
 drivers/crypto/qat/qat_qp.c                        |  464 ++++--
 drivers/crypto/qat/qat_qp.h                        |  106 ++
 drivers/crypto/qat/qat_sym.c                       |  568 +++++++
 drivers/crypto/qat/qat_sym.h                       |  152 ++
 drivers/crypto/qat/qat_sym_capabilities.h          |  557 +++++++
 drivers/crypto/qat/qat_sym_pmd.c                   |  335 ++++
 drivers/crypto/qat/qat_sym_pmd.h                   |   39 +
 drivers/crypto/qat/qat_sym_session.c               | 1723 ++++++++++++++++++++
 drivers/crypto/qat/qat_sym_session.h               |  143 ++
 drivers/crypto/qat/rte_qat_cryptodev.c             |  180 --
 32 files changed, 4570 insertions(+), 4040 deletions(-)
 delete mode 100644 drivers/crypto/qat/qat_adf/qat_algs_build_desc.c
 create mode 100644 drivers/crypto/qat/qat_asym_pmd.c
 create mode 100644 drivers/crypto/qat/qat_asym_pmd.h
 create mode 100644 drivers/crypto/qat/qat_common.c
 create mode 100644 drivers/crypto/qat/qat_common.h
 create mode 100644 drivers/crypto/qat/qat_comp_pmd.c
 create mode 100644 drivers/crypto/qat/qat_comp_pmd.h
 delete mode 100644 drivers/crypto/qat/qat_crypto.c
 delete mode 100644 drivers/crypto/qat/qat_crypto.h
 delete mode 100644 drivers/crypto/qat/qat_crypto_capabilities.h
 create mode 100644 drivers/crypto/qat/qat_device.c
 create mode 100644 drivers/crypto/qat/qat_device.h
 create mode 100644 drivers/crypto/qat/qat_qp.h
 create mode 100644 drivers/crypto/qat/qat_sym.c
 create mode 100644 drivers/crypto/qat/qat_sym.h
 create mode 100644 drivers/crypto/qat/qat_sym_capabilities.h
 create mode 100644 drivers/crypto/qat/qat_sym_pmd.c
 create mode 100644 drivers/crypto/qat/qat_sym_pmd.h
 create mode 100644 drivers/crypto/qat/qat_sym_session.c
 create mode 100644 drivers/crypto/qat/qat_sym_session.h
 delete mode 100644 drivers/crypto/qat/rte_qat_cryptodev.c



More information about the dev mailing list