/spdk/test/spdkcli/ |
H A D | nvmf.sh | 35 '/nvmf/subsystem create nqn.2014-08.org.spdk:cnode1 N37SXV509SRW\ 36 max_namespaces=4 allow_any_host=True' 'nqn.2014-08.org.spdk:cnode1' True 37 '/nvmf/subsystem/nqn.2014-08.org.spdk:cnode1/namespaces create Malloc3 1' 'Malloc3' True 38 '/nvmf/subsystem/nqn.2014-08.org.spdk:cnode1/namespaces create Malloc4 2' 'Malloc4' True 39 '/nvmf/subsystem/nqn.2014-08.org.spdk:cnode1/listen_addresses create \ 41 '/nvmf/subsystem create nqn.2014-08.org.spdk:cnode2 N37SXV509SRD\ 42 max_namespaces=2 allow_any_host=True' 'nqn.2014-08.org.spdk:cnode2' True 43 '/nvmf/subsystem/nqn.2014-08.org.spdk:cnode2/namespaces create Malloc2' 'Malloc2' True 44 '/nvmf/subsystem/nqn.2014-08.org.spdk:cnode2/listen_addresses create \ 46 '/nvmf/subsystem create nqn.2014-08.org.spdk:cnode3 N37SXV509SRR\ [all …]
|
/spdk/ |
H A D | README.md | 3 …ps://img.shields.io/github/license/spdk/spdk?style=flat-square&color=blue&label=License)](https://… 4 [](https://travis-ci.org/spdk/spd… 5 …tps://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/spdk/spdk/go/rpc) 6 …ttps://goreportcard.com/badge/github.com/spdk/spdk/go/rpc)](https://goreportcard.com/report/github… 8 NOTE: The SPDK mailing list has moved to a new location. Please visit 9 [this URL](https://lists.linuxfoundation.org/mailman/listinfo/spdk) to subscribe 13 The Storage Performance Development Kit ([SPDK](http://www.spdk.io)) provides a set of tools 22 * [NVMe driver](http://www.spdk.io/doc/nvme.html) 23 * [I/OAT (DMA engine) driver](http://www.spdk.io/doc/ioat.html) 24 * [NVMe over Fabrics target](http://www.spdk.io/doc/nvmf.html) [all …]
|
/spdk/doc/ |
H A D | backporting.md | 3 In SPDK updating supported versions, other than the latest `master`, is carried out through 8 ## How to backport to other SPDK maintained branches {#backporting_other_branches} 19 [a4a0462](https://review.spdk.io/gerrit/c/spdk/spdk/+/17093) is a good example: `23.01` and `23.05` 27 [a4a0462](https://review.spdk.io/gerrit/c/spdk/spdk/+/17093) and its backport 28 [62b467b](https://review.spdk.io/gerrit/c/spdk/spdk/+/18981) are a good example, 45 In SPDK there is a script automating above process to some degree. It is located in 55 SPDK uses forks of other repositories as submodules. This is done for two reasons: 57 * to disable components that are unnecessary for SPDK to work, 63 ### 1. Enter SPDK directory and update master branch 78 git branch -c spdk-23.07 spdk-23.07-copy; git checkout spdk-23.07-copy [all …]
|
H A D | blobfs.md | 7 Clone and build the SPDK repository as per https://github.com/spdk/spdk 10 git clone https://github.com/spdk/spdk.git 11 cd spdk 16 Clone the RocksDB repository from the SPDK GitHub fork into a separate directory. 21 git clone -b 6.15.fb https://github.com/spdk/rocksdb.git 28 make db_bench SPDK_DIR=relative_path/to/spdk 34 export USE_RTTI=1 && make db_bench DEBUG_LEVEL=0 SPDK_DIR=relative_path/to/spdk 37 Create an NVMe section in the configuration file using SPDK's `gen_nvme.sh` script. 40 scripts/gen_nvme.sh --json-with-subsystems > /usr/local/etc/spdk/rocksdb.json 44 If there are any NVMe SSDs you do not wish to use for RocksDB/SPDK testing, remove them from the co… [all …]
|
H A D | overview.md | 1 # SPDK Structural Overview {#overview} 5 SPDK is composed of a set of C libraries residing in `lib` with public interface 6 header files in `include/spdk`, plus a set of applications built out of those 8 the full SPDK applications. 10 SPDK is designed around message passing instead of locking, and most of the SPDK 12 application they are embedded into. However, SPDK goes to great lengths to remain 14 threading framework actually in use. To accomplish this, all SPDK libraries 16 `include/spdk/thread.h`). Any framework can initialize the threading abstraction 17 and provide callbacks to implement the functionality that the SPDK libraries 20 SPDK is built on top of POSIX for most operations. To make porting to non-POSIX [all …]
|
H A D | usdt.md | 12 against a running SPDK application. Here is a typical usage: 19 probe description. SPDK bpftrace scripts can be written with an __EXE__ 24 based on the PID of the SPDK application. SPDK bpftrace scripts can be 28 ## Configuring SPDK Build 34 ## Start SPDK application and bpftrace script 56 nvmf_create_subsystem nqn.2016-06.io.spdk:cnode1 -a -s SPDK00000000000001 -m 10 57 nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t tcp -a 127.0.0.1 -s 4420 59 nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 null0 80 2189.921492: nqn.2016-06.io.spdk:cnode1 change state from INACTIVE to ACTIVE start 81 2189.952508: nqn.2016-06.io.spdk:cnode1 on thread 2 state to ACTIVE start [all …]
|
H A D | containers.md | 1 # SPDK and Containers {#containers} 4 SPDK. As new usages are identified and tested, they will be documented 13 ## Containerizing an SPDK Application for Docker {#spdk_in_docker} 15 There are no SPDK specific changes needed to run an SPDK based application in 17 containerize your SPDK based application. 59 - If you are using the SPDK app framework: `-v /dev/shm:/dev/shm` 67 Starting SPDK v20.01-pre git sha1 80da95481 // DPDK 19.11.0 initialization... 81 ## SPDK Docker suite {#spdk_docker_suite} 83 When considering how to generate SPDK docker container images formally, 84 deploy SPDK containers correctly, interact with SPDK container instances, [all …]
|
H A D | libraries.md | 1 # SPDK Libraries {#libraries} 3 The SPDK repository is, first and foremost, a collection of high-performance 7 (`lib` and `module`) inside of the SPDK repository in a deliberate way to prevent 8 mixing of SPDK event framework dependent code and lower level libraries. This document 14 The SPDK libraries are divided into two directories. The `lib` directory contains the base librarie… 15 compose SPDK. Some of these base libraries define plug-in systems. Instances of those plug-ins are … 41 care has been taken to keep the SPDK libraries independent from this framework. The libraries in `l… 82 The SPDK libraries follow strict conventions for naming functions, logging, versioning, and header … 86 All public SPDK header files exist in the `include` directory of the SPDK repository. These headers 89 `include/spdk` contains headers intended to be used by consumers of the SPDK libraries. All of the [all …]
|
H A D | nvmf_multipath_howto.md | 3 This HOWTO provides step-by-step instructions for setting-up a simple SPDK deployment and testing m… 7 ## Build SPDK on both the initiator and target servers 11 git clone https://github.com/spdk/spdk --recursive 14 Configure and build SPDK: 16 cd spdk/ 25 cd spdk/ 29 ## On target: start and configure SPDK 33 cd spdk/ 40 ./scripts/rpc.py nvmf_create_subsystem nqn.2022-02.io.spdk:cnode0 -a -s SPDK00000000000001 -r 46 ./scripts/rpc.py nvmf_subsystem_add_ns nqn.2022-02.io.spdk:cnode0 Malloc0 [all …]
|
H A D | gdb_macros.md | 5 When debugging an spdk application using gdb we may need to view data structures 40 SPDK object of type struct spdk_bdev at 0x7f7dcc1642a8 46 SPDK object of type struct spdk_bdev at 0x7f7dcc216008 52 SPDK object of type struct spdk_bdev at 0x7f7dcc2c7c08 65 SPDK object of type struct spdk_bdev at 0x7f7dcc1642a8 70 Printing spdk threads: 75 SPDK object of type struct spdk_thread at 0x7fffd0008b50 79 SPDK object of type struct spdk_io_channel at 0x7fffd0052610 86 SPDK object of type struct spdk_io_channel at 0x7fffd0056cd0 93 SPDK object of type struct spdk_io_channel at 0x7fffd00582e0 [all …]
|
H A D | rpm.md | 8 ## Building SPDK RPMs {#building_rpms} 10 To build basic set of RPM packages out of the SPDK repo simply run: 29 - SPDK_VERSION - SPDK version. Default: currently checked out tag 47 /root/rpmbuild/RPMS/x86_64/spdk-devel-v21.01-1.x86_64.rpm 48 /root/rpmbuild/RPMS/x86_64/spdk-dpdk-libs-v21.01-1.x86_64.rpm 49 /root/rpmbuild/RPMS/x86_64/spdk-libs-v21.01-1.x86_64.rpm 50 /root/rpmbuild/RPMS/x86_64/spdk-v21.01-1.x86_64.rpm 54 - spdk - provides all the binaries, common tooling, etc. 55 - spdk-devel - provides development files 56 - spdk-libs - provides target lib, .pc files (--with-shared) [all …]
|
H A D | system_configuration.md | 3 This system configuration guide describes how to configure a system for use with SPDK. 8 recommended that SPDK applications are deployed with the `vfio-pci` kernel driver. SPDK's 20 …ug where `uio_pci_generic` [fails to bind to NVMe drives](https://github.com/spdk/spdk/issues/399). 24 ## Running SPDK as non-privileged user {#system_configuration_nonroot} 35 A good idea is to create a new mount specifically for SPDK: 39 # mount -t hugetlbfs -o uid=spdk,size=<value> none /mnt/spdk_hugetlbfs 42 Then start SPDK applications with an additional parameter `--huge-dir /mnt/spdk_hugetlbfs` 82 To give the user `spdk` full access to the VFIO IOMMU group 5 and all its 86 # chown spdk /dev/vfio/5 91 As soon as the first device is attached to SPDK, all of SPDK memory will be [all …]
|
/spdk/test/nvmf/target/ |
H A D | rpc.sh | 52 $rpc_py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode1 -a -s $NVMF_SERIAL 53 $rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 Malloc1 54 $rpc_py nvmf_subsystem_allow_any_host -d nqn.2016-06.io.spdk:cnode1 55 $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TA… 58 NOT $NVME_CONNECT "${NVME_HOST[@]}" -t $TEST_TRANSPORT -n nqn.2016-06.io.spdk:cnode1 -q "$NVME_HOST… 61 $rpc_py nvmf_subsystem_add_host nqn.2016-06.io.spdk:cnode1 "$NVME_HOSTNQN" 62 $NVME_CONNECT "${NVME_HOST[@]}" -t $TEST_TRANSPORT -n nqn.2016-06.io.spdk:cnode1 -a "$NVMF_FIRST_TA… 64 nvme disconnect -n nqn.2016-06.io.spdk:cnode1 68 $rpc_py nvmf_subsystem_remove_host nqn.2016-06.io.spdk:cnode1 "$NVME_HOSTNQN" 69 NOT $NVME_CONNECT "${NVME_HOST[@]}" -t $TEST_TRANSPORT -n nqn.2016-06.io.spdk:cnode1 -a "$NVMF_FIRS… [all …]
|
H A D | tls.sh | 53 $rpc_py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode1 -s SPDK00000000000001 -m 10 54 $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT \ 57 $rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 malloc0 -n 1 59 $rpc_py nvmf_subsystem_add_host nqn.2016-06.io.spdk:cnode1 nqn.2016-06.io.spdk:host1 \ 140 subnqn:nqn.2016-06.io.spdk:cnode1 hostnqn:nqn.2016-06.io.spdk:host1" \ 144 run_bdevperf nqn.2016-06.io.spdk:cnode1 nqn.2016-06.io.spdk:host1 "$key_path" 147 NOT run_bdevperf nqn.2016-06.io.spdk [all...] |
/spdk/scripts/vagrant/ |
H A D | README.md | 1 # SPDK Vagrant and VirtualBox 3 The following guide explains how to use the scripts in the `spdk/scripts/vagrant`. Mac, Windows, an… 78 ## Download SPDK from GitHub 80 Use git to clone a new spdk repository. GerritHub can also be used. See the instructions at 81 [spdk.io](http://www.spdk.io/development/#gerrithub) to setup your GerritHub account. Note that thi… 86 Use the `spdk/scripts/vagrant/create_vbox.sh` script to create a VM of your choice. Supported VM p… 97 $ spdk/scripts/vagrant/create_vbox.sh -h 110 -l use a local copy of spdk, don't try to rsync from the host. 111 -d deploy a test vm by provisioning all prerequisites for spdk autotest 123 It is recommended that you call the `create_vbox.sh` script from outside of the spdk repository. [all …]
|
H A D | local.conf | 10 TEMPEST_VOLUME_DRIVER=spdk 27 default_volume_type = SPDK 28 enabled_backends = spdk 29 target_helper = spdk-nvmeof 32 [spdk] 40 target_helper = spdk-nvmeof 41 target_prefix = nqn.2014-08.org.spdk 42 volume_driver = cinder.volume.drivers.spdk.SPDKDriver 43 volume_backend_name = SPDK
|
/spdk/test/sma/ |
H A D | vfiouser_qemu.sh | 68 vm_exec $1 "grep -sl SPDK /sys/class/nvme/*/model || true" | wc -l 120 -device pci-bridge,chassis_nr=1,id=pci.spdk.0 \ 121 -device pci-bridge,chassis_nr=2,id=pci.spdk.1" 127 # Start SPDK 150 - name: 'pci.spdk.0' 152 - name: 'pci.spdk.1' 173 rpc_cmd nvmf_get_subsystems nqn.2016-06.io.spdk:vfiouser-0 174 vm_check_subsys_nqn $vm_no nqn.2016-06.io.spdk:vfiouser-0 180 rpc_cmd nvmf_get_subsystems nqn.2016-06.io.spdk:vfiouser-0 181 rpc_cmd nvmf_get_subsystems nqn.2016-06.io.spdk:vfiouser-1 [all …]
|
H A D | nvmf_tcp.sh | 95 devid0=$(create_device nqn.2016-06.io.spdk:cnode0 | jq -r '.handle') 96 rpc_cmd nvmf_get_subsystems nqn.2016-06.io.spdk:cnode0 98 devid1=$(create_device nqn.2016-06.io.spdk:cnode1 | jq -r '.handle') 99 rpc_cmd nvmf_get_subsystems nqn.2016-06.io.spdk:cnode0 100 rpc_cmd nvmf_get_subsystems nqn.2016-06.io.spdk:cnode1 108 tmp0=$(create_device nqn.2016-06.io.spdk:cnode0 | jq -r '.handle') 109 tmp1=$(create_device nqn.2016-06.io.spdk:cnode1 | jq -r '.handle') 117 NOT rpc_cmd nvmf_get_subsystems nqn.2016-06.io.spdk:cnode0 121 NOT rpc_cmd nvmf_get_subsystems nqn.2016-06.io.spdk:cnode1 129 devid0=$(create_device nqn.2016-06.io.spdk:cnode0 | jq -r '.handle') [all …]
|
/spdk/rpmbuild/ |
H A D | spdk.spec | 15 Name: spdk 20 # This is a minimal set of requirements needed for SPDK apps to run when built with 45 URL: https://spdk.io 46 Source: spdk-%{version}.tar.gz 50 The Storage Performance Development Kit (SPDK) provides a set of tools and libraries for 92 # SPDK always builds static, so remove it if we want shared. 118 # And some useful setup scripts SPDK uses 119 mkdir -p %{buildroot}/usr/libexec/spdk 125 cat <<-EOF > %{buildroot}/etc/ld.so.conf.d/spdk.conf 133 PATH=$PATH:/usr/libexec/spdk/scripts [all …]
|
/spdk/docker/ |
H A D | docker-compose.yaml | 8 image: spdk 13 image: spdk-app 15 context: spdk-app 20 spdk: 24 - ./spdk-app/storage-target.conf:/config 29 image: spdk-app 31 context: spdk-app 36 spdk: 40 - ./spdk-app/proxy-container.conf:/config 53 spdk: [all …]
|
H A D | README.md | 1 # SPDK Docker suite 3 This suite is meant to serve as an example of how SPDK can be encapsulated 4 into docker container images. The example containers consist of SPDK NVMe-oF 5 target sharing devices to another SPDK NVMe-oF application. Which serves 35 `docker-compose.yaml` shows an example deployment of the storage containers based on SPDK. 44 The `build_base` image provides the core components required to containerize SPDK 45 …he Fedora Container Registry is used and then SPDK is installed. SPDK is installed out of `build_b… 50 - storage-target: Contains SPDK NVMe-oF target exposing single subsystem to `proxy-container` based… 52 - traffic-generator-nvme: Contains FIO using SPDK plugin to connect to `proxy-container` and runs a… 53 - traffic-generator-virtio: Contains FIO using SPDK plugin to connect to `proxy-container` and runs… [all …]
|
/spdk/include/spdk_internal/ |
H A D | usdt.h | 9 #include "spdk/config.h" 10 #include "spdk/env.h" 20 #define SPDK_DTRACE_PROBE(name) DTRACE_PROBE1(spdk,name,0) 21 #define SPDK_DTRACE_PROBE1(name,a1) DTRACE_PROBE2(spdk,name,0,a1) 22 #define SPDK_DTRACE_PROBE2(name,a1,a2) DTRACE_PROBE3(spdk,name,0,a1,a2) 23 #define SPDK_DTRACE_PROBE3(name,a1,a2,a3) DTRACE_PROBE4(spdk,name,0,a1,a2,a3) 24 #define SPDK_DTRACE_PROBE4(name,a1,a2,a3,a4) DTRACE_PROBE5(spdk,name,0,a1,a2,a3,a4) 28 * USDT events with those captured by the lower-overhead SPDK tracing framework. 30 #define SPDK_DTRACE_PROBE_TICKS(name) DTRACE_PROBE1(spdk,name,spdk_get_ticks()) 31 #define SPDK_DTRACE_PROBE1_TICKS(name,a1) DTRACE_PROBE2(spdk,name,spdk_get_ticks(),a1) [all …]
|
/spdk/test/nvmf/host/ |
H A D | failover.sh | 24 $rpc_py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode1 -a -s SPDK00000000000001 25 $rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 Malloc0 26 $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT 27 $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_SECOND_PORT 28 $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_THIRD_PORT 35 $rpc_py -s $bdevperf_rpc_sock bdev_nvme_attach_controller -b NVMe0 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT -f ipv4 -n nqn.2016-06.io.spdk:cnode1 -x failover 36 $rpc_py -s $bdevperf_rpc_sock bdev_nvme_attach_controller -b NVMe0 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_SECOND_PORT -f ipv4 -n nqn.2016-06.io.spdk:cnode1 -x failover 43 $rpc_py nvmf_subsystem_remove_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT 47 $rpc_py -s $bdevperf_rpc_sock bdev_nvme_attach_controller -b NVMe0 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_THIRD_PORT -f ipv4 -n nqn.2016-06.io.spdk:cnode1 -x failover 48 $rpc_py nvmf_subsystem_remove_listener nqn.2016-06.io.spdk [all...] |
H A D | multicontroller.sh | 30 $rpc_py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode1 -a -s SPDK00000000000001 31 $rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 Malloc0 33 $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT 34 $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_SECOND_PORT 37 $rpc_py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode2 -a -s SPDK00000000000002 38 $rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode2 Malloc1 40 $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode2 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT 41 $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode2 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_SECOND_PORT 51 -s $NVMF_PORT -f ipv4 -n nqn.2016-06.io.spdk:cnode1 -i $NVMF_FIRST_INITIATOR_IP 61 -s $NVMF_PORT -f ipv4 -n nqn.2016-06.io.spdk [all...] |
/spdk/test/external_code/ |
H A D | README.md | 2 module to the SPDK libraries. The makefiles contain six examples of linking against spdk 4 these categories, they also demonstrate linking against the spdk combined shared library, 7 This directory also contains a convenient test script, test_make.sh, which automates making SPDK 8 and testing all six of these linker options. It takes a single argument, the path to an SPDK 12 sudo ./test_make.sh /path/to/spdk 16 in the top level [SPDK github repository](https://github.com/spdk/spdk) and don't have any special
|