From patchwork Mon Sep 27 10:21:45 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Conor Walsh X-Patchwork-Id: 99760 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 755BEA0547; Mon, 27 Sep 2021 12:22:04 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 335F240E3C; Mon, 27 Sep 2021 12:22:04 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mails.dpdk.org (Postfix) with ESMTP id 5B2284069E for ; Mon, 27 Sep 2021 12:22:02 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10119"; a="246937001" X-IronPort-AV: E=Sophos;i="5.85,326,1624345200"; d="scan'208";a="246937001" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Sep 2021 03:22:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,326,1624345200"; d="scan'208";a="561166495" Received: from silpixa00401160.ir.intel.com ([10.55.129.96]) by fmsmga002.fm.intel.com with ESMTP; 27 Sep 2021 03:22:00 -0700 From: Conor Walsh To: bruce.richardson@intel.com, fengchengwen@huawei.com, jerinj@marvell.com, kevin.laatz@intel.com Cc: dev@dpdk.org, Conor Walsh Date: Mon, 27 Sep 2021 10:21:45 +0000 Message-Id: <20210927102157.1570116-1-conor.walsh@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210827172550.1522362-1-conor.walsh@intel.com> References: <20210827172550.1522362-1-conor.walsh@intel.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v6 00/12] dma: add dmadev driver for ioat devices X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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" This patchset adds a dmadev driver and associated documentation to support Intel QuickData Technology devices, part of the Intel I/O Acceleration Technology (Intel I/OAT). This driver is intended to ultimately replace the current IOAT part of the IOAT rawdev driver. This patchset passes all the driver tests added in the dmadev test suite. NOTE: This patchset has several dependencies: - v23 of the dmadev set [1] - v6 of the dmadev test suite [2] - v6 of the IDXD driver [3] [1] http://patches.dpdk.org/project/dpdk/list/?series=19140 [2] http://patches.dpdk.org/project/dpdk/list/?series=19138 [3] http://patches.dpdk.org/project/dpdk/list/?series=19144 --- v6: - Added rawdev IOAT deprecation notice to deprecation.rst v5: - Updated to v23 of the dmadev lib. - Removed experimental tag for driver from MAINTAINERS. - Seperated IOAT and IDXD announcements in release notes. - Added missing check for rte_dma_get_dev_id in destroy. - Fixed memleak in destroy caused by NULL pointer. - Rewrote part of the docs to reduce duplication with DMA and IDXD. - Added patch to deprecate the rawdev IOAT driver. - Reworked destroy and close functions. - Added RTE_DMA_CAPA_HANDLES_ERRORS flag for IOAT versions >=3.4. - Other minor changes to IOAT driver. v4: - Changes needed to update from dmadev v21 to v22. - Fixed 32-bit build. - Made stats reset logic easier to understand. v3: - Added burst capacity function. - Stop function now waits for suspend rather than just using a sleep. - Changed from vchan idle to vchan status function. - Other minor changes to update from dmadev v19 to v21. v2: - Rebased on the above patchsets. - Added support for the vchan idle function. - Stop function now suspends IOAT channel to allow for reconfig. - dmadev_autotest can now be run multiple times using the IOAT driver without errors. - Added devbind updates for DMA devices - Removed some logically dead code found by coverity in the Conor Walsh (12): dma/ioat: add device probe and removal functions dma/ioat: create dmadev instances on PCI probe dma/ioat: add datapath structures dma/ioat: add configuration functions dma/ioat: add start and stop functions dma/ioat: add data path job submission functions dma/ioat: add data path completion functions dma/ioat: add statistics dma/ioat: add support for vchan status function dma/ioat: add burst capacity function devbind: move ioat device IDs to dmadev category raw/ioat: deprecate ioat rawdev driver MAINTAINERS | 8 +- doc/guides/dmadevs/index.rst | 2 + doc/guides/dmadevs/ioat.rst | 131 +++++ doc/guides/rawdevs/ioat.rst | 4 + doc/guides/rel_notes/deprecation.rst | 7 + doc/guides/rel_notes/release_21_11.rst | 6 + drivers/dma/ioat/ioat_dmadev.c | 738 +++++++++++++++++++++++++ drivers/dma/ioat/ioat_hw_defs.h | 295 ++++++++++ drivers/dma/ioat/ioat_internal.h | 47 ++ drivers/dma/ioat/meson.build | 7 + drivers/dma/ioat/version.map | 3 + drivers/dma/meson.build | 1 + usertools/dpdk-devbind.py | 6 +- 13 files changed, 1250 insertions(+), 5 deletions(-) create mode 100644 doc/guides/dmadevs/ioat.rst create mode 100644 drivers/dma/ioat/ioat_dmadev.c create mode 100644 drivers/dma/ioat/ioat_hw_defs.h create mode 100644 drivers/dma/ioat/ioat_internal.h create mode 100644 drivers/dma/ioat/meson.build create mode 100644 drivers/dma/ioat/version.map