From: Kevin Laatz <kevin.laatz@intel.com>
To: dev@dpdk.org
Cc: bruce.richardson@intel.com, fengchengwen@huawei.com,
jerinj@marvell.com, conor.walsh@intel.com,
Kevin Laatz <kevin.laatz@intel.com>
Subject: [dpdk-dev] [PATCH v4 09/16] dma/idxd: add data-path job submission functions
Date: Fri, 17 Sep 2021 14:02:45 +0000 [thread overview]
Message-ID: <20210917140252.2999006-10-kevin.laatz@intel.com> (raw)
In-Reply-To: <20210917140252.2999006-1-kevin.laatz@intel.com>
Add data path functions for enqueuing and submitting operations to DSA
devices.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Reviewed-by: Conor Walsh <conor.walsh@intel.com>
---
doc/guides/dmadevs/idxd.rst | 64 +++++++++++++++
drivers/dma/idxd/idxd_common.c | 136 +++++++++++++++++++++++++++++++
drivers/dma/idxd/idxd_internal.h | 5 ++
drivers/dma/idxd/meson.build | 1 +
4 files changed, 206 insertions(+)
diff --git a/doc/guides/dmadevs/idxd.rst b/doc/guides/dmadevs/idxd.rst
index a603c5dd22..7835461a22 100644
--- a/doc/guides/dmadevs/idxd.rst
+++ b/doc/guides/dmadevs/idxd.rst
@@ -153,3 +153,67 @@ The following code shows how the device is configured in
Once configured, the device can then be made ready for use by calling the
``rte_dma_start()`` API.
+
+Performing Data Copies
+~~~~~~~~~~~~~~~~~~~~~~~
+
+To perform data copies using IDXD dmadev devices, descriptors should be enqueued
+using the ``rte_dma_copy()`` API. The HW can be triggered to perform the copy
+in two ways, either via a ``RTE_DMA_OP_FLAG_SUBMIT`` flag or by calling
+``rte_dma_submit()``. Once copies have been completed, the completion will
+be reported back when the application calls ``rte_dma_completed()`` or
+``rte_dma_completed_status()``. The latter will also report the status of each
+completed operation.
+
+The ``rte_dma_copy()`` function enqueues a single copy to the device ring for
+copying at a later point. The parameters to that function include the IOVA addresses
+of both the source and destination buffers, as well as the length of the copy.
+
+The ``rte_dma_copy()`` function enqueues a copy operation on the device ring.
+If the ``RTE_DMA_OP_FLAG_SUBMIT`` flag is set when calling ``rte_dma_copy()``,
+the device hardware will be informed of the elements. Alternatively, if the flag
+is not set, the application needs to call the ``rte_dma_submit()`` function to
+notify the device hardware. Once the device hardware is informed of the elements
+enqueued on the ring, the device will begin to process them. It is expected
+that, for efficiency reasons, a burst of operations will be enqueued to the
+device via multiple enqueue calls between calls to the ``rte_dma_submit()``
+function.
+
+The following code demonstrates how to enqueue a burst of copies to the
+device and start the hardware processing of them:
+
+.. code-block:: C
+
+ struct rte_mbuf *srcs[COMP_BURST_SZ], *dsts[COMP_BURST_SZ];
+ unsigned int i;
+
+ for (i = 0; i < RTE_DIM(srcs); i++) {
+ uint64_t *src_data;
+
+ srcs[i] = rte_pktmbuf_alloc(pool);
+ dsts[i] = rte_pktmbuf_alloc(pool);
+ src_data = rte_pktmbuf_mtod(srcs[i], uint64_t *);
+ if (srcs[i] == NULL || dsts[i] == NULL) {
+ PRINT_ERR("Error allocating buffers\n");
+ return -1;
+ }
+
+ for (j = 0; j < COPY_LEN/sizeof(uint64_t); j++)
+ src_data[j] = rte_rand();
+
+ if (rte_dma_copy(dev_id, vchan, srcs[i]->buf_iova + srcs[i]->data_off,
+ dsts[i]->buf_iova + dsts[i]->data_off, COPY_LEN, 0) < 0) {
+ PRINT_ERR("Error with rte_dma_copy for buffer %u\n", i);
+ return -1;
+ }
+ }
+ rte_dma_submit(dev_id, vchan);
+
+Filling an Area of Memory
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The IDXD 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_dma_fill()`` function rather than the
+``rte_dma_copy()`` function.
diff --git a/drivers/dma/idxd/idxd_common.c b/drivers/dma/idxd/idxd_common.c
index 2c222708cf..b01edeab07 100644
--- a/drivers/dma/idxd/idxd_common.c
+++ b/drivers/dma/idxd/idxd_common.c
@@ -2,14 +2,144 @@
* Copyright 2021 Intel Corporation
*/
+#include <x86intrin.h>
+
#include <rte_dmadev_pmd.h>
#include <rte_malloc.h>
#include <rte_common.h>
+#include <rte_prefetch.h>
#include "idxd_internal.h"
#define IDXD_PMD_NAME_STR "dmadev_idxd"
+static __rte_always_inline rte_iova_t
+__desc_idx_to_iova(struct idxd_dmadev *idxd, uint16_t n)
+{
+ return idxd->desc_iova + (n * sizeof(struct idxd_hw_desc));
+}
+
+static __rte_always_inline void
+__idxd_movdir64b(volatile void *dst, const struct idxd_hw_desc *src)
+{
+ asm volatile (".byte 0x66, 0x0f, 0x38, 0xf8, 0x02"
+ :
+ : "a" (dst), "d" (src)
+ : "memory");
+}
+
+static __rte_always_inline void
+__submit(struct idxd_dmadev *idxd)
+{
+ rte_prefetch1(&idxd->batch_comp_ring[idxd->batch_idx_read]);
+
+ if (idxd->batch_size == 0)
+ return;
+
+ /* write completion to batch comp ring */
+ rte_iova_t comp_addr = idxd->batch_iova +
+ (idxd->batch_idx_write * sizeof(struct idxd_completion));
+
+ if (idxd->batch_size == 1) {
+ /* submit batch directly */
+ struct idxd_hw_desc desc =
+ idxd->desc_ring[idxd->batch_start & idxd->desc_ring_mask];
+ desc.completion = comp_addr;
+ desc.op_flags |= IDXD_FLAG_REQUEST_COMPLETION;
+ _mm_sfence(); /* fence before writing desc to device */
+ __idxd_movdir64b(idxd->portal, &desc);
+ } else {
+ const struct idxd_hw_desc batch_desc = {
+ .op_flags = (idxd_op_batch << IDXD_CMD_OP_SHIFT) |
+ IDXD_FLAG_COMPLETION_ADDR_VALID |
+ IDXD_FLAG_REQUEST_COMPLETION,
+ .desc_addr = __desc_idx_to_iova(idxd,
+ idxd->batch_start & idxd->desc_ring_mask),
+ .completion = comp_addr,
+ .size = idxd->batch_size,
+ };
+ _mm_sfence(); /* fence before writing desc to device */
+ __idxd_movdir64b(idxd->portal, &batch_desc);
+ }
+
+ if (++idxd->batch_idx_write > idxd->max_batches)
+ idxd->batch_idx_write = 0;
+
+ idxd->batch_start += idxd->batch_size;
+ idxd->batch_size = 0;
+ idxd->batch_idx_ring[idxd->batch_idx_write] = idxd->batch_start;
+ _mm256_store_si256((void *)&idxd->batch_comp_ring[idxd->batch_idx_write],
+ _mm256_setzero_si256());
+}
+
+static __rte_always_inline int
+__idxd_write_desc(struct rte_dma_dev *dev,
+ const uint32_t op_flags,
+ const rte_iova_t src,
+ const rte_iova_t dst,
+ const uint32_t size,
+ const uint32_t flags)
+{
+ struct idxd_dmadev *idxd = dev->dev_private;
+ uint16_t mask = idxd->desc_ring_mask;
+ uint16_t job_id = idxd->batch_start + idxd->batch_size;
+ /* we never wrap batches, so we only mask the start and allow start+size to overflow */
+ uint16_t write_idx = (idxd->batch_start & mask) + idxd->batch_size;
+
+ /* first check batch ring space then desc ring space */
+ if ((idxd->batch_idx_read == 0 && idxd->batch_idx_write == idxd->max_batches) ||
+ idxd->batch_idx_write + 1 == idxd->batch_idx_read)
+ return -1;
+ if (((write_idx + 1) & mask) == (idxd->ids_returned & mask))
+ return -1;
+
+ /* write desc. Note: descriptors don't wrap, but the completion address does */
+ const uint64_t op_flags64 = (uint64_t)(op_flags | IDXD_FLAG_COMPLETION_ADDR_VALID) << 32;
+ const uint64_t comp_addr = __desc_idx_to_iova(idxd, write_idx & mask);
+ _mm256_store_si256((void *)&idxd->desc_ring[write_idx],
+ _mm256_set_epi64x(dst, src, comp_addr, op_flags64));
+ _mm256_store_si256((void *)&idxd->desc_ring[write_idx].size,
+ _mm256_set_epi64x(0, 0, 0, size));
+
+ idxd->batch_size++;
+
+ rte_prefetch0_write(&idxd->desc_ring[write_idx + 1]);
+
+ if (flags & RTE_DMA_OP_FLAG_SUBMIT)
+ __submit(idxd);
+
+ return job_id;
+}
+
+int
+idxd_enqueue_copy(struct rte_dma_dev *dev, uint16_t qid __rte_unused, rte_iova_t src,
+ rte_iova_t dst, unsigned int length, uint64_t flags)
+{
+ /* we can take advantage of the fact that the fence flag in dmadev and DSA are the same,
+ * but check it at compile time to be sure.
+ */
+ RTE_BUILD_BUG_ON(RTE_DMA_OP_FLAG_FENCE != IDXD_FLAG_FENCE);
+ uint32_t memmove = (idxd_op_memmove << IDXD_CMD_OP_SHIFT) |
+ IDXD_FLAG_CACHE_CONTROL | (flags & IDXD_FLAG_FENCE);
+ return __idxd_write_desc(dev, memmove, src, dst, length, flags);
+}
+
+int
+idxd_enqueue_fill(struct rte_dma_dev *dev, uint16_t qid __rte_unused, uint64_t pattern,
+ rte_iova_t dst, unsigned int length, uint64_t flags)
+{
+ uint32_t fill = (idxd_op_fill << IDXD_CMD_OP_SHIFT) |
+ IDXD_FLAG_CACHE_CONTROL | (flags & IDXD_FLAG_FENCE);
+ return __idxd_write_desc(dev, fill, pattern, dst, length, flags);
+}
+
+int
+idxd_submit(struct rte_dma_dev *dev, uint16_t qid __rte_unused)
+{
+ __submit(dev->dev_private);
+ return 0;
+}
+
int
idxd_dump(const struct rte_dma_dev *dev, FILE *f)
{
@@ -141,6 +271,12 @@ idxd_dmadev_create(const char *name, struct rte_device *dev,
dmadev->dev_ops = ops;
dmadev->device = dev;
+ dmadev->copy = idxd_enqueue_copy;
+ dmadev->fill = idxd_enqueue_fill;
+ dmadev->submit = idxd_submit;
+ dmadev->completed = idxd_completed;
+ dmadev->completed_status = idxd_completed_status;
+
idxd = rte_malloc_socket(NULL, sizeof(struct idxd_dmadev), 0, dev->numa_node);
if (idxd == NULL) {
IDXD_PMD_ERR("Unable to allocate memory for device");
diff --git a/drivers/dma/idxd/idxd_internal.h b/drivers/dma/idxd/idxd_internal.h
index fdd018ca35..b66c2d0182 100644
--- a/drivers/dma/idxd/idxd_internal.h
+++ b/drivers/dma/idxd/idxd_internal.h
@@ -88,5 +88,10 @@ int idxd_vchan_setup(struct rte_dma_dev *dev, uint16_t vchan,
const struct rte_dma_vchan_conf *qconf, uint32_t qconf_sz);
int idxd_info_get(const struct rte_dma_dev *dev, struct rte_dma_info *dev_info,
uint32_t size);
+int idxd_enqueue_copy(struct rte_dma_dev *dev, uint16_t qid, rte_iova_t src,
+ rte_iova_t dst, unsigned int length, uint64_t flags);
+int idxd_enqueue_fill(struct rte_dma_dev *dev, uint16_t qid, uint64_t pattern,
+ rte_iova_t dst, unsigned int length, uint64_t flags);
+int idxd_submit(struct rte_dma_dev *dev, uint16_t qid);
#endif /* _IDXD_INTERNAL_H_ */
diff --git a/drivers/dma/idxd/meson.build b/drivers/dma/idxd/meson.build
index 36dbd3e518..acb1b10618 100644
--- a/drivers/dma/idxd/meson.build
+++ b/drivers/dma/idxd/meson.build
@@ -6,6 +6,7 @@ if is_windows
endif
deps += ['bus_pci']
+cflags += '-mavx2' # all platforms with idxd HW support AVX
sources = files(
'idxd_bus.c',
'idxd_common.c',
--
2.30.2
next prev parent reply other threads:[~2021-09-17 14:04 UTC|newest]
Thread overview: 243+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-27 17:20 [dpdk-dev] [PATCH 00/13] add dmadev driver for idxd devices Kevin Laatz
2021-08-27 17:20 ` [dpdk-dev] [PATCH 01/13] raw/ioat: only build if dmadev not present Kevin Laatz
2021-08-27 17:20 ` [dpdk-dev] [PATCH 02/13] doc: initial commit for dmadevs section Kevin Laatz
2021-08-27 17:20 ` [dpdk-dev] [PATCH 03/13] dma/idxd: add skeleton for VFIO based DSA device Kevin Laatz
2021-08-27 17:20 ` [dpdk-dev] [PATCH 04/13] dma/idxd: add bus device probing Kevin Laatz
2021-08-27 17:20 ` [dpdk-dev] [PATCH 05/13] dma/idxd: create dmadev instances on bus probe Kevin Laatz
2021-08-27 17:20 ` [dpdk-dev] [PATCH 06/13] dma/idxd: create dmadev instances on pci probe Kevin Laatz
2021-08-27 17:20 ` [dpdk-dev] [PATCH 07/13] dma/idxd: add datapath structures Kevin Laatz
2021-08-27 17:20 ` [dpdk-dev] [PATCH 08/13] dma/idxd: add configure and info_get functions Kevin Laatz
2021-08-27 17:20 ` [dpdk-dev] [PATCH 09/13] dma/idxd: add start and stop functions for pci devices Kevin Laatz
2021-08-27 17:20 ` [dpdk-dev] [PATCH 10/13] dma/idxd: add data-path job submission functions Kevin Laatz
2021-08-27 17:20 ` [dpdk-dev] [PATCH 11/13] dma/idxd: add data-path job completion functions Kevin Laatz
2021-08-27 17:20 ` [dpdk-dev] [PATCH 12/13] dma/idxd: add operation statistic tracking Kevin Laatz
2021-08-27 17:20 ` [dpdk-dev] [PATCH 13/13] dma/idxd: move dpdk_idxd_cfg.py from raw to dma Kevin Laatz
2021-09-03 10:49 ` [dpdk-dev] [PATCH v2 00/16] add dmadev driver for idxd devices Kevin Laatz
2021-09-03 10:49 ` [dpdk-dev] [PATCH v2 01/16] raw/ioat: only build if dmadev not present Kevin Laatz
2021-09-03 10:49 ` [dpdk-dev] [PATCH v2 02/16] doc: initial commit for dmadevs section Kevin Laatz
2021-09-03 10:51 ` Bruce Richardson
2021-09-03 10:49 ` [dpdk-dev] [PATCH v2 03/16] dma/idxd: add skeleton for VFIO based DSA device Kevin Laatz
2021-09-03 10:49 ` [dpdk-dev] [PATCH v2 04/16] dma/idxd: add bus device probing Kevin Laatz
2021-09-03 10:49 ` [dpdk-dev] [PATCH v2 05/16] dma/idxd: create dmadev instances on bus probe Kevin Laatz
2021-09-03 10:49 ` [dpdk-dev] [PATCH v2 06/16] dma/idxd: create dmadev instances on pci probe Kevin Laatz
2021-09-03 10:49 ` [dpdk-dev] [PATCH v2 07/16] dma/idxd: add datapath structures Kevin Laatz
2021-09-03 10:49 ` [dpdk-dev] [PATCH v2 08/16] dma/idxd: add configure and info_get functions Kevin Laatz
2021-09-03 10:49 ` [dpdk-dev] [PATCH v2 09/16] dma/idxd: add start and stop functions for pci devices Kevin Laatz
2021-09-03 10:49 ` [dpdk-dev] [PATCH v2 10/16] dma/idxd: add data-path job submission functions Kevin Laatz
2021-09-03 10:49 ` [dpdk-dev] [PATCH v2 11/16] dma/idxd: add data-path job completion functions Kevin Laatz
2021-09-03 10:49 ` [dpdk-dev] [PATCH v2 12/16] dma/idxd: add operation statistic tracking Kevin Laatz
2021-09-03 10:49 ` [dpdk-dev] [PATCH v2 13/16] dma/idxd: add vchan idle function Kevin Laatz
2021-09-03 10:49 ` [dpdk-dev] [PATCH v2 14/16] dma/idxd: move dpdk_idxd_cfg.py from raw to dma Kevin Laatz
2021-09-03 10:50 ` [dpdk-dev] [PATCH v2 15/16] devbind: add dma device class Kevin Laatz
2021-09-03 10:50 ` [dpdk-dev] [PATCH v2 16/16] devbind: move idxd device ID to dmadev class Kevin Laatz
2021-09-08 10:29 ` [dpdk-dev] [PATCH v3 00/17] add dmadev driver for idxd devices Kevin Laatz
2021-09-08 10:30 ` [dpdk-dev] [PATCH v3 01/17] raw/ioat: only build if dmadev not present Kevin Laatz
2021-09-08 16:00 ` Conor Walsh
2021-09-09 11:11 ` Kevin Laatz
2021-09-08 10:30 ` [dpdk-dev] [PATCH v3 02/17] doc: initial commit for dmadevs section Kevin Laatz
2021-09-08 16:00 ` Conor Walsh
2021-09-08 10:30 ` [dpdk-dev] [PATCH v3 03/17] dma/idxd: add skeleton for VFIO based DSA device Kevin Laatz
2021-09-08 16:47 ` Conor Walsh
2021-09-08 10:30 ` [dpdk-dev] [PATCH v3 04/17] dma/idxd: add bus device probing Kevin Laatz
2021-09-08 16:47 ` Conor Walsh
2021-09-09 11:10 ` Kevin Laatz
2021-09-15 10:12 ` Maxime Coquelin
2021-09-15 11:06 ` Bruce Richardson
2021-09-08 10:30 ` [dpdk-dev] [PATCH v3 05/17] dma/idxd: create dmadev instances on bus probe Kevin Laatz
2021-09-08 16:47 ` Conor Walsh
2021-09-08 10:30 ` [dpdk-dev] [PATCH v3 06/17] dma/idxd: create dmadev instances on pci probe Kevin Laatz
2021-09-08 16:48 ` Conor Walsh
2021-09-08 10:30 ` [dpdk-dev] [PATCH v3 07/17] dma/idxd: add datapath structures Kevin Laatz
2021-09-09 11:23 ` Conor Walsh
2021-09-08 10:30 ` [dpdk-dev] [PATCH v3 08/17] dma/idxd: add configure and info_get functions Kevin Laatz
2021-09-09 11:23 ` Conor Walsh
2021-09-08 10:30 ` [dpdk-dev] [PATCH v3 09/17] dma/idxd: add start and stop functions for pci devices Kevin Laatz
2021-09-09 11:24 ` Conor Walsh
2021-09-08 10:30 ` [dpdk-dev] [PATCH v3 10/17] dma/idxd: add data-path job submission functions Kevin Laatz
2021-09-09 11:24 ` Conor Walsh
2021-09-08 10:30 ` [dpdk-dev] [PATCH v3 11/17] dma/idxd: add data-path job completion functions Kevin Laatz
2021-09-09 11:24 ` Conor Walsh
2021-09-08 10:30 ` [dpdk-dev] [PATCH v3 12/17] dma/idxd: add operation statistic tracking Kevin Laatz
2021-09-09 11:25 ` Conor Walsh
2021-09-08 10:30 ` [dpdk-dev] [PATCH v3 13/17] dma/idxd: add vchan status function Kevin Laatz
2021-09-09 11:26 ` Conor Walsh
2021-09-08 10:30 ` [dpdk-dev] [PATCH v3 14/17] dma/idxd: add burst capacity API Kevin Laatz
2021-09-09 11:26 ` Conor Walsh
2021-09-08 10:30 ` [dpdk-dev] [PATCH v3 15/17] dma/idxd: move dpdk_idxd_cfg.py from raw to dma Kevin Laatz
2021-09-08 10:30 ` [dpdk-dev] [PATCH v3 16/17] devbind: add dma device class Kevin Laatz
2021-09-09 11:26 ` Conor Walsh
2021-09-08 10:30 ` [dpdk-dev] [PATCH v3 17/17] devbind: move idxd device ID to dmadev class Kevin Laatz
2021-09-09 11:27 ` Conor Walsh
2021-09-17 14:02 ` [dpdk-dev] [PATCH v4 00/16] add dmadev driver for idxd devices Kevin Laatz
2021-09-17 14:02 ` [dpdk-dev] [PATCH v4 01/16] raw/ioat: only build if dmadev not present Kevin Laatz
2021-09-17 14:02 ` [dpdk-dev] [PATCH v4 02/16] dma/idxd: add skeleton for VFIO based DSA device Kevin Laatz
2021-09-17 14:02 ` [dpdk-dev] [PATCH v4 03/16] dma/idxd: add bus device probing Kevin Laatz
2021-09-17 14:02 ` [dpdk-dev] [PATCH v4 04/16] dma/idxd: create dmadev instances on bus probe Kevin Laatz
2021-09-17 14:02 ` [dpdk-dev] [PATCH v4 05/16] dma/idxd: create dmadev instances on pci probe Kevin Laatz
2021-09-17 14:02 ` [dpdk-dev] [PATCH v4 06/16] dma/idxd: add datapath structures Kevin Laatz
2021-09-17 14:02 ` [dpdk-dev] [PATCH v4 07/16] dma/idxd: add configure and info_get functions Kevin Laatz
2021-09-17 14:02 ` [dpdk-dev] [PATCH v4 08/16] dma/idxd: add start and stop functions for pci devices Kevin Laatz
2021-09-17 14:02 ` Kevin Laatz [this message]
2021-09-17 14:02 ` [dpdk-dev] [PATCH v4 10/16] dma/idxd: add data-path job completion functions Kevin Laatz
2021-09-17 14:02 ` [dpdk-dev] [PATCH v4 11/16] dma/idxd: add operation statistic tracking Kevin Laatz
2021-09-17 14:02 ` [dpdk-dev] [PATCH v4 12/16] dma/idxd: add vchan status function Kevin Laatz
2021-09-17 14:02 ` [dpdk-dev] [PATCH v4 13/16] dma/idxd: add burst capacity API Kevin Laatz
2021-09-17 14:02 ` [dpdk-dev] [PATCH v4 14/16] dma/idxd: move dpdk_idxd_cfg.py from raw to dma Kevin Laatz
2021-09-17 14:02 ` [dpdk-dev] [PATCH v4 15/16] devbind: add dma device class Kevin Laatz
2021-09-17 14:02 ` [dpdk-dev] [PATCH v4 16/16] devbind: move idxd device ID to dmadev class Kevin Laatz
2021-09-17 15:24 ` [dpdk-dev] [PATCH v5 00/16] add dmadev driver for idxd devices Kevin Laatz
2021-09-17 15:24 ` [dpdk-dev] [PATCH v5 01/16] raw/ioat: only build if dmadev not present Kevin Laatz
2021-09-20 10:15 ` Bruce Richardson
2021-09-17 15:24 ` [dpdk-dev] [PATCH v5 02/16] dma/idxd: add skeleton for VFIO based DSA device Kevin Laatz
2021-09-20 10:23 ` Bruce Richardson
2021-09-17 15:24 ` [dpdk-dev] [PATCH v5 03/16] dma/idxd: add bus device probing Kevin Laatz
2021-09-17 15:24 ` [dpdk-dev] [PATCH v5 04/16] dma/idxd: create dmadev instances on bus probe Kevin Laatz
2021-09-22 2:04 ` fengchengwen
2021-09-22 9:12 ` Kevin Laatz
2021-09-17 15:24 ` [dpdk-dev] [PATCH v5 05/16] dma/idxd: create dmadev instances on pci probe Kevin Laatz
2021-09-22 2:12 ` fengchengwen
2021-09-22 9:18 ` Kevin Laatz
2021-09-17 15:24 ` [dpdk-dev] [PATCH v5 06/16] dma/idxd: add datapath structures Kevin Laatz
2021-09-17 15:24 ` [dpdk-dev] [PATCH v5 07/16] dma/idxd: add configure and info_get functions Kevin Laatz
2021-09-20 10:27 ` Bruce Richardson
2021-09-22 2:31 ` fengchengwen
2021-09-17 15:24 ` [dpdk-dev] [PATCH v5 08/16] dma/idxd: add start and stop functions for pci devices Kevin Laatz
2021-09-22 2:40 ` fengchengwen
2021-09-17 15:24 ` [dpdk-dev] [PATCH v5 09/16] dma/idxd: add data-path job submission functions Kevin Laatz
2021-09-20 10:30 ` Bruce Richardson
2021-09-22 3:22 ` fengchengwen
2021-09-17 15:24 ` [dpdk-dev] [PATCH v5 10/16] dma/idxd: add data-path job completion functions Kevin Laatz
2021-09-20 10:36 ` Bruce Richardson
2021-09-22 3:47 ` fengchengwen
2021-09-17 15:24 ` [dpdk-dev] [PATCH v5 11/16] dma/idxd: add operation statistic tracking Kevin Laatz
2021-09-22 3:51 ` fengchengwen
2021-09-17 15:24 ` [dpdk-dev] [PATCH v5 12/16] dma/idxd: add vchan status function Kevin Laatz
2021-09-17 15:24 ` [dpdk-dev] [PATCH v5 13/16] dma/idxd: add burst capacity API Kevin Laatz
2021-09-20 10:39 ` Bruce Richardson
2021-09-17 15:24 ` [dpdk-dev] [PATCH v5 14/16] dma/idxd: move dpdk_idxd_cfg.py from raw to dma Kevin Laatz
2021-09-20 10:43 ` Bruce Richardson
2021-09-17 15:24 ` [dpdk-dev] [PATCH v5 15/16] devbind: add dma device class Kevin Laatz
2021-09-20 10:45 ` Bruce Richardson
2021-09-22 2:19 ` fengchengwen
2021-09-17 15:24 ` [dpdk-dev] [PATCH v5 16/16] devbind: move idxd device ID to dmadev class Kevin Laatz
2021-09-20 10:46 ` Bruce Richardson
2021-09-24 13:39 ` [dpdk-dev] [PATCH v6 00/16] add dmadev driver for idxd devices Kevin Laatz
2021-09-24 13:39 ` [dpdk-dev] [PATCH v6 01/16] raw/ioat: only build if dmadev not present Kevin Laatz
2021-09-24 13:39 ` [dpdk-dev] [PATCH v6 02/16] dma/idxd: add skeleton for VFIO based DSA device Kevin Laatz
2021-09-24 13:39 ` [dpdk-dev] [PATCH v6 03/16] dma/idxd: add bus device probing Kevin Laatz
2021-09-24 13:39 ` [dpdk-dev] [PATCH v6 04/16] dma/idxd: create dmadev instances on bus probe Kevin Laatz
2021-09-24 13:39 ` [dpdk-dev] [PATCH v6 05/16] dma/idxd: create dmadev instances on pci probe Kevin Laatz
2021-09-24 13:39 ` [dpdk-dev] [PATCH v6 06/16] dma/idxd: add datapath structures Kevin Laatz
2021-09-24 13:39 ` [dpdk-dev] [PATCH v6 07/16] dma/idxd: add configure and info_get functions Kevin Laatz
2021-09-24 13:39 ` [dpdk-dev] [PATCH v6 08/16] dma/idxd: add start and stop functions for pci devices Kevin Laatz
2021-09-24 13:39 ` [dpdk-dev] [PATCH v6 09/16] dma/idxd: add data-path job submission functions Kevin Laatz
2021-09-24 13:39 ` [dpdk-dev] [PATCH v6 10/16] dma/idxd: add data-path job completion functions Kevin Laatz
2021-09-24 13:39 ` [dpdk-dev] [PATCH v6 11/16] dma/idxd: add operation statistic tracking Kevin Laatz
2021-09-24 13:39 ` [dpdk-dev] [PATCH v6 12/16] dma/idxd: add vchan status function Kevin Laatz
2021-09-24 13:39 ` [dpdk-dev] [PATCH v6 13/16] dma/idxd: add burst capacity API Kevin Laatz
2021-09-24 13:39 ` [dpdk-dev] [PATCH v6 14/16] dma/idxd: move dpdk_idxd_cfg.py from raw to dma Kevin Laatz
2021-09-24 13:39 ` [dpdk-dev] [PATCH v6 15/16] devbind: add dma device class Kevin Laatz
2021-09-24 13:39 ` [dpdk-dev] [PATCH v6 16/16] devbind: move idxd device ID to dmadev class Kevin Laatz
2021-10-13 16:30 ` [dpdk-dev] [PATCH v7 00/16] add dmadev driver for idxd devices Kevin Laatz
2021-10-13 16:30 ` [dpdk-dev] [PATCH v7 01/16] raw/ioat: only build if dmadev not present Kevin Laatz
2021-10-13 16:30 ` [dpdk-dev] [PATCH v7 02/16] dma/idxd: add skeleton for VFIO based DSA device Kevin Laatz
2021-10-18 10:32 ` Thomas Monjalon
2021-10-18 10:41 ` Kevin Laatz
2021-10-13 16:30 ` [dpdk-dev] [PATCH v7 03/16] dma/idxd: add bus device probing Kevin Laatz
2021-10-13 16:30 ` [dpdk-dev] [PATCH v7 04/16] dma/idxd: create dmadev instances on bus probe Kevin Laatz
2021-10-13 16:30 ` [dpdk-dev] [PATCH v7 05/16] dma/idxd: create dmadev instances on pci probe Kevin Laatz
2021-10-13 16:30 ` [dpdk-dev] [PATCH v7 06/16] dma/idxd: add datapath structures Kevin Laatz
2021-10-13 16:30 ` [dpdk-dev] [PATCH v7 07/16] dma/idxd: add configure and info_get functions Kevin Laatz
2021-10-13 16:30 ` [dpdk-dev] [PATCH v7 08/16] dma/idxd: add start and stop functions for pci devices Kevin Laatz
2021-10-13 16:30 ` [dpdk-dev] [PATCH v7 09/16] dma/idxd: add data-path job submission functions Kevin Laatz
2021-10-13 16:30 ` [dpdk-dev] [PATCH v7 10/16] dma/idxd: add data-path job completion functions Kevin Laatz
2021-10-13 16:30 ` [dpdk-dev] [PATCH v7 11/16] dma/idxd: add operation statistic tracking Kevin Laatz
2021-10-13 16:30 ` [dpdk-dev] [PATCH v7 12/16] dma/idxd: add vchan status function Kevin Laatz
2021-10-13 16:30 ` [dpdk-dev] [PATCH v7 13/16] dma/idxd: add burst capacity API Kevin Laatz
2021-10-13 16:30 ` [dpdk-dev] [PATCH v7 14/16] dma/idxd: move dpdk_idxd_cfg.py from raw to dma Kevin Laatz
2021-10-13 16:30 ` [dpdk-dev] [PATCH v7 15/16] devbind: add dma device class Kevin Laatz
2021-10-13 16:30 ` [dpdk-dev] [PATCH v7 16/16] devbind: move idxd device ID to dmadev class Kevin Laatz
2021-10-18 12:28 ` [dpdk-dev] [PATCH v8 00/16] add dmadev driver for idxd devices Kevin Laatz
2021-10-18 12:28 ` [dpdk-dev] [PATCH v8 01/16] raw/ioat: only build if dmadev not present Kevin Laatz
2021-10-18 12:28 ` [dpdk-dev] [PATCH v8 02/16] dma/idxd: add skeleton for VFIO based DSA device Kevin Laatz
2021-10-18 12:28 ` [dpdk-dev] [PATCH v8 03/16] dma/idxd: add bus device probing Kevin Laatz
2021-10-18 12:28 ` [dpdk-dev] [PATCH v8 04/16] dma/idxd: create dmadev instances on bus probe Kevin Laatz
2021-10-18 12:28 ` [dpdk-dev] [PATCH v8 05/16] dma/idxd: create dmadev instances on pci probe Kevin Laatz
2021-10-18 12:28 ` [dpdk-dev] [PATCH v8 06/16] dma/idxd: add datapath structures Kevin Laatz
2021-10-18 12:28 ` [dpdk-dev] [PATCH v8 07/16] dma/idxd: add configure and info_get functions Kevin Laatz
2021-10-18 12:28 ` [dpdk-dev] [PATCH v8 08/16] dma/idxd: add start and stop functions for pci devices Kevin Laatz
2021-10-18 12:28 ` [dpdk-dev] [PATCH v8 09/16] dma/idxd: add data-path job submission functions Kevin Laatz
2021-10-19 7:04 ` Thomas Monjalon
2021-10-18 12:28 ` [dpdk-dev] [PATCH v8 10/16] dma/idxd: add data-path job completion functions Kevin Laatz
2021-10-18 12:28 ` [dpdk-dev] [PATCH v8 11/16] dma/idxd: add operation statistic tracking Kevin Laatz
2021-10-18 12:28 ` [dpdk-dev] [PATCH v8 12/16] dma/idxd: add vchan status function Kevin Laatz
2021-10-18 12:28 ` [dpdk-dev] [PATCH v8 13/16] dma/idxd: add burst capacity API Kevin Laatz
2021-10-18 12:28 ` [dpdk-dev] [PATCH v8 14/16] dma/idxd: move dpdk_idxd_cfg.py from raw to dma Kevin Laatz
2021-10-18 12:28 ` [dpdk-dev] [PATCH v8 15/16] devbind: add dma device class Kevin Laatz
2021-10-18 12:28 ` [dpdk-dev] [PATCH v8 16/16] devbind: move idxd device ID to dmadev class Kevin Laatz
2021-10-19 11:25 ` [dpdk-dev] [PATCH v9 00/16] add dmadev driver for idxd devices Kevin Laatz
2021-10-19 11:25 ` [dpdk-dev] [PATCH v9 01/16] raw/ioat: only build if dmadev not present Kevin Laatz
2021-10-19 11:25 ` [dpdk-dev] [PATCH v9 02/16] dma/idxd: add skeleton for VFIO based DSA device Kevin Laatz
2021-10-19 11:25 ` [dpdk-dev] [PATCH v9 03/16] dma/idxd: add bus device probing Kevin Laatz
2021-10-19 11:25 ` [dpdk-dev] [PATCH v9 04/16] dma/idxd: create dmadev instances on bus probe Kevin Laatz
2021-10-19 11:25 ` [dpdk-dev] [PATCH v9 05/16] dma/idxd: create dmadev instances on pci probe Kevin Laatz
2021-10-19 11:25 ` [dpdk-dev] [PATCH v9 06/16] dma/idxd: add datapath structures Kevin Laatz
2021-10-19 11:25 ` [dpdk-dev] [PATCH v9 07/16] dma/idxd: add configure and info_get functions Kevin Laatz
2021-10-19 11:25 ` [dpdk-dev] [PATCH v9 08/16] dma/idxd: add start and stop functions for pci devices Kevin Laatz
2021-10-19 11:25 ` [dpdk-dev] [PATCH v9 09/16] dma/idxd: add data-path job submission functions Kevin Laatz
2021-10-19 11:25 ` [dpdk-dev] [PATCH v9 10/16] dma/idxd: add data-path job completion functions Kevin Laatz
2021-10-19 11:25 ` [dpdk-dev] [PATCH v9 11/16] dma/idxd: add operation statistic tracking Kevin Laatz
2021-10-19 11:25 ` [dpdk-dev] [PATCH v9 12/16] dma/idxd: add vchan status function Kevin Laatz
2021-10-19 11:25 ` [dpdk-dev] [PATCH v9 13/16] dma/idxd: add burst capacity API Kevin Laatz
2021-10-19 11:25 ` [dpdk-dev] [PATCH v9 14/16] dma/idxd: move dpdk_idxd_cfg.py from raw to dma Kevin Laatz
2021-10-19 11:25 ` [dpdk-dev] [PATCH v9 15/16] devbind: add dma device class Kevin Laatz
2021-10-19 11:25 ` [dpdk-dev] [PATCH v9 16/16] devbind: move idxd device ID to dmadev class Kevin Laatz
2021-10-19 14:10 ` [dpdk-dev] [PATCH v10 00/16] add dmadev driver for idxd devices Kevin Laatz
2021-10-19 14:10 ` [dpdk-dev] [PATCH v10 01/16] raw/ioat: only build if dmadev not present Kevin Laatz
2021-10-19 14:10 ` [dpdk-dev] [PATCH v10 02/16] dma/idxd: add skeleton for VFIO based DSA device Kevin Laatz
2021-10-19 14:10 ` [dpdk-dev] [PATCH v10 03/16] dma/idxd: add bus device probing Kevin Laatz
2021-10-20 6:54 ` fengchengwen
2021-10-19 14:10 ` [dpdk-dev] [PATCH v10 04/16] dma/idxd: create dmadev instances on bus probe Kevin Laatz
2021-10-20 7:10 ` fengchengwen
2021-10-19 14:10 ` [dpdk-dev] [PATCH v10 05/16] dma/idxd: create dmadev instances on pci probe Kevin Laatz
2021-10-20 7:34 ` fengchengwen
2021-10-19 14:10 ` [dpdk-dev] [PATCH v10 06/16] dma/idxd: add datapath structures Kevin Laatz
2021-10-20 7:44 ` fengchengwen
2021-10-20 8:20 ` Bruce Richardson
2021-10-19 14:10 ` [dpdk-dev] [PATCH v10 07/16] dma/idxd: add configure and info_get functions Kevin Laatz
2021-10-20 7:54 ` fengchengwen
2021-10-19 14:10 ` [dpdk-dev] [PATCH v10 08/16] dma/idxd: add start and stop functions for pci devices Kevin Laatz
2021-10-20 8:04 ` fengchengwen
2021-10-19 14:10 ` [dpdk-dev] [PATCH v10 09/16] dma/idxd: add data-path job submission functions Kevin Laatz
2021-10-20 8:27 ` fengchengwen
2021-10-19 14:10 ` [dpdk-dev] [PATCH v10 10/16] dma/idxd: add data-path job completion functions Kevin Laatz
2021-10-19 14:10 ` [dpdk-dev] [PATCH v10 11/16] dma/idxd: add operation statistic tracking Kevin Laatz
2021-10-20 9:18 ` fengchengwen
2021-10-19 14:10 ` [dpdk-dev] [PATCH v10 12/16] dma/idxd: add vchan status function Kevin Laatz
2021-10-20 9:30 ` fengchengwen
2021-10-20 9:52 ` Bruce Richardson
2021-10-19 14:10 ` [dpdk-dev] [PATCH v10 13/16] dma/idxd: add burst capacity API Kevin Laatz
2021-10-20 9:32 ` fengchengwen
2021-10-19 14:10 ` [dpdk-dev] [PATCH v10 14/16] dma/idxd: move dpdk_idxd_cfg.py from raw to dma Kevin Laatz
2021-10-19 14:10 ` [dpdk-dev] [PATCH v10 15/16] devbind: add dma device class Kevin Laatz
2021-10-19 14:10 ` [dpdk-dev] [PATCH v10 16/16] devbind: move idxd device ID to dmadev class Kevin Laatz
2021-10-20 16:29 ` [dpdk-dev] [PATCH v11 00/16] add dmadev driver for idxd devices Kevin Laatz
2021-10-20 16:29 ` [dpdk-dev] [PATCH v11 01/16] raw/ioat: only build if dmadev not present Kevin Laatz
2021-10-20 16:29 ` [dpdk-dev] [PATCH v11 02/16] dma/idxd: add skeleton for VFIO based DSA device Kevin Laatz
2021-10-22 15:47 ` Thomas Monjalon
2021-10-20 16:30 ` [dpdk-dev] [PATCH v11 03/16] dma/idxd: add bus device probing Kevin Laatz
2021-10-20 16:30 ` [dpdk-dev] [PATCH v11 04/16] dma/idxd: create dmadev instances on bus probe Kevin Laatz
2021-10-20 16:30 ` [dpdk-dev] [PATCH v11 05/16] dma/idxd: create dmadev instances on pci probe Kevin Laatz
2021-10-20 16:30 ` [dpdk-dev] [PATCH v11 06/16] dma/idxd: add datapath structures Kevin Laatz
2021-10-20 16:30 ` [dpdk-dev] [PATCH v11 07/16] dma/idxd: add configure and info_get functions Kevin Laatz
2021-10-20 16:30 ` [dpdk-dev] [PATCH v11 08/16] dma/idxd: add start and stop functions for pci devices Kevin Laatz
2021-10-20 16:30 ` [dpdk-dev] [PATCH v11 09/16] dma/idxd: add data-path job submission functions Kevin Laatz
2021-10-20 16:30 ` [dpdk-dev] [PATCH v11 10/16] dma/idxd: add data-path job completion functions Kevin Laatz
2021-10-20 16:30 ` [dpdk-dev] [PATCH v11 11/16] dma/idxd: add operation statistic tracking Kevin Laatz
2021-10-20 16:30 ` [dpdk-dev] [PATCH v11 12/16] dma/idxd: add vchan status function Kevin Laatz
2021-10-20 16:30 ` [dpdk-dev] [PATCH v11 13/16] dma/idxd: add burst capacity API Kevin Laatz
2021-10-20 16:30 ` [dpdk-dev] [PATCH v11 14/16] dma/idxd: move dpdk_idxd_cfg.py from raw to dma Kevin Laatz
2021-10-20 16:30 ` [dpdk-dev] [PATCH v11 15/16] devbind: add dma device class Kevin Laatz
2021-10-20 16:30 ` [dpdk-dev] [PATCH v11 16/16] devbind: move idxd device ID to dmadev class Kevin Laatz
2021-10-22 18:07 ` [dpdk-dev] [PATCH v11 00/16] add dmadev driver for idxd devices Thomas Monjalon
2021-10-23 6:55 ` David Marchand
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=20210917140252.2999006-10-kevin.laatz@intel.com \
--to=kevin.laatz@intel.com \
--cc=bruce.richardson@intel.com \
--cc=conor.walsh@intel.com \
--cc=dev@dpdk.org \
--cc=fengchengwen@huawei.com \
--cc=jerinj@marvell.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).