doc/nvmf: Update NVMe-oF target user guide.

Reason: Core binding is not supported in NVMe-OF
subsystem anymore.

Change-Id: I92a876bf1a150b7833ebb049f3284e589f187edc
Signed-off-by: Ziye Yang <optimistyzy@gmail.com>
Reviewed-on: https://review.gerrithub.io/392914
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Ziye Yang 2017-12-25 21:00:21 +08:00 committed by Daniel Verkamp
parent fe8138cebb
commit 3dc37c4316

View File

@ -137,9 +137,9 @@ nvme disconnect -n "nqn.2016-06.io.spdk:cnode1"
SPDK uses the [DPDK Environment Abstraction Layer](http://dpdk.org/doc/guides/prog_guide/env_abstraction_layer.html) SPDK uses the [DPDK Environment Abstraction Layer](http://dpdk.org/doc/guides/prog_guide/env_abstraction_layer.html)
to gain access to hardware resources such as huge memory pages and CPU core(s). DPDK EAL provides to gain access to hardware resources such as huge memory pages and CPU core(s). DPDK EAL provides
functions to assign threads to specific cores. functions to assign threads to specific cores.
To ensure the SPDK NVMe-oF target has the best performance, configure the RNICs, NVMe To ensure the SPDK NVMe-oF target has the best performance, configure the RNICs and NVMe devices to
devices, and the core assigned to the NVMe-oF subsystem to all be located on the same NUMA node. be located on the same NUMA node. The following parameters in the configuration file
The following parameters are used to control which CPU cores SPDK executes on: are used to configure SPDK NVMe-oF target:
**ReactorMask:** A hexadecimal bit mask of the CPU cores that SPDK is allowed to execute work **ReactorMask:** A hexadecimal bit mask of the CPU cores that SPDK is allowed to execute work
items on. The ReactorMask is located in the [Global] section of the configuration file. For example, items on. The ReactorMask is located in the [Global] section of the configuration file. For example,
@ -148,9 +148,8 @@ to assign lcores 24,25,26 and 27 to NVMe-oF work items, set the ReactorMask to:
ReactorMask 0xF000000 ReactorMask 0xF000000
~~~ ~~~
**Assign each Subsystem to a CPU core:** This is accomplished by specifying the "Core" value in **Subsystem configuration:** the [Subsystem] section in the configuration file is used to configure
the [Subsystem] section of the configuration file. For example, subysystems for the NVMe-oF target.
to assign the Subsystems to lcores 25 and 26:
~~~{.sh} ~~~{.sh}
[Nvme] [Nvme]
TransportID "trtype:PCIe traddr:0000:02:00.0" Nvme0 TransportID "trtype:PCIe traddr:0000:02:00.0" Nvme0
@ -158,7 +157,6 @@ TransportID "trtype:PCIe traddr:0000:82:00.0" Nvme1
[Subsystem1] [Subsystem1]
NQN nqn.2016-06.io.spdk:cnode1 NQN nqn.2016-06.io.spdk:cnode1
Core 25
Listen RDMA 192.168.100.8:4420 Listen RDMA 192.168.100.8:4420
AllowAnyHost No AllowAnyHost No
Host nqn.2016-06.io.spdk:init Host nqn.2016-06.io.spdk:init
@ -167,16 +165,13 @@ Namespace Nvme0n1 1
[Subsystem2] [Subsystem2]
NQN nqn.2016-06.io.spdk:cnode2 NQN nqn.2016-06.io.spdk:cnode2
Core 26
Listen RDMA 192.168.100.9:4420 Listen RDMA 192.168.100.9:4420
AllowAnyHost Yes AllowAnyHost Yes
SN SPDK00000000000002 SN SPDK00000000000002
Namespace Nvme1n1 1 Namespace Nvme1n1 1
~~~ ~~~
SPDK executes all code for an NVMe-oF subsystem on a single thread. Different subsystems may execute SPDK spreads the execution of requests for a single subsystem across all available cores
on different threads. SPDK gives the user maximum control to determine how many CPU cores are used in a round-robin manner.
to execute subsystems. Configuring different subsystems to execute on different CPU cores prevents
the subsystem data from being evicted from limited CPU cache space.
## Emulating an NVMe controller {#nvmf_config_virtual_controller} ## Emulating an NVMe controller {#nvmf_config_virtual_controller}
@ -194,7 +189,6 @@ available as NSID 1 and 2:
# Virtual controller # Virtual controller
[Subsystem2] [Subsystem2]
NQN nqn.2016-06.io.spdk:cnode2 NQN nqn.2016-06.io.spdk:cnode2
Core 0
Listen RDMA 192.168.2.21:4420 Listen RDMA 192.168.2.21:4420
AllowAnyHost No AllowAnyHost No
Host nqn.2016-06.io.spdk:init Host nqn.2016-06.io.spdk:init