mbox series

[v7,00/12] dma: add dmadev driver for ioat devices

Message ID 20211014094902.489159-1-conor.walsh@intel.com (mailing list archive)
Headers
Series dma: add dmadev driver for ioat devices |

Message

Conor Walsh Oct. 14, 2021, 9:48 a.m. UTC
  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:
 - v26 of the dmadev set [1]
 - v7 of the dmadev test suite [2]
 - v7 of the IDXD driver [3]

[1] http://patches.dpdk.org/project/dpdk/list/?series=19594
[2] http://patches.dpdk.org/project/dpdk/list/?series=19599
[3] http://patches.dpdk.org/project/dpdk/list/?series=19603

---

v7:
 - Minor rework to update from v23 to v26 of the dmadev lib.

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.

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            | 127 +++++
 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         | 748 +++++++++++++++++++++++++
 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              |   7 +-
 13 files changed, 1257 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