All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson@intel.com>
To: dev@dpdk.org
Cc: patrick.fu@intel.com, Kevin Laatz <kevin.laatz@intel.com>,
	Bruce Richardson <bruce.richardson@intel.com>
Subject: [dpdk-dev] [PATCH v3 25/25] raw/ioat: add fill operation
Date: Fri, 25 Sep 2020 12:09:10 +0100	[thread overview]
Message-ID: <20200925110910.284098-26-bruce.richardson@intel.com> (raw)
In-Reply-To: <20200925110910.284098-1-bruce.richardson@intel.com>

From: Kevin Laatz <kevin.laatz@intel.com>

Add fill operation enqueue support for IOAT and IDXD. The fill enqueue is
similar to the copy enqueue, but takes a 'pattern' rather than a source
address to transfer to the destination address. This patch also includes an
additional test case for the new operation type.

Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Reviewed-by: Bruce Richardson <bruce.richardson@intel.com>
---
 doc/guides/rawdevs/ioat.rst            | 10 ++++
 doc/guides/rel_notes/release_20_11.rst |  2 +
 drivers/raw/ioat/ioat_rawdev_test.c    | 44 +++++++++++++++++
 drivers/raw/ioat/rte_ioat_rawdev.h     | 26 +++++++++++
 drivers/raw/ioat/rte_ioat_rawdev_fns.h | 65 ++++++++++++++++++++++++--
 5 files changed, 142 insertions(+), 5 deletions(-)

diff --git a/doc/guides/rawdevs/ioat.rst b/doc/guides/rawdevs/ioat.rst
index 7c2a2d457..250cfc48a 100644
--- a/doc/guides/rawdevs/ioat.rst
+++ b/doc/guides/rawdevs/ioat.rst
@@ -285,6 +285,16 @@ is correct before freeing the data buffers using the returned handles:
         }
 
 
+Filling an Area of Memory
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The IOAT driver also has support for the ``fill`` operation, where an area
+of memory is overwritten, or filled, with a short pattern of data.
+Fill operations can be performed in much the same was as copy operations
+described above, just using the ``rte_ioat_enqueue_fill()`` function rather
+than the ``rte_ioat_enqueue_copy()`` function.
+
+
 Querying Device Statistics
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst
index 4d8b78154..dd65b779d 100644
--- a/doc/guides/rel_notes/release_20_11.rst
+++ b/doc/guides/rel_notes/release_20_11.rst
@@ -84,6 +84,8 @@ New Features
 
   * Added support for Intel\ |reg| Data Streaming Accelerator hardware.
     For more information, see https://01.org/blogs/2019/introducing-intel-data-streaming-accelerator
+  * Added support for the fill operation via the API ``rte_ioat_enqueue_fill()``,
+    where the hardware fills an area of memory with a repeating pattern.
   * Added a per-device configuration flag to disable management of user-provided completion handles
   * Renamed the ``rte_ioat_do_copies()`` API to ``rte_ioat_perform_ops()``,
     and renamed the ``rte_ioat_completed_copies()`` API to ``rte_ioat_completed_ops()``
diff --git a/drivers/raw/ioat/ioat_rawdev_test.c b/drivers/raw/ioat/ioat_rawdev_test.c
index 7be6f2a2d..64269af55 100644
--- a/drivers/raw/ioat/ioat_rawdev_test.c
+++ b/drivers/raw/ioat/ioat_rawdev_test.c
@@ -152,6 +152,46 @@ test_enqueue_copies(int dev_id)
 	return 0;
 }
 
