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",