a741e34180
For NVMe devices, in conjunction with the new batching options, it can be advantageous to artificially delay between polling for completions. Add an option to slow this rate down. Change-Id: I0fc92709ff45ead0beb388dda60694bf1ed8b258 Signed-off-by: Ben Walker <benjamin.walker@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/447716 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
242 lines
8.4 KiB
Plaintext
242 lines
8.4 KiB
Plaintext
# NVMf Target Configuration File
|
|
#
|
|
# Please write all parameters using ASCII.
|
|
# The parameter must be quoted if it includes whitespace.
|
|
#
|
|
# Configuration syntax:
|
|
# Leading whitespace is ignored.
|
|
# Lines starting with '#' are comments.
|
|
# Lines ending with '\' are concatenated with the next line.
|
|
# Bracketed ([]) names define sections
|
|
|
|
[Global]
|
|
# Tracepoint group mask for spdk trace buffers
|
|
# Default: 0x0 (all tracepoint groups disabled)
|
|
# Set to 0xFFFF to enable all tracepoint groups.
|
|
#TpointGroupMask 0x0
|
|
|
|
# PciBlacklist and PciWhitelist cannot be used at the same time
|
|
#PciBlacklist 0000:01:00.0
|
|
#PciBlacklist 0000:02:00.0
|
|
#PciWhitelist 0000:03:00.0
|
|
#PciWhitelist 0000:04:00.0
|
|
|
|
# Users may activate entries in this section to override default values for
|
|
# global parameters in the block device (bdev) subsystem.
|
|
[Bdev]
|
|
# Number of spdk_bdev_io structures allocated in the global bdev subsystem pool.
|
|
#BdevIoPoolSize 65536
|
|
|
|
# Maximum number of spdk_bdev_io structures to cache per thread.
|
|
#BdevIoCacheSize 256
|
|
|
|
# Users may change this section to create a different number or size of
|
|
# malloc LUNs.
|
|
# This will generate 8 LUNs with a malloc-allocated backend.
|
|
# Each LUN will be size 64MB and these will be named
|
|
# Malloc0 through Malloc7. Not all LUNs defined here are necessarily
|
|
# used below.
|
|
[Malloc]
|
|
NumberOfLuns 8
|
|
LunSizeInMB 64
|
|
|
|
# Users must change this section to match the /dev/sdX devices to be
|
|
# exported as iSCSI LUNs. The devices are accessed using Linux AIO.
|
|
# The format is:
|
|
# AIO <file name> <bdev name>
|
|
# The file name is the backing device
|
|
# The bdev name can be referenced from elsewhere in the configuration file.
|
|
# Block size may be omitted to automatically detect the block size of a disk.
|
|
[AIO]
|
|
AIO /dev/sdb AIO0
|
|
AIO /dev/sdc AIO1
|
|
AIO /tmp/myfile AIO2 4096
|
|
|
|
# PMDK libpmemblk-based block device
|
|
[Pmem]
|
|
# Syntax:
|
|
# Blk <pmemblk pool file name> <bdev name>
|
|
Blk /path/to/pmem-pool Pmem0
|
|
|
|
# Define NVMf protocol global options
|
|
[Nvmf]
|
|
# Set how often the acceptor polls for incoming connections. The acceptor is also
|
|
# responsible for polling existing connections that have gone idle. 0 means continuously
|
|
# poll. Units in microseconds.
|
|
AcceptorPollRate 10000
|
|
|
|
# One valid transport type must be set in each [Transport].
|
|
# The first is the case of RDMA transport and the second is the case of TCP transport.
|
|
[Transport]
|
|
# Set RDMA transport type.
|
|
Type RDMA
|
|
|
|
# Set the maximum number of outstanding I/O per queue.
|
|
#MaxQueueDepth 128
|
|
|
|
# Set the maximum number of submission and completion queues per session.
|
|
# Setting this to '8', for example, allows for 8 submission and 8 completion queues
|
|
# per session.
|
|
#MaxQueuesPerSession 4
|
|
|
|
# Set the maximum in-capsule data size. Must be a multiple of 16.
|
|
# 0 is a valid choice.
|
|
#InCapsuleDataSize 4096
|
|
|
|
# Set the maximum I/O size. Must be a multiple of 4096.
|
|
#MaxIOSize 131072
|
|
|
|
# Set the I/O unit size, and this value should not be larger than MaxIOSize
|
|
#IOUnitSize 131072
|
|
|
|
# Set the maximum number of IO for admin queue
|
|
#MaxAQDepth 32
|
|
|
|
# Set the number of pooled data buffers available to the transport
|
|
# It is used to provide the read/write data buffers for the qpairs on this transport.
|
|
#NumSharedBuffers 512
|
|
|
|
# Set the number of shared buffers to be cached per poll group
|
|
#BufCacheSize 32
|
|
|
|
# Set the maximum number outstanding I/O per shared receive queue. Relevant only for RDMA transport
|
|
#MaxSRQDepth 4096
|
|
|
|
[Transport]
|
|
# Set TCP transport type.
|
|
Type TCP
|
|
|
|
# Set the maximum number of outstanding I/O per queue.
|
|
#MaxQueueDepth 128
|
|
|
|
# Set the maximum number of submission and completion queues per session.
|
|
# Setting this to '8', for example, allows for 8 submission and 8 completion queues
|
|
# per session.
|
|
#MaxQueuesPerSession 4
|
|
|
|
# Set the maximum in-capsule data size. Must be a multiple of 16.
|
|
# 0 is a valid choice.
|
|
#InCapsuleDataSize 4096
|
|
|
|
# Set the maximum I/O size. Must be a multiple of 4096.
|
|
#MaxIOSize 131072
|
|
|
|
# Set the I/O unit size, and this value should not be larger than MaxIOSize
|
|
#IOUnitSize 131072
|
|
|
|
# Set the maximum number of IO for admin queue
|
|
#MaxAQDepth 32
|
|
|
|
# Set the number of pooled data buffers available to the transport
|
|
# It is used to provide the read/write data buffers for the qpairs on this transport.
|
|
#NumSharedBuffers 512
|
|
|
|
# Set the number of shared buffers to be cached per poll group
|
|
#BufCacheSize 32
|
|
|
|
[Nvme]
|
|
# NVMe Device Whitelist
|
|
# Users may specify which NVMe devices to claim by their transport id.
|
|
# See spdk_nvme_transport_id_parse() in spdk/nvme.h for the correct format.
|
|
# The second argument is the assigned name, which can be referenced from
|
|
# other sections in the configuration file. For NVMe devices, a namespace
|
|
# is automatically appended to each name in the format <YourName>nY, where
|
|
# Y is the NSID (starts at 1).
|
|
TransportID "trtype:PCIe traddr:0000:00:00.0" Nvme0
|
|
TransportID "trtype:PCIe traddr:0000:01:00.0" Nvme1
|
|
TransportID "trtype:PCIe traddr:0000:02:00.0" Nvme2
|
|
TransportID "trtype:PCIe traddr:0000:03:00.0" Nvme3
|
|
TransportID "trtype:RDMA adrfam:IPv4 traddr:192.168.100.8 trsvcid:4420 hostaddr:192.168.100.9 subnqn:nqn.2016-06.io.spdk:cnode1" Nvme4
|
|
TransportID "trtype:TCP adrfam:IPv4 traddr:192.168.100.3 trsvcid:4420 hostaddr:192.168.100.4 subnqn:nqn.2016-06.io.spdk:cnode2" Nvme5
|
|
|
|
# The number of attempts per I/O when an I/O fails. Do not include
|
|
# this key to get the default behavior.
|
|
RetryCount 4
|
|
# Timeout for each command, in microseconds. If 0, don't track timeouts.
|
|
TimeoutUsec 0
|
|
# Action to take on command time out. Only valid when Timeout is greater
|
|
# than 0. This may be 'Reset' to reset the controller, 'Abort' to abort
|
|
# the command, or 'None' to just print a message but do nothing.
|
|
# Admin command timeouts will always result in a reset.
|
|
ActionOnTimeout None
|
|
# Set how often the admin queue is polled for asynchronous events.
|
|
# Units in microseconds.
|
|
AdminPollRate 100000
|
|
# Set how often I/O queues are polled from completions.
|
|
# Units in microseconds.
|
|
IOPollRate 0
|
|
|
|
# Disable handling of hotplug (runtime insert and remove) events,
|
|
# users can set to Yes if want to enable it.
|
|
# Default: No
|
|
HotplugEnable No
|
|
|
|
# The Split virtual block device slices block devices into multiple smaller bdevs.
|
|
[Split]
|
|
# Syntax:
|
|
# Split <bdev> <count> [<size_in_megabytes>]
|
|
|
|
# Split Malloc2 into two equally-sized portions, Malloc2p0 and Malloc2p1
|
|
Split Malloc2 2
|
|
|
|
# Split Malloc3 into eight 1-megabyte portions, Malloc3p0 ... Malloc3p7,
|
|
# leaving the rest of the device inaccessible
|
|
Split Malloc3 8 1
|
|
|
|
# The RAID virtual block device based on pre-configured block device.
|
|
[RAID1]
|
|
# Unique name of this RAID device.
|
|
Name Raid0
|
|
# RAID level, only raid level 0 is supported.
|
|
RaidLevel 0
|
|
# Strip size in KB.
|
|
StripSize 64
|
|
# Number of pre-configured bdevs.
|
|
NumDevices 2
|
|
# Pre-configured bdevs name.
|
|
Devices Nvme2n1 Nvme3n1
|
|
|
|
# Define an NVMf Subsystem.
|
|
# - NQN is required and must be unique.
|
|
# - Between 1 and 255 Listen directives are allowed. This defines
|
|
# the addresses on which new connections may be accepted. The format
|
|
# is Listen <type> <address> where type currently can only be RDMA.
|
|
# - Between 0 and 255 Host directives are allowed. This defines the
|
|
# NQNs of allowed hosts. If no Host directive is specified, all hosts
|
|
# are allowed to connect.
|
|
# - Between 0 and 255 Namespace directives are allowed. These define the
|
|
# namespaces accessible from this subsystem.
|
|
# The user must specify MaxNamespaces to allow for adding namespaces
|
|
# during active connection. By default it is 0
|
|
# The user must specify a bdev name for each namespace, and may optionally
|
|
# specify a namespace ID. If nsid is omitted, the namespace will be
|
|
# assigned the next available NSID. The NSID must be unique within the
|
|
# subsystem. An optional namespace UUID may also be specified.
|
|
# Syntax:
|
|
# Namespace <bdev_name> [<nsid> [<uuid>]]
|
|
|
|
# Namespaces backed by physical NVMe devices
|
|
[Subsystem1]
|
|
NQN nqn.2016-06.io.spdk:cnode1
|
|
Listen TCP 15.15.15.2:4420
|
|
AllowAnyHost No
|
|
Host nqn.2016-06.io.spdk:init
|
|
SN SPDK00000000000001
|
|
MaxNamespaces 20
|
|
Namespace Nvme0n1 1
|
|
Namespace Nvme1n1 2
|
|
Namespace Raid0
|
|
|
|
# Multiple subsystems are allowed.
|
|
# Namespaces backed by non-NVMe devices
|
|
[Subsystem2]
|
|
NQN nqn.2016-06.io.spdk:cnode2
|
|
Listen RDMA 192.168.2.21:4420
|
|
AllowAnyHost No
|
|
Host nqn.2016-06.io.spdk:init
|
|
SN SPDK00000000000002
|
|
Namespace Malloc0
|
|
Namespace Malloc1
|
|
Namespace AIO0
|
|
Namespace AIO1
|