+static int
+test_enqueue_fill(int dev_id)
+{
+	const unsigned int length[] = {8, 64, 1024, 50, 100, 89};
+	struct rte_mbuf *dst = rte_pktmbuf_alloc(pool);
+	char *dst_data = rte_pktmbuf_mtod(dst, char *);
+	uint64_t pattern = 0xfedcba9876543210;
+	unsigned int i, j;
+
+	for (i = 0; i < RTE_DIM(length); i++) {
+		/* reset dst_data */
+		memset(dst_data, 0, length[i]);
+
+		/* perform the fill operation */
+		if (rte_ioat_enqueue_fill(dev_id, pattern,
+				dst->buf_iova + dst->data_off, length[i],
+				(uintptr_t)dst) != 1) {
+			PRINT_ERR("Error with rte_ioat_enqueue_fill\n");
+			return -1;
+		}
+
+		rte_ioat_perform_ops(dev_id);
+		usleep(100);
+
+		/* check the result */
+		for (j = 0; j < length[i]; j++) {
+			char pat_byte = ((char *)&pattern)[j % 8];
+			if (dst_data[j] != pat_byte) {
+				PRINT_ERR("Error with fill operation (length = %u): got (%x), not (%x)\n",
+						length[i], dst_data[j],
+						pat_byte);
+				return -1;
+			}
+		}
+	}
+
+	rte_pktmbuf_free(dst);
+	return 0;
+}
+
 int
 ioat_rawdev_test(uint16_t dev_id)
 {
@@ -238,6 +278,10 @@ ioat_rawdev_test(uint16_t dev_id)
 	}
 	printf("\n");
 
+	/* test enqueue fill operation */
+	if (test_enqueue_fill(dev_id) != 0)
+		goto err;
+
 	rte_rawdev_stop(dev_id);
 	if (rte_rawdev_xstats_reset(dev_id, NULL, 0) != 0) {
 		PRINT_ERR("Error resetting xstat values\n");
diff --git a/drivers/raw/ioat/rte_ioat_rawdev.h b/drivers/raw/ioat/rte_ioat_rawdev.h
index 6b891cd44..b7632ebf3 100644
--- a/drivers/raw/ioat/rte_ioat_rawdev.h
+++ b/drivers/raw/ioat/rte_ioat_rawdev.h
@@ -37,6 +37,32 @@ struct rte_ioat_rawdev_config {
 	bool hdls_disable;    /**< if set, ignore user-supplied handle params */
 };
 
+/**
+ * Enqueue a fill operation onto the ioat device
+ *
+ * This queues up a fill operation to be performed by hardware, but does not
+ * trigger hardware to begin that operation.
+ *
+ * @param dev_id
+ *   The rawdev device id of the ioat instance
+ * @param pattern
+ *   The pattern to populate the destination buffer with
+ * @param dst
+ *   The physical address of the destination buffer
+ * @param length
+ *   The length of the destination buffer
+ * @param dst_hdl
+ *   An opaque handle for the destination data, to be returned when this
+ *   operation has been completed and the user polls for the completion details.
+ *   NOTE: If hdls_disable configuration option for the device is set, this
+ *   parameter is ignored.
+ * @return
+ *   Number of operations enqueued, either 0 or 1
+ */
+static inline int
+rte_ioat_enqueue_fill(int dev_id, uint64_t pattern, phys_addr_t dst,
+		unsigned int length, uintptr_t dst_hdl);
+
 /**
  * Enqueue a copy operation onto the ioat device
  *
diff --git a/drivers/raw/ioat/rte_ioat_rawdev_fns.h b/drivers/raw/ioat/rte_ioat_rawdev_fns.h
index d0045d8a4..c2c4601ca 100644
--- a/drivers/raw/ioat/rte_ioat_rawdev_fns.h
+++ b/drivers/raw/ioat/rte_ioat_rawdev_fns.h
@@ -115,6 +115,13 @@ enum rte_idxd_ops {
 #define IDXD_FLAG_REQUEST_COMPLETION    (1 << 3)
 #define IDXD_FLAG_CACHE_CONTROL         (1 << 8)
 
+#define IOAT_COMP_UPDATE_SHIFT	3
+#define IOAT_CMD_OP_SHIFT	24
+enum rte_ioat_ops {
+	ioat_op_copy = 0,	/* Standard DMA Operation */
+	ioat_op_fill		/* Block Fill */
+};
+
 /**
  * Hardware descriptor used by DSA hardware, for both bursts and
  * for individual operations.
@@ -203,11 +210,8 @@ struct rte_idxd_rawdev {
 	struct rte_idxd_desc_batch *batch_ring;
 };
 
-/*
- * Enqueue a copy operation onto the ioat device
- */
 static __rte_always_inline int
