Commit d8db5622 authored by paul luse's avatar paul luse Committed by Ben Walker
Browse files

doc: add IDXD docs and changelog entry



The IOAT docs are pretty limited so what's here just mirrors those.
More documentation on the library as well as the module will be
provided as an ongoing activity.

Signed-off-by: default avatarpaul luse <paul.e.luse@intel.com>
Change-Id: I28b13733f034fe117a4ea21983ce0418a427dd51
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1925


Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent 58bd4948
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -8,6 +8,23 @@ Legacy INI style configuration for SPDK applications has been deprecated and wil
removed in future release.
Please switch to JSON-RPC configuration files and/or RPC driven run-time configuration.

### idxd

IDXD support was added in the form of a low level library that can directly
utilize the IDXD offload engine as well as an accel plug-in module allowing for use
with the generic accel framework API. IDXD is the first in a family of offload
engines that share the same interface, specifically DSA is added here. More info
can be found here: https://01.org/blogs/2019/introducing-intel-data-streaming-accelerator

Much of the implementation models IOAT, however their low level interfaces are very
different. The RPC to enable IDXD requires a configuration number as well. The
code includes 2 pre-defined configurations of IDXD groups/work queues/engines. A future
version will provide an interface to allow for setting of individual configuration
parameters.

IDXD is not yet available so this feature should be considered experimental. It will
be built up with additional documentation as an ongoing activity.

### ocf

Update OCF submodule to OCF v20.03
+1 −0
Original line number Diff line number Diff line
@@ -814,6 +814,7 @@ INPUT += \
                         ftl.md \
                         gdb_macros.md \
                         getting_started.md \
                         idxd.md \
                         ioat.md \
                         iscsi.md \
                         jsonrpc.md \
+1 −0
Original line number Diff line number Diff line
@@ -2,5 +2,6 @@

- @subpage nvme
- @subpage ioat
- @subpage idxd
- @subpage virtio
- @subpage vmd

doc/idxd.md

0 → 100644
+21 −0
Original line number Diff line number Diff line
# IDXD Driver {#idxd}

# Public Interface {#idxd_interface}

- spdk/idxd.h

# Key Functions {#idxd_key_functions}

Function                                | Description
--------------------------------------- | -----------
spdk_idxd_probe()                       | @copybrief spdk_idxd_probe()
spdk_idxd_submit_copy()                 | @copybrief spdk_idxd_submit_copy()
spdk_idxd_submit_fill()                 | @copybrief spdk_idxd_submit_fill()

# Pre-defined configurations {#idxd_configs}

The RPC `idxd_scan_accel_engine` is used to both enable IDXD and set it's
configuration to one of two pre-defined configs:

Config #0: 4 groups, 1 work queue per group, 1 engine per group.
Config #1: 2 groups, 2 work queues per group, 2 engines per group.
+1 −0
Original line number Diff line number Diff line
@@ -280,6 +280,7 @@ Example response:
    "framework_monitor_context_switch",
    "spdk_kill_instance",
    "ioat_scan_accel_engine",
    "idxd_scan_accel_engine",
    "bdev_virtio_attach_controller",
    "bdev_virtio_scsi_get_devices",
    "bdev_virtio_detach_controller",