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)
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.
To ensure the SPDK NVMe-oF target has the best performance, configure the RNICs, NVMe
devices, and the core assigned to the NVMe-oF subsystem to all be located on the same NUMA node.
The following parameters are used to control which CPU cores SPDK executes on:
To ensure the SPDK NVMe-oF target has the best performance, configure the RNICs and NVMe devices to
be located on the same NUMA node. The following parameters in the configuration file
are used to configure SPDK NVMe-oF target:
**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,
@ -148,9 +148,8 @@ to assign lcores 24,25,26 and 27 to NVMe-oF work items, set the ReactorMask to:
ReactorMask 0xF000000
~~~
**Assign each Subsystem to a CPU core:** This is accomplished by specifying the "Core" value in
the [Subsystem] section of the configuration file. For example,
to assign the Subsystems to lcores 25 and 26:
**Subsystem configuration:** the [Subsystem] section in the configuration file is used to configure
subysystems for the NVMe-oF target.
~~~{.sh}
[Nvme]
TransportID "trtype:PCIe traddr:0000:02:00.0" Nvme0
@ -158,7 +157,6 @@ TransportID "trtype:PCIe traddr:0000:82:00.0" Nvme1
[Subsystem1]
NQN nqn.2016-06.io.spdk:cnode1
Core 25
Listen RDMA 192.168.100.8:4420
AllowAnyHost No
Host nqn.2016-06.io.spdk:init
@ -167,16 +165,13 @@ Namespace Nvme0n1 1
[Subsystem2]
NQN nqn.2016-06.io.spdk:cnode2
Core 26
Listen RDMA 192.168.100.9:4420
AllowAnyHost Yes
SN SPDK00000000000002
Namespace Nvme1n1 1
~~~
SPDK executes all code for an NVMe-oF subsystem on a single thread. Different subsystems may execute
on different threads. SPDK gives the user maximum control to determine how many CPU cores are used
to execute subsystems. Configuring different subsystems to execute on different CPU cores prevents
the subsystem data from being evicted from limited CPU cache space.
SPDK spreads the execution of requests for a single subsystem across all available cores
in a round-robin manner.
## Emulating an NVMe controller {#nvmf_config_virtual_controller}
@ -194,7 +189,6 @@ available as NSID 1 and 2:
# Virtual controller
[Subsystem2]
NQN nqn.2016-06.io.spdk:cnode2
Core 0
Listen RDMA 192.168.2.21:4420
AllowAnyHost No
Host nqn.2016-06.io.spdk:init