-__ioat_enqueue_copy(int dev_id, phys_addr_t src, phys_addr_t dst,
+__ioat_write_desc(int dev_id, uint32_t op, uint64_t src, phys_addr_t dst,
 		unsigned int length, uintptr_t src_hdl, uintptr_t dst_hdl)
 {
 	struct rte_ioat_rawdev *ioat =
@@ -229,7 +233,8 @@ __ioat_enqueue_copy(int dev_id, phys_addr_t src, phys_addr_t dst,
 	desc = &ioat->desc_ring[write];
 	desc->size = length;
 	/* set descriptor write-back every 16th descriptor */
-	desc->u.control_raw = (uint32_t)((!(write & 0xF)) << 3);
+	desc->u.control_raw = (uint32_t)((op << IOAT_CMD_OP_SHIFT) |
+			(!(write & 0xF) << IOAT_COMP_UPDATE_SHIFT));
 	desc->src_addr = src;
 	desc->dest_addr = dst;
 
@@ -242,6 +247,27 @@ __ioat_enqueue_copy(int dev_id, phys_addr_t src, phys_addr_t dst,
 	return 1;
 }
 
+static __rte_always_inline int
+__ioat_enqueue_fill(int dev_id, uint64_t pattern, phys_addr_t dst,
+		unsigned int length, uintptr_t dst_hdl)
+{
+	static const uintptr_t null_hdl;
+
+	return __ioat_write_desc(dev_id, ioat_op_fill, pattern, dst, length,
+			null_hdl, dst_hdl);
+}
+
+/*
+ * Enqueue a copy operation onto the ioat device
+ */
+static __rte_always_inline int
+__ioat_enqueue_copy(int dev_id, phys_addr_t src, phys_addr_t dst,
+		unsigned int length, uintptr_t src_hdl, uintptr_t dst_hdl)
+{
+	return __ioat_write_desc(dev_id, ioat_op_copy, src, dst, length,
+			src_hdl, dst_hdl);
+}
+
 /* add fence to last written descriptor */
 static __rte_always_inline int
 __ioat_fence(int dev_id)
@@ -380,6 +406,23 @@ __idxd_write_desc(int dev_id, const struct rte_idxd_hw_desc *desc,
 	return 0;
 }
 
+static __rte_always_inline int
+__idxd_enqueue_fill(int dev_id, uint64_t pattern, rte_iova_t dst,
+		unsigned int length, uintptr_t dst_hdl)
+{
+	const struct rte_idxd_hw_desc desc = {
+			.op_flags =  (idxd_op_fill << IDXD_CMD_OP_SHIFT) |
+				IDXD_FLAG_CACHE_CONTROL,
+			.src = pattern,
+			.dst = dst,
+			.size = length
+	};
+	const struct rte_idxd_user_hdl hdl = {
+			.dst = dst_hdl
+	};
+	return __idxd_write_desc(dev_id, &desc, &hdl);
+}
+
 static __rte_always_inline int
 __idxd_enqueue_copy(int dev_id, rte_iova_t src, rte_iova_t dst,
 		unsigned int length, uintptr_t src_hdl, uintptr_t dst_hdl)
@@ -475,6 +518,18 @@ __idxd_completed_ops(int dev_id, uint8_t max_ops,
 	return n;
 }
 
+static inline int
+rte_ioat_enqueue_fill(int dev_id, uint64_t pattern, phys_addr_t dst,
+		unsigned int len, uintptr_t dst_hdl)
+{
+	enum rte_ioat_dev_type *type =
+			(enum rte_ioat_dev_type *)rte_rawdevs[dev_id].dev_private;
+	if (*type == RTE_IDXD_DEV)
+		return __idxd_enqueue_fill(dev_id, pattern, dst, len, dst_hdl);
+	else
+		return __ioat_enqueue_fill(dev_id, pattern, dst, len, dst_hdl);
+}
+
 static inline int
 rte_ioat_enqueue_copy(int dev_id, phys_addr_t src, phys_addr_t dst,
 		unsigned int length, uintptr_t src_hdl, uintptr_t dst_hdl)
-- 
2.25.1


  parent reply	other threads:[~2020-09-25 11:14 UTC|newest]

Thread overview: 157+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-21  9:51 [dpdk-dev] [PATCH 20.11 00/20] raw/ioat: enhancements and new hardware support Bruce Richardson
2020-07-21  9:51 ` [dpdk-dev] [PATCH 20.11 01/20] raw/ioat: add a flag to control copying handle parameters Bruce Richardson
2020-07-21  9:51 ` [dpdk-dev] [PATCH 20.11 02/20] raw/ioat: support multiple devices being tested Bruce Richardson
2020-07-21  9:51 ` [dpdk-dev] [PATCH 20.11 03/20] app/test: change rawdev autotest to run selftest on all devs Bruce Richardson
2020-07-21  9:51 ` [dpdk-dev] [PATCH 20.11 04/20] app/test: remove ioat-specific autotest Bruce Richardson
2020-07-21  9:51 ` [dpdk-dev] [PATCH 20.11 05/20] raw/ioat: split header for readability Bruce Richardson
2020-07-21  9:51 ` [dpdk-dev] [PATCH 20.11 06/20] raw/ioat: make the HW register spec private Bruce Richardson
2020-07-21  9:51 ` [dpdk-dev] [PATCH 20.11 07/20] usertools/dpdk-devbind.py: add support for DSA HW Bruce Richardson
2020-07-21  9:51 ` [dpdk-dev] [PATCH 20.11 08/20] raw/ioat: add skeleton for vfio/uio based DSA device Bruce Richardson
2020-07-21  9:51 ` [dpdk-dev] [PATCH 20.11 09/20] raw/ioat: add vdev probe for DSA/idxd devices Bruce Richardson
2020-07-21  9:51 ` [dpdk-dev] [PATCH 20.11 10/20] raw/ioat: create rawdev instances on idxd PCI probe Bruce Richardson
2020-07-21  9:51 ` [dpdk-dev] [PATCH 20.11 11/20] raw/ioat: create rawdev instances for idxd vdevs Bruce Richardson
2020-07-21  9:51 ` [dpdk-dev] [PATCH 20.11 12/20] raw/ioat: add datapath data structures for idxd devices Bruce Richardson
2020-07-21  9:51 ` [dpdk-dev] [PATCH 20.11 13/20] raw/ioat: add configure function " Bruce Richardson
2020-07-21  9:51 ` [dpdk-dev] [PATCH 20.11 14/20] raw/ioat: add start and stop functions " Bruce Richardson
2020-07-21  9:51 ` [dpdk-dev] [PATCH 20.11 15/20] raw/ioat: add data path support " Bruce Richardson
2020-07-21  9:51 ` [dpdk-dev] [PATCH 20.11 16/20] raw/ioat: add info function " Bruce Richardson
2020-07-21  9:51 ` [dpdk-dev] [PATCH 20.11 17/20] raw/ioat: create separate statistics structure Bruce Richardson
2020-07-21  9:51 ` [dpdk-dev] [PATCH 20.11 18/20] raw/ioat: move xstats functions to common file Bruce Richardson
2020-07-21  9:51 ` [dpdk-dev] [PATCH 20.11 19/20] raw/ioat: add xstats tracking for idxd devices Bruce Richardson
2020-07-21  9:51 ` [dpdk-dev] [PATCH 20.11 20/20] raw/ioat: clean up use of common test function Bruce Richardson
2020-08-21 16:29 ` [dpdk-dev] [PATCH v2 00/18] raw/ioat: enhancements and new hardware support Bruce Richardson
2020-08-21 16:29   ` [dpdk-dev] [PATCH v2 01/18] raw/ioat: add a flag to control copying handle parameters Bruce Richardson
2020-08-21 16:29   ` [dpdk-dev] [PATCH v2 02/18] raw/ioat: split header for readability Bruce Richardson
2020-08-25 15:27     ` Laatz, Kevin
2020-08-21 16:29   ` [dpdk-dev] [PATCH v2 03/18] raw/ioat: make the HW register spec private Bruce Richardson
2020-08-21 16:29   ` [dpdk-dev] [PATCH v2 04/18] usertools/dpdk-devbind.py: add support for DSA HW Bruce Richardson
2020-08-21 16:29   ` [dpdk-dev] [PATCH v2 05/18] raw/ioat: add skeleton for VFIO/UIO based DSA device Bruce Richardson
2020-08-21 16:29   ` [dpdk-dev] [PATCH v2 06/18] raw/ioat: add vdev probe for DSA/idxd devices Bruce Richardson
2020-08-21 16:29   ` [dpdk-dev] [PATCH v2 07/18] raw/ioat: include example configuration script Bruce Richardson
2020-08-21 16:29   ` [dpdk-dev] [PATCH v2 08/18] raw/ioat: create rawdev instances on idxd PCI probe Bruce Richardson
2020-08-25 15:27     ` Laatz, Kevin
2020-08-26 15:45       ` Bruce Richardson
2020-08-21 16:29   ` [dpdk-dev] [PATCH v2 09/18] raw/ioat: create rawdev instances for idxd vdevs Bruce Richardson
2020-08-21 16:29   ` [dpdk-dev] [PATCH v2 10/18] raw/ioat: add datapath data structures for idxd devices Bruce Richardson
2020-08-25 15:27     ` Laatz, Kevin
2020-08-21 16:29   ` [dpdk-dev] [PATCH v2 11/18] raw/ioat: add configure function " Bruce Richardson
2020-08-21 16:29   ` [dpdk-dev] [PATCH v2 12/18] raw/ioat: add start and stop functions " Bruce Richardson
2020-08-21 16:29   ` [dpdk-dev] [PATCH v2 13/18] raw/ioat: add data path " Bruce Richardson
2020-08-25 15:27     ` Laatz, Kevin
2020-08-21 16:29   ` [dpdk-dev] [PATCH v2 14/18] raw/ioat: add info function " Bruce Richardson
2020-08-21 16:29   ` [dpdk-dev] [PATCH v2 15/18] raw/ioat: create separate statistics structure Bruce Richardson
2020-08-21 16:29   ` [dpdk-dev] [PATCH v2 16/18] raw/ioat: move xstats functions to common file Bruce Richardson
2020-08-21 16:29   ` [dpdk-dev] [PATCH v2 17/18] raw/ioat: add xstats tracking for idxd devices Bruce Richardson
2020-08-24  9:56     ` Laatz, Kevin
2020-08-21 16:29   ` [dpdk-dev] [PATCH v2 18/18] raw/ioat: clean up use of common test function Bruce Richardson
2020-08-21 16:39   ` [dpdk-dev] [PATCH v2 00/18] raw/ioat: enhancements and new hardware support Bruce Richardson
2020-09-25 11:08 ` [dpdk-dev] [PATCH v3 00/25] " Bruce Richardson
2020-09-25 11:08   ` [dpdk-dev] [PATCH v3 01/25] doc/api: add ioat driver to index Bruce Richardson
2020-09-25 11:08   ` [dpdk-dev] [PATCH v3 02/25] raw/ioat: fix missing close function Bruce Richardson
2020-09-25 11:12     ` Bruce Richardson
2020-09-25 11:12     ` Pai G, Sunil
2020-09-25 11:08   ` [dpdk-dev] [PATCH v3 03/25] raw/ioat: enable use from C++ code Bruce Richardson
2020-09-25 11:08   ` [dpdk-dev] [PATCH v3 04/25] raw/ioat: include extra info in error messages Bruce Richardson
2020-09-25 11:08   ` [dpdk-dev] [PATCH v3 05/25] raw/ioat: add a flag to control copying handle parameters Bruce Richardson
2020-09-25 11:08   ` [dpdk-dev] [PATCH v3 06/25] raw/ioat: split header for readability Bruce Richardson
2020-09-25 11:08   ` [dpdk-dev] [PATCH v3 07/25] raw/ioat: rename functions to be operation-agnostic Bruce Richardson
2020-09-25 11:08   ` [dpdk-dev] [PATCH v3 08/25] raw/ioat: add separate API for fence call Bruce Richardson
2020-09-25 11:08   ` [dpdk-dev] [PATCH v3 09/25] raw/ioat: make the HW register spec private Bruce Richardson
2020-09-25 11:08   ` [dpdk-dev] [PATCH v3 10/25] usertools/dpdk-devbind.py: add support for DSA HW Bruce Richardson
2020-09-25 11:08   ` [dpdk-dev] [PATCH v3 11/25] raw/ioat: add skeleton for VFIO/UIO based DSA device Bruce Richardson
2020-09-25 11:08   ` [dpdk-dev] [PATCH v3 12/25] raw/ioat: add vdev probe for DSA/idxd devices Bruce Richardson
2020-09-25 11:08   ` [dpdk-dev] [PATCH v3 13/25] raw/ioat: include example configuration script Bruce Richardson
2020-09-25 11:08   ` [dpdk-dev] [PATCH v3 14/25] raw/ioat: create rawdev instances on idxd PCI probe Bruce Richardson
2020-09-25 11:09   ` [dpdk-dev] [PATCH v3 15/25] raw/ioat: create rawdev instances for idxd vdevs Bruce Richardson
2020-09-25 11:09   ` [dpdk-dev] [PATCH v3 16/25] raw/ioat: add datapath data structures for idxd devices Bruce Richardson
2020-09-25 11:09   ` [dpdk-dev] [PATCH v3 17/25] raw/ioat: add configure function " Bruce Richardson
2020-09-25 11:09   ` [dpdk-dev] [PATCH v3 18/25] raw/ioat: add start and stop functions " Bruce Richardson
2020-09-25 11:09   ` [dpdk-dev] [PATCH v3 19/25] raw/ioat: add data path " Bruce Richardson
2020-09-25 11:09   ` [dpdk-dev] [PATCH v3 20/25] raw/ioat: add info function " Bruce Richardson
2020-09-25 11:09   ` [dpdk-dev] [PATCH v3 21/25] raw/ioat: create separate statistics structure Bruce Richardson
2020-09-25 11:09   ` [dpdk-dev] [PATCH v3 22/25] raw/ioat: move xstats functions to common file Bruce Richardson
2020-09-25 11:09   ` [dpdk-dev] [PATCH v3 23/25] raw/ioat: add xstats tracking for idxd devices Bruce Richardson
2020-09-25 11:09   ` [dpdk-dev] [PATCH v3 24/25] raw/ioat: clean up use of common test function Bruce Richardson
2020-09-25 11:09   ` Bruce Richardson [this message]
2020-09-28 16:42 ` [dpdk-dev] [PATCH v4 00/25] raw/ioat: enhancements and new hardware support Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 01/25] doc/api: add ioat driver to index Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 02/25] raw/ioat: fix missing close function Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 03/25] raw/ioat: enable use from C++ code Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 04/25] raw/ioat: include extra info in error messages Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 05/25] raw/ioat: add a flag to control copying handle parameters Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 06/25] raw/ioat: split header for readability Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 07/25] raw/ioat: rename functions to be operation-agnostic Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 08/25] raw/ioat: add separate API for fence call Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 09/25] raw/ioat: make the HW register spec private Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 10/25] usertools/dpdk-devbind.py: add support for DSA HW Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 11/25] raw/ioat: add skeleton for VFIO/UIO based DSA device Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 12/25] raw/ioat: add vdev probe for DSA/idxd devices Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 13/25] raw/ioat: include example configuration script Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 14/25] raw/ioat: create rawdev instances on idxd PCI probe Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 15/25] raw/ioat: create rawdev instances for idxd vdevs Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 16/25] raw/ioat: add datapath data structures for idxd devices Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 17/25] raw/ioat: add configure function " Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 18/25] raw/ioat: add start and stop functions " Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 19/25] raw/ioat: add data path " Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 20/25] raw/ioat: add info function " Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 21/25] raw/ioat: create separate statistics structure Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 22/25] raw/ioat: move xstats functions to common file Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 23/25] raw/ioat: add xstats tracking for idxd devices Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 24/25] raw/ioat: clean up use of common test function Bruce Richardson
2020-09-28 16:42   ` [dpdk-dev] [PATCH v4 25/25] raw/ioat: add fill operation Bruce Richardson
2020-10-02 14:07   ` [dpdk-dev] [PATCH v4 00/25] raw/ioat: enhancements and new hardware support Nicolau, Radu
2020-10-06 21:10   ` Thomas Monjalon
2020-10-07  9:46     ` Bruce Richardson
2020-10-07 16:29 ` [dpdk-dev] [PATCH v5 " Bruce Richardson
2020-10-07 16:29   ` [dpdk-dev] [PATCH v5 01/25] doc/api: add ioat driver to index Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 02/25] raw/ioat: fix missing close function Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 03/25] raw/ioat: enable use from C++ code Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 04/25] raw/ioat: include extra info in error messages Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 05/25] raw/ioat: add a flag to control copying handle parameters Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 06/25] raw/ioat: split header for readability Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 07/25] raw/ioat: rename functions to be operation-agnostic Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 08/25] raw/ioat: add separate API for fence call Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 09/25] raw/ioat: make the HW register spec private Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 10/25] usertools/dpdk-devbind.py: add support for DSA HW Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 11/25] raw/ioat: add skeleton for VFIO/UIO based DSA device Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 12/25] raw/ioat: add vdev probe for DSA/idxd devices Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 13/25] raw/ioat: include example configuration script Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 14/25] raw/ioat: create rawdev instances on idxd PCI probe Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 15/25] raw/ioat: create rawdev instances for idxd vdevs Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 16/25] raw/ioat: add datapath data structures for idxd devices Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 17/25] raw/ioat: add configure function " Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 18/25] raw/ioat: add start and stop functions " Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 19/25] raw/ioat: add data path " Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 20/25] raw/ioat: add info function " Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 21/25] raw/ioat: create separate statistics structure Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 22/25] raw/ioat: move xstats functions to common file Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 23/25] raw/ioat: add xstats tracking for idxd devices Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 24/25] raw/ioat: clean up use of common test function Bruce Richardson
2020-10-07 16:30   ` [dpdk-dev] [PATCH v5 25/25] raw/ioat: add fill operation Bruce Richardson
2020-10-08  9:51 ` [dpdk-dev] [PATCH v6 00/25] raw/ioat: enhancements and new hardware support Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 01/25] doc/api: add ioat driver to index Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 02/25] raw/ioat: fix missing close function Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 03/25] raw/ioat: enable use from C++ code Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 04/25] raw/ioat: include extra info in error messages Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 05/25] raw/ioat: add a flag to control copying handle parameters Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 06/25] raw/ioat: split header for readability Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 07/25] raw/ioat: rename functions to be operation-agnostic Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 08/25] raw/ioat: add separate API for fence call Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 09/25] raw/ioat: make the HW register spec private Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 10/25] usertools/dpdk-devbind.py: add support for DSA HW Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 11/25] raw/ioat: add skeleton for VFIO/UIO based DSA device Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 12/25] raw/ioat: add vdev probe for DSA/idxd devices Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 13/25] raw/ioat: include example configuration script Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 14/25] raw/ioat: create rawdev instances on idxd PCI probe Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 15/25] raw/ioat: create rawdev instances for idxd vdevs Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 16/25] raw/ioat: add datapath data structures for idxd devices Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 17/25] raw/ioat: add configure function " Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 18/25] raw/ioat: add start and stop functions " Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 19/25] raw/ioat: add data path " Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 20/25] raw/ioat: add info function " Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 21/25] raw/ioat: create separate statistics structure Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 22/25] raw/ioat: move xstats functions to common file Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 23/25] raw/ioat: add xstats tracking for idxd devices Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 24/25] raw/ioat: clean up use of common test function Bruce Richardson
2020-10-08  9:51   ` [dpdk-dev] [PATCH v6 25/25] raw/ioat: add fill operation Bruce Richardson
2020-10-08 12:32   ` [dpdk-dev] [PATCH v6 00/25] raw/ioat: enhancements and new hardware support Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200925110910.284098-26-bruce.richardson@intel.com \
    --to=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=kevin.laatz@intel.com \
    --cc=patrick.fu@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.