From patchwork Fri Sep 25 11:08:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 78806 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 97B1DA04C0; Fri, 25 Sep 2020 13:09:32 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C0CEC1E8C3; Fri, 25 Sep 2020 13:09:31 +0200 (CEST) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by dpdk.org (Postfix) with ESMTP id BF9601E88C for ; Fri, 25 Sep 2020 13:09:29 +0200 (CEST) IronPort-SDR: l1rMkeWYPKX761mTIbcAXoCDBRXg2E0SwaAGi90BvYxsJtaHOifSypqIiCekKjFDuGq++Xpaop P4lCyjSxX8lQ== X-IronPort-AV: E=McAfee;i="6000,8403,9754"; a="149263014" X-IronPort-AV: E=Sophos;i="5.77,301,1596524400"; d="scan'208";a="149263014" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Sep 2020 04:09:28 -0700 IronPort-SDR: cQ3qfagCTUQ6aBsY/b3fd0FaxdCoINdpnLKU65zn9ZQaq+7ff7JJywHirITlsIVzgnBYBIPm4L OuCiaHjs362Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,301,1596524400"; d="scan'208";a="455787777" Received: from unknown (HELO silpixa00399126.ir.intel.com) ([10.237.222.4]) by orsmga004.jf.intel.com with ESMTP; 25 Sep 2020 04:09:27 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: patrick.fu@intel.com, Bruce Richardson Date: Fri, 25 Sep 2020 12:08:45 +0100 Message-Id: <20200925110910.284098-1-bruce.richardson@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200721095140.719297-1-bruce.richardson@intel.com> References: <20200721095140.719297-1-bruce.richardson@intel.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v3 00/25] raw/ioat: enhancements and new hardware support 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" This patchset adds some small enhancements, some rework and also support for new hardware to the ioat rawdev driver. Most rework and enhancements are largely self-explanatory from the individual patches. The new hardware support is for the Intel(R) DSA accelerator which will be present in future Intel processors. A description of this new hardware is covered in [1]. Functions specific to the new hardware use the "idxd" prefix, for consistency with the kernel driver. [1] https://01.org/blogs/2019/introducing-intel-data-streaming-accelerator --- V3: * More doc updates including release note updates throughout the set * Added in fill operation * Added in fix for missing close operation * Added in fix for doc building to ensure ioat is in in the index V2: * Included documentation additions in the set * Split off the rawdev unit test changes to a separate patchset for easier review * General code improvements and cleanups Bruce Richardson (19): doc/api: add ioat driver to index raw/ioat: enable use from C++ code raw/ioat: include extra info in error messages raw/ioat: split header for readability raw/ioat: rename functions to be operation-agnostic raw/ioat: add separate API for fence call raw/ioat: make the HW register spec private raw/ioat: add skeleton for VFIO/UIO based DSA device raw/ioat: include example configuration script raw/ioat: create rawdev instances on idxd PCI probe raw/ioat: add datapath data structures for idxd devices raw/ioat: add configure function for idxd devices raw/ioat: add start and stop functions for idxd devices raw/ioat: add data path for idxd devices raw/ioat: add info function for idxd devices raw/ioat: create separate statistics structure raw/ioat: move xstats functions to common file raw/ioat: add xstats tracking for idxd devices raw/ioat: clean up use of common test function Cheng Jiang (1): raw/ioat: add a flag to control copying handle parameters Kevin Laatz (5): raw/ioat: fix missing close function usertools/dpdk-devbind.py: add support for DSA HW raw/ioat: add vdev probe for DSA/idxd devices raw/ioat: create rawdev instances for idxd vdevs raw/ioat: add fill operation doc/api/doxy-api-index.md | 1 + doc/api/doxy-api.conf.in | 1 + doc/guides/rawdevs/ioat.rst | 163 +++-- doc/guides/rel_notes/release_20_11.rst | 23 + drivers/raw/ioat/dpdk_idxd_cfg.py | 79 +++ drivers/raw/ioat/idxd_pci.c | 345 ++++++++++ drivers/raw/ioat/idxd_vdev.c | 233 +++++++ drivers/raw/ioat/ioat_common.c | 244 +++++++ drivers/raw/ioat/ioat_private.h | 82 +++ drivers/raw/ioat/ioat_rawdev.c | 92 +-- drivers/raw/ioat/ioat_rawdev_test.c | 112 +++- .../raw/ioat/{rte_ioat_spec.h => ioat_spec.h} | 90 ++- drivers/raw/ioat/meson.build | 15 +- drivers/raw/ioat/rte_ioat_rawdev.h | 221 +++---- drivers/raw/ioat/rte_ioat_rawdev_fns.h | 599 ++++++++++++++++++ examples/ioat/ioatfwd.c | 16 +- lib/librte_eal/include/rte_common.h | 1 + usertools/dpdk-devbind.py | 4 +- 18 files changed, 1971 insertions(+), 350 deletions(-) create mode 100755 drivers/raw/ioat/dpdk_idxd_cfg.py create mode 100644 drivers/raw/ioat/idxd_pci.c create mode 100644 drivers/raw/ioat/idxd_vdev.c create mode 100644 drivers/raw/ioat/ioat_common.c create mode 100644 drivers/raw/ioat/ioat_private.h rename drivers/raw/ioat/{rte_ioat_spec.h => ioat_spec.h} (74%) create mode 100644 drivers/raw/ioat/rte_ioat_rawdev_fns.h