Spdk/doc
Konrad Sztyber b2454dfbcc accel: introduce platform drivers
The goal of a platform driver is to execute chained accel operations in
the most efficient way possible.  A driver is aware of the hardware
available on a platform and can execute several operations as a single
one.  For instance, if we want to do DMA and then encrypt the data, the
driver can do both at the same time, if the hardware is capable of doing
that.

Platform drivers aren't required to support all operations.  If a given
operation cannot be executed, the driver should notify accel to continue
processing a sequence, via spdk_accel_sequence_continue(), and that
operation will processed by a module assigned to its opcode.

It is required however, that all platform drivers support memory
domains, including the "virtual" accel domain.  A method for allocating
those buffers will be added in the following patches.

This patch only adds methods to register and select platorm drivers, but
doesn't change the way a sequnce is executed (i.e. it doesn't use the
driver to execute it).

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I97a0b07e264601ab3cf980735319fe8cea54d38e
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16375
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2023-02-13 13:52:06 +00:00
..
img doc: describe ublk target in user guide 2023-01-26 20:59:22 +00:00
.gitignore doc: add output directory to .gitignore 2018-06-19 07:15:50 +00:00
about.md Fix Markdown MD026 linter warnings - trailing punctuation in header 2020-02-17 10:07:21 +00:00
accel_fw.md module/accel: Add accel_dpdk_cryptodev 2023-01-11 09:16:59 +00:00
applications.md trace: update trace help inside SPDK target 2022-09-27 19:41:17 +00:00
bdev_module.md bdev: implement claims v2 2023-02-09 11:20:34 +00:00
bdev_pg.md bdev: Add spdk_for_each_bdev/bdev_leaf for clean up and further improvements 2022-04-05 07:30:47 +00:00
bdev.md bdev_gpt: add new SPDK partition type for off-by-one fix 2023-01-24 17:19:35 +00:00
bdevperf.md doc: cleanup bdevperf.py 2022-06-20 09:56:52 +00:00
blob.md doc/blob: replace htmlonly graphic with ASCII art 2022-02-02 08:25:02 +00:00
blobfs.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
ci_tools.md doc: Add page describing OS distros used by the CI 2021-09-20 10:48:56 +00:00
compression.md markdownlint: enable rule MD040 2021-09-08 21:53:48 +00:00
concepts.md doc: Add concept page on submitting I/O to an NVMe device 2019-05-09 04:33:19 +00:00
concurrency.md doc: mention SPDK spinlocks in concurrency.md 2022-12-21 09:34:34 +00:00
containers.md doc/container: display spdk-docker-suite in doc 2022-03-09 08:01:38 +00:00
distributions.md doc/distributions: update doc according to the recent changes 2022-10-13 07:51:32 +00:00
Doxyfile doc: describe ublk target in user guide 2023-01-26 20:59:22 +00:00
driver_modules.md doc: add IDXD docs and changelog entry 2020-04-23 15:48:32 +00:00
event.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
footer.html doc: simplify HTML header and stylesheet 2017-04-28 13:13:48 -07:00
ftl.md doc/ftl.md: fix ftl_l2p reference 2022-12-16 09:21:04 +00:00
gdb_macros.md misc: Fix spelling mistakes 2022-12-09 08:16:18 +00:00
general.md doc: added scheduler framework documentation 2021-01-29 18:21:13 +00:00
getting_started.md doc: user --recursive in directions for cloning SPDK repo 2022-10-14 08:35:38 +00:00
header.html doc: Remove mobile responsiveness 2018-12-10 15:56:50 +00:00
idxd.md doc/idxd: update idxd docs regarding configs 2022-05-23 19:51:23 +00:00
index.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
intro.md deprecation: add a file to gather all deprecation notices 2021-04-26 06:55:03 +00:00
ioat.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
iscsi.md spelling: doc 2021-11-30 09:05:19 +00:00
jsonrpc_proxy.md markdownlint: enable rule MD040 2021-09-08 21:53:48 +00:00
jsonrpc.md accel: introduce platform drivers 2023-02-13 13:52:06 +00:00
libraries.md spelling: doc 2021-11-30 09:05:19 +00:00
lvol.md markdownlint: enable rule MD040 2021-09-08 21:53:48 +00:00
Makefile add Intel copyright notices (and/or SPDX lic) where missing 2022-11-10 08:28:53 +00:00
memory.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
misc.md doc/rpms: add reference to rpms doc page 2021-06-22 23:47:52 +00:00
notify.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
nvme_multipath.md doc/nvme_multipath: Suggest transport_ack_timeout for fast error detection 2022-09-21 07:52:44 +00:00
nvme_spec.md doc: correct explanation of NVMe SQ command submission 2021-01-25 12:52:08 +00:00
nvme.md doc: nvme-cuse is no longer experimental 2023-01-30 08:13:01 +00:00
nvmf_multipath_howto.md bdevperf: promote bdevperf from test to example application 2022-11-16 09:52:41 +00:00
nvmf_tgt_pg.md lib/nvmf: remove deprecated API 2021-03-18 14:43:08 +00:00
nvmf_tracing.md doc/nvmf_tracing: update some nvmf_trace lines according the latest codes 2022-09-09 12:58:21 +00:00
nvmf.md doc: user --recursive in directions for cloning SPDK repo 2022-10-14 08:35:38 +00:00
overview.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
peer_2_peer.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
performance_reports.md doc: add 22.09 NVMe-oF RDMA performance report link 2022-11-30 08:41:39 +00:00
pkgconfig.md markdownlint: enable rule MD040 2021-09-08 21:53:48 +00:00
porting.md markdownlint: enable rule MD046 2021-09-08 21:53:48 +00:00
prog_guides.md doc/notify: add missing links about notify 2019-05-07 06:11:45 +00:00
README.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
rpm.md doc/rpm: Add information about new functionality 2022-01-05 09:24:59 +00:00
scheduler.md scheduler.md: update static scheduler description 2022-10-21 07:33:06 +00:00
shfmt.md doc/shfmt: Add note about minimal version of Bash 2021-11-10 23:11:41 +00:00
sma.md doc/sma: update interface file dir 2023-01-19 17:31:39 +00:00
spdk_top.md docs/spdk_top: add a note about scheduler pop-up 2022-12-13 09:26:29 +00:00
spdkcli.md doc: cleanup spdkcli.py 2022-06-20 09:56:52 +00:00
ssd_internals.md doc: Rename directory_structure.md to overview.md 2019-05-09 04:33:19 +00:00
stylesheet.css doc: Remove mobile responsiveness 2018-12-10 15:56:50 +00:00
system_configuration.md spelling: doc 2021-11-30 09:05:19 +00:00
template_pg.md spelling: doc 2021-11-30 09:05:19 +00:00
tools.md test: remove spdk/nvme-cli references 2021-01-04 16:28:01 +00:00
two.min.js doc: Add license header to two.js source 2018-08-06 16:27:58 +00:00
ublk.md doc: describe ublk target in user guide 2023-01-26 20:59:22 +00:00
usdt.md doc/usdt: update build section 2022-08-29 10:50:20 +00:00
user_guides.md doc: describe ublk target in user guide 2023-01-26 20:59:22 +00:00
userspace.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
vagrant.md misc: Fix spelling mistakes 2022-12-09 08:16:18 +00:00
vhost_processing.md doc/vhost: update Vhost-user link and terminology 2022-08-16 07:21:00 +00:00
vhost.md doc: fix typo in vhost document 2022-11-21 12:01:05 +00:00
virtio.md markdownlint: enable rule MD025 2021-08-26 19:27:22 +00:00
vmd.md vmd: rename enable_vmd RPC to vmd_enable 2022-09-01 08:48:32 +00:00

SPDK Documentation

The current version of the SPDK documentation can be found online at http://www.spdk.io/doc/

Building the Documentation

To convert the documentation into HTML run make in the doc directory. The output will be located in doc/output/html. Before running make ensure all pre-requisites are installed. See Installing Prerequisites for more details.