From patchwork Fri Jul 13 02:28:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "De Lara Guarch, Pablo" X-Patchwork-Id: 43023 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 7C2CA4C74; Fri, 13 Jul 2018 12:34:07 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 499152BEB for ; Fri, 13 Jul 2018 12:34:04 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Jul 2018 03:34:04 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,347,1526367600"; d="scan'208";a="215718149" Received: from silpixa00399466.ir.intel.com (HELO silpixa00399466.ger.corp.intel.com) ([10.237.223.220]) by orsmga004.jf.intel.com with ESMTP; 13 Jul 2018 03:34:02 -0700 From: Pablo de Lara To: fiona.trahe@intel.com, tomaszx.jozwiak@intel.com, john.griffin@intel.com, deepak.k.jain@intel.com Cc: dev@dpdk.org, Pablo de Lara Date: Fri, 13 Jul 2018 03:28:09 +0100 Message-Id: <20180713022825.33106-1-pablo.de.lara.guarch@intel.com> X-Mailer: git-send-email 2.14.4 In-Reply-To: <1531411499-13156-1-git-send-email-fiona.trahe@intel.com> References: <1531411499-13156-1-git-send-email-fiona.trahe@intel.com> Subject: [dpdk-dev] [PATCH v7 00/16] compress/qat: add compression PMD X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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