doc: Make the application command page an application overview
Add a brief section outlining what applications are available. Also word-wrap and do some minor grammar corrections on the rest of the text in the document. Change-Id: I4a3064e7a47e09a28a7b998955768f54a8a9cf9a Signed-off-by: Ben Walker <benjamin.walker@intel.com> Reviewed-on: https://review.gerrithub.io/421551 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
abfdb70d04
commit
fb5e59bde6
@ -795,6 +795,7 @@ INPUT = ../include/spdk \
|
|||||||
performance_reports.md \
|
performance_reports.md \
|
||||||
\
|
\
|
||||||
about.md \
|
about.md \
|
||||||
|
applications.md \
|
||||||
changelog.md \
|
changelog.md \
|
||||||
concurrency.md \
|
concurrency.md \
|
||||||
directory_structure.md \
|
directory_structure.md \
|
||||||
@ -818,7 +819,6 @@ INPUT = ../include/spdk \
|
|||||||
peer_2_peer.md \
|
peer_2_peer.md \
|
||||||
spdkcli.md \
|
spdkcli.md \
|
||||||
ssd_internals.md \
|
ssd_internals.md \
|
||||||
user_guides_common.md \
|
|
||||||
userspace.md \
|
userspace.md \
|
||||||
vagrant.md \
|
vagrant.md \
|
||||||
vhost.md \
|
vhost.md \
|
||||||
|
@ -1,12 +1,28 @@
|
|||||||
# Configuring SPDK Applications {#user_guides_common}
|
# An Overview of SPDK Applications {#app_overview}
|
||||||
|
|
||||||
# Overview {#user_guides_common_overview}
|
SPDK is primarily a development kit that delivers libraries and header files for
|
||||||
|
use in other applications. However, SPDK also contains a number of applications.
|
||||||
|
These applications are primarily used to test the libraries, but many are full
|
||||||
|
featured and high quality. The major applications in SPDK are:
|
||||||
|
|
||||||
This guide covers topics common to all applications that leverage SPDK's application framework.
|
- @ref iscsi
|
||||||
|
- @ref nvmf
|
||||||
|
- @ref vhost
|
||||||
|
- SPDK Target (a unified application combining the above three)
|
||||||
|
|
||||||
## Command Line Parameters {#common_cmd_line_args}
|
There are also a number of tools and examples in the `examples` directory.
|
||||||
|
|
||||||
The SPDK application framework defines a set of base command line flags for all applications that use it. Specific applications may implement additional flags.
|
The SPDK targets are all based on a common framework so they have much in
|
||||||
|
common. The framework defines a concept called a `subsystem` and all
|
||||||
|
functionality is implemented in various subsystems. Subsystems have a unified
|
||||||
|
initialization and teardown path.
|
||||||
|
|
||||||
|
# Configuring SPDK Applications {#app_config}
|
||||||
|
|
||||||
|
## Command Line Parameters {#app_cmd_line_args}
|
||||||
|
|
||||||
|
The SPDK application framework defines a set of base command line flags for all
|
||||||
|
applications that use it. Specific applications may implement additional flags.
|
||||||
|
|
||||||
Param | Type | Default | Description
|
Param | Type | Default | Description
|
||||||
-------- | -------- | ---------------------- | -----------
|
-------- | -------- | ---------------------- | -----------
|
||||||
@ -31,42 +47,51 @@ Param | Type | Default | Description
|
|||||||
|
|
||||||
### Configuration file {#cmd_arg_config_file}
|
### Configuration file {#cmd_arg_config_file}
|
||||||
|
|
||||||
Historically, the SPDK application framework was configured using a configuration file. This is still supported, but is
|
Historically, the SPDK applications were configured using a configuration file.
|
||||||
considered deprecated in favor of JSON RPC configuration. See @ref jsonrpc for details.
|
This is still supported, but is considered deprecated in favor of JSON RPC
|
||||||
|
configuration. See @ref jsonrpc for details.
|
||||||
|
|
||||||
Note that `-c` and `-w` cannot be used at the same time.
|
Note that `-c` and `-w` cannot be used at the same time.
|
||||||
|
|
||||||
### Deferred initialization {#cmd_arg_deferred_initialization}
|
### Deferred initialization {#cmd_arg_deferred_initialization}
|
||||||
|
|
||||||
SPDK applications progress through a set of states, including `STARTUP` and `RUNTIME`.
|
SPDK applications progress through a set of states beginning with `STARTUP` and
|
||||||
|
ending with `RUNTIME`.
|
||||||
|
|
||||||
If `-w` parameter is provided SPDK will pause just before starting subsystem initialization. This state is called `STARTUP`.
|
If the `-w` parameter is provided SPDK will pause just before starting subsystem
|
||||||
The JSON RPC server is ready but list of commands is limited to only those that are needed to set application global parameters.
|
initialization. This state is called `STARTUP`. The JSON RPC server is ready but
|
||||||
Those parameters can't be changed after SPDK application enters `RUNTIME` state. When client finishes preconfiguring SPDK subsystems
|
only a small subsystem of commands are available to set up initialization
|
||||||
it needs to issue @ref rpc_start_subsystem_init RPC command to continue initialization process. After `rpc_start_subsystem_init`
|
parameters. Those parameters can't be changed after the SPDK application enters
|
||||||
returns `true` the SPDK will enter `RUNTIME` state and list of available commands will change again. From now on SPDK is ready
|
`RUNTIME` state. When the client finishes configuring the SPDK subsystems it
|
||||||
for further configuration.
|
needs to issue the @ref rpc_start_subsystem_init RPC command to begin the
|
||||||
|
initialization process. After `rpc_start_subsystem_init` returns `true` SPDK
|
||||||
|
will enter the `RUNTIME` state and the list of available commands becomes much
|
||||||
|
larger.
|
||||||
|
|
||||||
To know what RPC methods are valid in current state issue `get_rpc_methods` with parameter `current` set to `true`.
|
To see which RPC methods are available in the current state, issue the
|
||||||
|
`get_rpc_methods` with the parameter `current` set to `true`.
|
||||||
|
|
||||||
For more details see @ref jsonrpc documentation.
|
For more details see @ref jsonrpc documentation.
|
||||||
|
|
||||||
### Disable PCI access {#cmd_arg_disable_pci_access}
|
### Disable PCI access {#cmd_arg_disable_pci_access}
|
||||||
|
|
||||||
If SPDK is run with PCI access disabled it won't detect any PCI devices, including NVMe, IOAT, NICs etc. Also VFIO and UIO
|
If SPDK is run with PCI access disabled it won't detect any PCI devices. This
|
||||||
kernel modules are not needed anymore.
|
includes primarily NVMe and IOAT devices. Also, the VFIO and UIO kernel modules
|
||||||
|
are not required in this mode.
|
||||||
|
|
||||||
### PCI address blacklist and whitelist {#cmd_arg_pci_blacklist_whitelist}
|
### PCI address blacklist and whitelist {#cmd_arg_pci_blacklist_whitelist}
|
||||||
|
|
||||||
Note that `-B` and `-W` cannot be used at the same time.
|
Note that `-B` and `-W` cannot be used at the same time.
|
||||||
|
|
||||||
If blacklist is used all devices with provided PCI address will be ignored. If whitelist is used only those
|
If a blacklist is used all devices with the provided PCI address will be
|
||||||
devices will be probed. You can used `-B` or `-W` more than once to add more than one device to list.
|
ignored. If a whitelist is used only those devices will be probed. You can used
|
||||||
|
`-B` or `-W` more than once to add more than one device to list.
|
||||||
|
|
||||||
### Debug log flags {#cmd_arg_debug_log_flags}
|
### Debug log flags {#cmd_arg_debug_log_flags}
|
||||||
|
|
||||||
Use comma separated list of flags or use `-L all` to enable all debug flags. Run SPDK application with `-h` to get a list
|
Use a comma separated list of flags or use `-L all` to enable all debug flags.
|
||||||
of all valid flags. Debug flags are only available in debug builds of SPDK.
|
Run SPDK application with `-h` to get a list of all valid flags. Debug flags are
|
||||||
|
only available in debug builds of SPDK.
|
||||||
|
|
||||||
## CPU mask {#cpu_mask}
|
## CPU mask {#cpu_mask}
|
||||||
|
|
||||||
@ -75,7 +100,6 @@ Whenever the `CPU mask` is mentioned it is a string in one of the following form
|
|||||||
- Case insensitive hexadecimal string with or without "0x" prefix.
|
- Case insensitive hexadecimal string with or without "0x" prefix.
|
||||||
- Comma separated list of CPUs or list of CPU ranges. Use '-' to define range.
|
- Comma separated list of CPUs or list of CPU ranges. Use '-' to define range.
|
||||||
|
|
||||||
|
|
||||||
### Example
|
### Example
|
||||||
|
|
||||||
The following CPU masks are equal and correspond to CPUs 0, 1, 2, 8, 9, 10, 11 and 12:
|
The following CPU masks are equal and correspond to CPUs 0, 1, 2, 8, 9, 10, 11 and 12:
|
@ -1,6 +1,6 @@
|
|||||||
# User Guides {#user_guides}
|
# User Guides {#user_guides}
|
||||||
|
|
||||||
- @subpage user_guides_common
|
- @subpage app_overview
|
||||||
- @subpage iscsi
|
- @subpage iscsi
|
||||||
- @subpage nvmf
|
- @subpage nvmf
|
||||||
- @subpage vhost
|
- @subpage vhost
|
||||||
|
Loading…
Reference in New Issue
Block a user