From d8db56228f03e09f42f33cbd963fb27d0c97440d Mon Sep 17 00:00:00 2001 From: paul luse Date: Fri, 17 Apr 2020 16:13:05 +0000 Subject: [PATCH] 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: paul luse Change-Id: I28b13733f034fe117a4ea21983ce0418a427dd51 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1925 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Shuhei Matsumoto Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- CHANGELOG.md | 17 +++++++++++++++++ doc/Doxyfile | 1 + doc/driver_modules.md | 1 + doc/idxd.md | 21 +++++++++++++++++++++ doc/jsonrpc.md | 1 + 5 files changed, 41 insertions(+) create mode 100644 doc/idxd.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 37eb6b03f..fb7845cdc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/doc/Doxyfile b/doc/Doxyfile index d62b3a8c8..89de37d05 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -814,6 +814,7 @@ INPUT += \ ftl.md \ gdb_macros.md \ getting_started.md \ + idxd.md \ ioat.md \ iscsi.md \ jsonrpc.md \ diff --git a/doc/driver_modules.md b/doc/driver_modules.md index 19e73ec07..d1054fe35 100644 --- a/doc/driver_modules.md +++ b/doc/driver_modules.md @@ -2,5 +2,6 @@ - @subpage nvme - @subpage ioat +- @subpage idxd - @subpage virtio - @subpage vmd diff --git a/doc/idxd.md b/doc/idxd.md new file mode 100644 index 000000000..088efb001 --- /dev/null +++ b/doc/idxd.md @@ -0,0 +1,21 @@ +# 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. diff --git a/doc/jsonrpc.md b/doc/jsonrpc.md index 078cd981d..4ad2dc108 100644 --- a/doc/jsonrpc.md +++ b/doc/jsonrpc.md @@ -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",