From patchwork Mon Sep 28 16:42:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 79022 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 63007A04DB; Mon, 28 Sep 2020 18:43:01 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 96DEC1D5D1; Mon, 28 Sep 2020 18:42:59 +0200 (CEST) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 7174D1BCE5 for ; Mon, 28 Sep 2020 18:42:57 +0200 (CEST) IronPort-SDR: Giect0SIAAlfijCHTWr+YT8gWvYsTujk2Icy4wJkhnMK3G/oScCP1C3RY1RwxWJYb7+/i4rnP2 YG+ewtszOzdQ== X-IronPort-AV: E=McAfee;i="6000,8403,9758"; a="223619733" X-IronPort-AV: E=Sophos;i="5.77,313,1596524400"; d="scan'208";a="223619733" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Sep 2020 09:42:55 -0700 IronPort-SDR: WOQtH4Yx/9jHAkMnPO5k6p5zwQ7p7vyR/ZUdyy6+NaBPsIFH3kOnNQTfSzu/CscwcCAj7JIjqt pFHk+GvUo+ug== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,313,1596524400"; d="scan'208";a="338250438" Received: from silpixa00399126.ir.intel.com ([10.237.222.4]) by fmsmga004.fm.intel.com with ESMTP; 28 Sep 2020 09:42:53 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: patrick.fu@intel.com, Bruce Richardson Date: Mon, 28 Sep 2020 17:42:20 +0100 Message-Id: <20200928164245.84997-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 v4 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 --- V4: * Fixed compile with FreeBSD clang * Improved autotests for fill operation 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 + doc/guides/sample_app_ug/ioat.rst | 8 +- 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 | 130 +++- .../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 | 595 ++++++++++++++++++ examples/ioat/ioatfwd.c | 16 +- lib/librte_eal/include/rte_common.h | 1 + usertools/dpdk-devbind.py | 4 +- 19 files changed, 1989 insertions(+), 354 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