bdevperf: promote bdevperf from test to example application

bdevperf application is utilized in multiple test scenarios
and most prominently in SPDK performance reports.
Similar to perf and fio_plugins, it is used to measure performance.
It is intended to represent the expected behavior of users
application that use SPDK bdev layer.

Applications under --enable-tests are intended for specific test
scenarios and user interaction is usually via a test scripts.
Meanwhile --enable-examples are used more broadly to teach and
show usage of SPDK libraries.

As an added benefit with this patch, its possible to compile
bdevperf without need to satisfy additional requirements to
compile all the test applications.

Change-Id: I9aaec1f9d729a1cdee89b5fdc365d61c19b03f82
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14558
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
This commit is contained in:
Krzysztof Karas 2022-09-06 14:15:46 +02:00 committed by Tomasz Zawadzki
parent e2085b84c9
commit 29784f35cd
34 changed files with 82 additions and 77 deletions

View File

@ -44,6 +44,11 @@ names with this option to restrict allowed RPCs to only that list.
Added spdk_rpc_set_allowlist to restrict allowed RPCs to the specified list. Added spdk_rpc_set_allowlist to restrict allowed RPCs to the specified list.
### bdevperf
Promoted the application to example to match similar programs: fio_plugin and perf.
It can now be found inside `examples/bdev/bdevperf`.
## v22.09 ## v22.09
### accel ### accel

View File

@ -57,7 +57,7 @@ Add two listeners, each with a different `IP:port` pair:
Launch the bdevperf process in the background: Launch the bdevperf process in the background:
~~~{.sh} ~~~{.sh}
cd spdk/ cd spdk/
./test/bdev/bdevperf/bdevperf -m 0x4 -z -r /tmp/bdevperf.sock -q 128 -o 4096 -w verify -t 90 &> bdevperf.log & ./build/examples/bdevperf -m 0x4 -z -r /tmp/bdevperf.sock -q 128 -o 4096 -w verify -t 90 &> bdevperf.log &
~~~ ~~~
Configure bdevperf and add two paths: Configure bdevperf and add two paths:
@ -71,7 +71,7 @@ Configure bdevperf and add two paths:
Connect to the RPC socket of the bdevperf process and start the test: Connect to the RPC socket of the bdevperf process and start the test:
~~~{.sh} ~~~{.sh}
PYTHONPATH=$PYTHONPATH:/root/src/spdk/python ./test/bdev/bdevperf/bdevperf.py -t 1 -s /tmp/bdevperf.sock perform_tests PYTHONPATH=$PYTHONPATH:/root/src/spdk/python ./examples/bdev/bdevperf/bdevperf.py -t 1 -s /tmp/bdevperf.sock perform_tests
~~~ ~~~
The RPC command will return, leaving the test to run for 90 seconds in the background. On the target server, The RPC command will return, leaving the test to run for 90 seconds in the background. On the target server,

View File

@ -7,7 +7,7 @@ SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..)
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
DIRS-$(CONFIG_FIO_PLUGIN) = fio_plugin DIRS-$(CONFIG_FIO_PLUGIN) = fio_plugin
DIRS-y += hello_world DIRS-y += hello_world bdevperf
.PHONY: all clean $(DIRS-y) .PHONY: all clean $(DIRS-y)

View File

@ -611,7 +611,7 @@ function check_json_rpc() {
echo "Missing JSON-RPC documentation for ${rpc}" echo "Missing JSON-RPC documentation for ${rpc}"
rc=1 rc=1
fi fi
done < <(git grep -h -E "^SPDK_RPC_REGISTER\(" ':!test/*' ':!examples/nvme/hotplug/*') done < <(git grep -h -E "^SPDK_RPC_REGISTER\(" ':!test/*' ':!examples/*')
if [ $rc -eq 0 ]; then if [ $rc -eq 0 ]; then
echo " OK" echo " OK"

View File

@ -6,7 +6,7 @@
SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..) SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..)
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
DIRS-y = bdevio bdevperf DIRS-y = bdevio
.PHONY: all clean $(DIRS-y) .PHONY: all clean $(DIRS-y)

View File

@ -1,4 +1,4 @@
bdevperf=$rootdir/test/bdev/bdevperf/bdevperf bdevperf=$rootdir/build/examples/bdevperf
function create_job() { function create_job() {
local job_section=$1 local job_section=$1

View File

@ -375,7 +375,7 @@ function qos_function_test() {
function qos_test_suite() { function qos_test_suite() {
# Run bdevperf with QoS disabled first # Run bdevperf with QoS disabled first
"$testdir/bdevperf/bdevperf" -z -m 0x2 -q 256 -o 4096 -w randread -t 60 "$env_ctx" & "$rootdir/build/examples/bdevperf" -z -m 0x2 -q 256 -o 4096 -w randread -t 60 "$env_ctx" &
QOS_PID=$! QOS_PID=$!
echo "Process qos testing pid: $QOS_PID" echo "Process qos testing pid: $QOS_PID"
trap 'cleanup; killprocess $QOS_PID; exit 1' SIGINT SIGTERM EXIT trap 'cleanup; killprocess $QOS_PID; exit 1' SIGINT SIGTERM EXIT
@ -386,7 +386,7 @@ function qos_test_suite() {
$rpc_py bdev_null_create $QOS_DEV_2 128 512 $rpc_py bdev_null_create $QOS_DEV_2 128 512
waitforbdev $QOS_DEV_2 waitforbdev $QOS_DEV_2
$rootdir/test/bdev/bdevperf/bdevperf.py perform_tests & $rootdir/examples/bdev/bdevperf/bdevperf.py perform_tests &
qos_function_test qos_function_test
$rpc_py bdev_malloc_delete $QOS_DEV_1 $rpc_py bdev_malloc_delete $QOS_DEV_1
@ -401,7 +401,7 @@ function error_test_suite() {
ERR_DEV="EE_Dev_1" ERR_DEV="EE_Dev_1"
# Run bdevperf with 1 normal bdev and 1 error bdev, also continue on error # Run bdevperf with 1 normal bdev and 1 error bdev, also continue on error
"$testdir/bdevperf/bdevperf" -z -m 0x2 -q 16 -o 4096 -w randread -t 5 -f "$env_ctx" & "$rootdir/build/examples/bdevperf" -z -m 0x2 -q 16 -o 4096 -w randread -t 5 -f "$env_ctx" &
ERR_PID=$! ERR_PID=$!
echo "Process error testing pid: $ERR_PID" echo "Process error testing pid: $ERR_PID"
waitforlisten $ERR_PID waitforlisten $ERR_PID
@ -413,7 +413,7 @@ function error_test_suite() {
waitforbdev $DEV_2 waitforbdev $DEV_2
$rpc_py bdev_error_inject_error $ERR_DEV 'all' 'failure' -n 5 $rpc_py bdev_error_inject_error $ERR_DEV 'all' 'failure' -n 5
$rootdir/test/bdev/bdevperf/bdevperf.py -t 1 perform_tests & $rootdir/examples/bdev/bdevperf/bdevperf.py -t 1 perform_tests &
sleep 1 sleep 1
# Bdevperf is expected to be there as the continue on error is set # Bdevperf is expected to be there as the continue on error is set
@ -432,7 +432,7 @@ function error_test_suite() {
killprocess $ERR_PID killprocess $ERR_PID
# Run bdevperf with 1 normal bdev and 1 error bdev, and exit on error # Run bdevperf with 1 normal bdev and 1 error bdev, and exit on error
"$testdir/bdevperf/bdevperf" -z -m 0x2 -q 16 -o 4096 -w randread -t 5 "$env_ctx" & "$rootdir/build/examples/bdevperf" -z -m 0x2 -q 16 -o 4096 -w randread -t 5 "$env_ctx" &
ERR_PID=$! ERR_PID=$!
echo "Process error testing pid: $ERR_PID" echo "Process error testing pid: $ERR_PID"
waitforlisten $ERR_PID waitforlisten $ERR_PID
@ -444,7 +444,7 @@ function error_test_suite() {
waitforbdev $DEV_2 waitforbdev $DEV_2
$rpc_py bdev_error_inject_error $ERR_DEV 'all' 'failure' -n 5 $rpc_py bdev_error_inject_error $ERR_DEV 'all' 'failure' -n 5
$rootdir/test/bdev/bdevperf/bdevperf.py -t 1 perform_tests & $rootdir/examples/bdev/bdevperf/bdevperf.py -t 1 perform_tests &
NOT wait $ERR_PID NOT wait $ERR_PID
} }
@ -470,7 +470,7 @@ function qd_sampling_function_test() {
function qd_sampling_test_suite() { function qd_sampling_test_suite() {
QD_DEV="Malloc_QD" QD_DEV="Malloc_QD"
"$testdir/bdevperf/bdevperf" -z -m 0x3 -q 256 -o 4096 -w randread -t 5 -C "$env_ctx" & "$rootdir/build/examples/bdevperf" -z -m 0x3 -q 256 -o 4096 -w randread -t 5 -C "$env_ctx" &
QD_PID=$! QD_PID=$!
echo "Process bdev QD sampling period testing pid: $QD_PID" echo "Process bdev QD sampling period testing pid: $QD_PID"
trap 'cleanup; killprocess $QD_PID; exit 1' SIGINT SIGTERM EXIT trap 'cleanup; killprocess $QD_PID; exit 1' SIGINT SIGTERM EXIT
@ -479,7 +479,7 @@ function qd_sampling_test_suite() {
$rpc_py bdev_malloc_create -b $QD_DEV 128 512 $rpc_py bdev_malloc_create -b $QD_DEV 128 512
waitforbdev $QD_DEV waitforbdev $QD_DEV
$rootdir/test/bdev/bdevperf/bdevperf.py perform_tests & $rootdir/examples/bdev/bdevperf/bdevperf.py perform_tests &
sleep 2 sleep 2
qd_sampling_function_test $QD_DEV qd_sampling_function_test $QD_DEV
@ -525,7 +525,7 @@ function stat_test_suite() {
STAT_DEV="Malloc_STAT" STAT_DEV="Malloc_STAT"
# Run bdevperf with 2 cores so as to collect per Core IO statistics # Run bdevperf with 2 cores so as to collect per Core IO statistics
"$testdir/bdevperf/bdevperf" -z -m 0x3 -q 256 -o 4096 -w randread -t 10 -C "$env_ctx" & "$rootdir/build/examples/bdevperf" -z -m 0x3 -q 256 -o 4096 -w randread -t 10 -C "$env_ctx" &
STAT_PID=$! STAT_PID=$!
echo "Process Bdev IO statistics testing pid: $STAT_PID" echo "Process Bdev IO statistics testing pid: $STAT_PID"
trap 'cleanup; killprocess $STAT_PID; exit 1' SIGINT SIGTERM EXIT trap 'cleanup; killprocess $STAT_PID; exit 1' SIGINT SIGTERM EXIT
@ -534,7 +534,7 @@ function stat_test_suite() {
$rpc_py bdev_malloc_create -b $STAT_DEV 128 512 $rpc_py bdev_malloc_create -b $STAT_DEV 128 512
waitforbdev $STAT_DEV waitforbdev $STAT_DEV
$rootdir/test/bdev/bdevperf/bdevperf.py perform_tests & $rootdir/examples/bdev/bdevperf/bdevperf.py perform_tests &
sleep 2 sleep 2
stat_function_test $STAT_DEV stat_function_test $STAT_DEV
@ -651,14 +651,14 @@ fi
trap "cleanup" SIGINT SIGTERM EXIT trap "cleanup" SIGINT SIGTERM EXIT
run_test "bdev_verify" $testdir/bdevperf/bdevperf --json "$conf_file" -q 128 -o 4096 -w verify -t 5 -C -m 0x3 "$env_ctx" run_test "bdev_verify" $rootdir/build/examples/bdevperf --json "$conf_file" -q 128 -o 4096 -w verify -t 5 -C -m 0x3 "$env_ctx"
run_test "bdev_write_zeroes" $testdir/bdevperf/bdevperf --json "$conf_file" -q 128 -o 4096 -w write_zeroes -t 1 "$env_ctx" run_test "bdev_write_zeroes" $rootdir/build/examples/bdevperf --json "$conf_file" -q 128 -o 4096 -w write_zeroes -t 1 "$env_ctx"
# test json config not enclosed with {} # test json config not enclosed with {}
run_test "bdev_json_nonenclosed" $testdir/bdevperf/bdevperf --json "$nonenclosed_conf_file" -q 128 -o 4096 -w write_zeroes -t 1 "$env_ctx" || true run_test "bdev_json_nonenclosed" $rootdir/build/examples/bdevperf --json "$nonenclosed_conf_file" -q 128 -o 4096 -w write_zeroes -t 1 "$env_ctx" || true
# test json config "subsystems" not with array # test json config "subsystems" not with array
run_test "bdev_json_nonarray" $testdir/bdevperf/bdevperf --json "$nonarray_conf_file" -q 128 -o 4096 -w write_zeroes -t 1 "$env_ctx" || true run_test "bdev_json_nonarray" $rootdir/build/examples/bdevperf --json "$nonarray_conf_file" -q 128 -o 4096 -w write_zeroes -t 1 "$env_ctx" || true
if [[ $test_type == bdev ]]; then if [[ $test_type == bdev ]]; then
run_test "bdev_qos" qos_test_suite "$env_ctx" run_test "bdev_qos" qos_test_suite "$env_ctx"
@ -669,7 +669,7 @@ fi
# Temporarily disabled - infinite loop # Temporarily disabled - infinite loop
# if [ $RUN_NIGHTLY -eq 1 ]; then # if [ $RUN_NIGHTLY -eq 1 ]; then
# run_test "bdev_reset" $testdir/bdevperf/bdevperf --json "$conf_file" -q 16 -w reset -o 4096 -t 60 "$env_ctx" # run_test "bdev_reset" $rootdir/build/examples/bdevperf --json "$conf_file" -q 16 -w reset -o 4096 -t 60 "$env_ctx"
# fi # fi
# Bdev and configuration cleanup below this line # Bdev and configuration cleanup below this line

View File

@ -28,7 +28,7 @@ $rpc_py save_config > $testdir/bdevperf.json
killprocess $bdev_svc_pid killprocess $bdev_svc_pid
$rootdir/test/bdev/bdevperf/bdevperf --json $testdir/bdevperf.json -q 128 -o 4096 -w write -t 5 -r /var/tmp/spdk.sock & $rootdir/build/examples/bdevperf --json $testdir/bdevperf.json -q 128 -o 4096 -w write -t 5 -r /var/tmp/spdk.sock &
bdev_perf_pid=$! bdev_perf_pid=$!
waitforlisten $bdev_perf_pid waitforlisten $bdev_perf_pid
$rpc_py bdev_enable_histogram aio0 -e $rpc_py bdev_enable_histogram aio0 -e
@ -37,7 +37,7 @@ $rpc_py bdev_get_histogram aio0 | $rootdir/scripts/histogram.py
$rpc_py bdev_enable_histogram aio0 -d $rpc_py bdev_enable_histogram aio0 -d
wait $bdev_perf_pid wait $bdev_perf_pid
$rootdir/test/bdev/bdevperf/bdevperf --json $testdir/bdevperf.json -q 128 -o 4096 -w read -t 5 -r /var/tmp/spdk.sock & $rootdir/build/examples/bdevperf --json $testdir/bdevperf.json -q 128 -o 4096 -w read -t 5 -r /var/tmp/spdk.sock &
bdev_perf_pid=$! bdev_perf_pid=$!
waitforlisten $bdev_perf_pid waitforlisten $bdev_perf_pid
$rpc_py bdev_enable_histogram aio0 -e $rpc_py bdev_enable_histogram aio0 -e
@ -46,7 +46,7 @@ $rpc_py bdev_get_histogram aio0 | $rootdir/scripts/histogram.py
$rpc_py bdev_enable_histogram aio0 -d $rpc_py bdev_enable_histogram aio0 -d
wait $bdev_perf_pid wait $bdev_perf_pid
$rootdir/test/bdev/bdevperf/bdevperf --json $testdir/bdevperf.json -q 128 -o 4096 -w unmap -t 1 $rootdir/build/examples/bdevperf --json $testdir/bdevperf.json -q 128 -o 4096 -w unmap -t 1
sync sync
rm -f $testdir/bdevperf.json rm -f $testdir/bdevperf.json

View File

@ -57,12 +57,12 @@ function run_bdevio() {
} }
function run_bdevperf() { function run_bdevperf() {
$rootdir/test/bdev/bdevperf/bdevperf -z -q $1 -o $2 -w verify -t $3 -C -m 0x6 & $rootdir/build/examples/bdevperf -z -q $1 -o $2 -w verify -t $3 -C -m 0x6 &
bdevperf_pid=$! bdevperf_pid=$!
trap 'killprocess $bdevperf_pid; error_cleanup; exit 1' SIGINT SIGTERM EXIT trap 'killprocess $bdevperf_pid; error_cleanup; exit 1' SIGINT SIGTERM EXIT
waitforlisten $bdevperf_pid waitforlisten $bdevperf_pid
create_vols $4 create_vols $4
$rootdir/test/bdev/bdevperf/bdevperf.py perform_tests $rootdir/examples/bdev/bdevperf/bdevperf.py perform_tests
destroy_vols destroy_vols
trap - SIGINT SIGTERM EXIT trap - SIGINT SIGTERM EXIT
killprocess $bdevperf_pid killprocess $bdevperf_pid

View File

@ -14,7 +14,7 @@ timeout=240
for ((i = 0; i < ${#tests[@]}; i++)); do for ((i = 0; i < ${#tests[@]}; i++)); do
timing_enter "${tests[$i]}" timing_enter "${tests[$i]}"
"$rootdir/test/bdev/bdevperf/bdevperf" -z -T ftl0 ${tests[$i]} & "$rootdir/build/examples/bdevperf" -z -T ftl0 ${tests[$i]} &
bdevperf_pid=$! bdevperf_pid=$!
trap 'killprocess $bdevperf_pid; exit 1' SIGINT SIGTERM EXIT trap 'killprocess $bdevperf_pid; exit 1' SIGINT SIGTERM EXIT
@ -25,7 +25,7 @@ for ((i = 0; i < ${#tests[@]}; i++)); do
l2p_dram_size_mb=$(($(get_bdev_size $split_bdev) * 20 / 100 / 1024)) l2p_dram_size_mb=$(($(get_bdev_size $split_bdev) * 20 / 100 / 1024))
$rpc_py -t $timeout bdev_ftl_create -b ftl0 -d $split_bdev $use_append -c $nv_cache --l2p_dram_limit $l2p_dram_size_mb $rpc_py -t $timeout bdev_ftl_create -b ftl0 -d $split_bdev $use_append -c $nv_cache --l2p_dram_limit $l2p_dram_size_mb
$rootdir/test/bdev/bdevperf/bdevperf.py perform_tests $rootdir/examples/bdev/bdevperf/bdevperf.py perform_tests
$rpc_py bdev_ftl_delete -b ftl0 $rpc_py bdev_ftl_delete -b ftl0
killprocess $bdevperf_pid killprocess $bdevperf_pid

View File

@ -36,10 +36,10 @@ $rpc_py iscsi_create_target_node disk1 disk1_alias 'Malloc0:0' $PORTAL_TAG:$INIT
sleep 1 sleep 1
trap 'killprocess $pid; iscsitestfini; exit 1' SIGINT SIGTERM EXIT trap 'killprocess $pid; iscsitestfini; exit 1' SIGINT SIGTERM EXIT
"$rootdir/test/bdev/bdevperf/bdevperf" --json <(initiator_json_config) -q 128 -o 4096 -w write -t 1 "$rootdir/build/examples/bdevperf" --json <(initiator_json_config) -q 128 -o 4096 -w write -t 1
"$rootdir/test/bdev/bdevperf/bdevperf" --json <(initiator_json_config) -q 128 -o 4096 -w read -t 1 "$rootdir/build/examples/bdevperf" --json <(initiator_json_config) -q 128 -o 4096 -w read -t 1
"$rootdir/test/bdev/bdevperf/bdevperf" --json <(initiator_json_config) -q 128 -o 4096 -w flush -t 1 "$rootdir/build/examples/bdevperf" --json <(initiator_json_config) -q 128 -o 4096 -w flush -t 1
"$rootdir/test/bdev/bdevperf/bdevperf" --json <(initiator_json_config) -q 128 -o 4096 -w unmap -t 1 "$rootdir/build/examples/bdevperf" --json <(initiator_json_config) -q 128 -o 4096 -w unmap -t 1
trap - SIGINT SIGTERM EXIT trap - SIGINT SIGTERM EXIT

View File

@ -34,11 +34,11 @@ $rpc_py iscsi_create_target_node disk1 disk1_alias 'Malloc0:0' $PORTAL_TAG:$INIT
sleep 1 sleep 1
trap 'killprocess $pid; iscsitestfini; exit 1' SIGINT SIGTERM EXIT trap 'killprocess $pid; iscsitestfini; exit 1' SIGINT SIGTERM EXIT
"$rootdir/test/bdev/bdevperf/bdevperf" --json <(initiator_json_config) -q 128 -o 4096 -w verify -t 5 -s 512 "$rootdir/build/examples/bdevperf" --json <(initiator_json_config) -q 128 -o 4096 -w verify -t 5 -s 512
if [ $RUN_NIGHTLY -eq 1 ]; then if [ $RUN_NIGHTLY -eq 1 ]; then
"$rootdir/test/bdev/bdevperf/bdevperf" --json <(initiator_json_config) -q 128 -o 4096 -w unmap -t 5 -s 512 "$rootdir/build/examples/bdevperf" --json <(initiator_json_config) -q 128 -o 4096 -w unmap -t 5 -s 512
"$rootdir/test/bdev/bdevperf/bdevperf" --json <(initiator_json_config) -q 128 -o 4096 -w flush -t 5 -s 512 "$rootdir/build/examples/bdevperf" --json <(initiator_json_config) -q 128 -o 4096 -w flush -t 5 -s 512
"$rootdir/test/bdev/bdevperf/bdevperf" --json <(initiator_json_config) -q 128 -o 4096 -w reset -t 10 -s 512 "$rootdir/build/examples/bdevperf" --json <(initiator_json_config) -q 128 -o 4096 -w reset -t 10 -s 512
fi fi
trap - SIGINT SIGTERM EXIT trap - SIGINT SIGTERM EXIT

View File

@ -39,7 +39,7 @@ sleep 1
trap 'killprocess $pid; iscsitestfini; exit 1' SIGINT SIGTERM EXIT trap 'killprocess $pid; iscsitestfini; exit 1' SIGINT SIGTERM EXIT
# Start bdevperf with another sock file and iSCSI initiator # Start bdevperf with another sock file and iSCSI initiator
"$rootdir/test/bdev/bdevperf/bdevperf" -r $RESIZE_SOCK --json <(initiator_json_config) -q 16 -o 4096 -w read -t 5 -R -s 128 -z & "$rootdir/build/examples/bdevperf" -r $RESIZE_SOCK --json <(initiator_json_config) -q 16 -o 4096 -w read -t 5 -R -s 128 -z &
bdevperf_pid=$! bdevperf_pid=$!
waitforlisten $bdevperf_pid $RESIZE_SOCK waitforlisten $bdevperf_pid $RESIZE_SOCK
# Resize the Bdev from iSCSI target # Resize the Bdev from iSCSI target
@ -54,7 +54,7 @@ if [ $total_size != $BDEV_SIZE ]; then
fi fi
sleep 2 sleep 2
# Start the bdevperf IO # Start the bdevperf IO
$rootdir/test/bdev/bdevperf/bdevperf.py -s $RESIZE_SOCK perform_tests $rootdir/examples/bdev/bdevperf/bdevperf.py -s $RESIZE_SOCK perform_tests
# Obtain the Bdev from bdevperf with iSCSI initiator # Obtain the Bdev from bdevperf with iSCSI initiator
num_block=$($rpc_py -s $RESIZE_SOCK bdev_get_bdevs | grep num_blocks | sed 's/[^[:digit:]]//g') num_block=$($rpc_py -s $RESIZE_SOCK bdev_get_bdevs | grep num_blocks | sed 's/[^[:digit:]]//g')
# Get the new bdev size in MiB. # Get the new bdev size in MiB.

View File

@ -113,12 +113,12 @@ function opal_bdevio() {
} }
function opal_bdevperf() { function opal_bdevperf() {
$rootdir/test/bdev/bdevperf/bdevperf -z -q 8 -o 4096 -w verify -t 10 & $rootdir/build/examples/bdevperf -z -q 8 -o 4096 -w verify -t 10 &
bdevperf_pid=$! bdevperf_pid=$!
trap 'revert; killprocess $bdevperf_pid; exit 1' SIGINT SIGTERM EXIT trap 'revert; killprocess $bdevperf_pid; exit 1' SIGINT SIGTERM EXIT
waitforlisten $bdevperf_pid waitforlisten $bdevperf_pid
setup_test_environment setup_test_environment
$rootdir/test/bdev/bdevperf/bdevperf.py perform_tests $rootdir/examples/bdev/bdevperf/bdevperf.py perform_tests
clean_up clean_up
revert revert
$rpc_py bdev_nvme_detach_controller nvme0 $rpc_py bdev_nvme_detach_controller nvme0

View File

@ -412,7 +412,7 @@ function run_bdevperf() {
local bpf_app_pid local bpf_app_pid
local main_core_param="" local main_core_param=""
bdevperf_rpc="$rootdir/test/bdev/bdevperf/bdevperf.py" bdevperf_rpc="$rootdir/examples/bdev/bdevperf/bdevperf.py"
rpc_socket="/var/tmp/spdk.sock" rpc_socket="/var/tmp/spdk.sock"
if [[ -n $MAIN_CORE ]]; then if [[ -n $MAIN_CORE ]]; then

View File

@ -5,7 +5,7 @@ set -e
testdir=$(readlink -f $(dirname $0)) testdir=$(readlink -f $(dirname $0))
rootdir=$(readlink -f $testdir/../../..) rootdir=$(readlink -f $testdir/../../..)
plugin_dir=$rootdir/build/fio plugin_dir=$rootdir/build/fio
bdevperf_dir=$rootdir/test/bdev/bdevperf bdevperf_dir=$rootdir/examples/bdev/bdevperf
nvmeperf_dir=$rootdir/build/examples nvmeperf_dir=$rootdir/build/examples
source $testdir/common.sh source $testdir/common.sh
source $rootdir/scripts/common.sh || exit 1 source $rootdir/scripts/common.sh || exit 1

View File

@ -65,7 +65,7 @@ xnvme_bdevperf() {
for io in "${xnvme_io[@]}"; do for io in "${xnvme_io[@]}"; do
method_bdev_xnvme_create_0["io_mechanism"]="$io" method_bdev_xnvme_create_0["io_mechanism"]="$io"
"$rootdir/test/bdev/bdevperf/bdevperf" \ "$rootdir/build/examples/bdevperf" \
--json <(gen_conf) \ --json <(gen_conf) \
-q 64 \ -q 64 \
-w randread \ -w randread \

View File

@ -21,9 +21,9 @@ function tgt_init() {
nvmftestinit nvmftestinit
tgt_init tgt_init
"$rootdir/test/bdev/bdevperf/bdevperf" --json <(gen_nvmf_target_json) -q 128 -o 4096 -w verify -t 1 "$rootdir/build/examples/bdevperf" --json <(gen_nvmf_target_json) -q 128 -o 4096 -w verify -t 1
"$rootdir/test/bdev/bdevperf/bdevperf" --json <(gen_nvmf_target_json) -q 128 -o 4096 -w verify -t 15 -f & "$rootdir/build/examples/bdevperf" --json <(gen_nvmf_target_json) -q 128 -o 4096 -w verify -t 15 -f &
bdevperfpid=$! bdevperfpid=$!
sleep 3 sleep 3

View File

@ -24,7 +24,7 @@ $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPOR
$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_SECOND_PORT $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_SECOND_PORT
$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_THIRD_PORT $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_THIRD_PORT
$rootdir/test/bdev/bdevperf/bdevperf -z -r $bdevperf_rpc_sock -q 128 -o 4096 -w verify -t 10 -f &> $testdir/try.txt & $rootdir/build/examples/bdevperf -z -r $bdevperf_rpc_sock -q 128 -o 4096 -w verify -t 10 -f &> $testdir/try.txt &
bdevperf_pid=$! bdevperf_pid=$!
trap 'process_shm --id $NVMF_APP_SHM_ID; cat $testdir/try.txt; rm -f $testdir/try.txt; killprocess $bdevperf_pid; nvmftestfini; exit 1' SIGINT SIGTERM EXIT trap 'process_shm --id $NVMF_APP_SHM_ID; cat $testdir/try.txt; rm -f $testdir/try.txt; killprocess $bdevperf_pid; nvmftestfini; exit 1' SIGINT SIGTERM EXIT
@ -32,7 +32,7 @@ waitforlisten $bdevperf_pid $bdevperf_rpc_sock
$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 $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
$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 $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
$rootdir/test/bdev/bdevperf/bdevperf.py -s $bdevperf_rpc_sock perform_tests & $rootdir/examples/bdev/bdevperf/bdevperf.py -s $bdevperf_rpc_sock perform_tests &
run_test_pid=$! run_test_pid=$!
sleep 1 sleep 1
@ -66,7 +66,7 @@ if ((count != 3)); then
fi fi
# Part 2 of the test. Start removing ports, starting with the one we are connected to, confirm that the ctrlr remains active until the final trid is removed. # Part 2 of the test. Start removing ports, starting with the one we are connected to, confirm that the ctrlr remains active until the final trid is removed.
$rootdir/test/bdev/bdevperf/bdevperf -z -r $bdevperf_rpc_sock -q 128 -o 4096 -w verify -t 1 -f &> $testdir/try.txt & $rootdir/build/examples/bdevperf -z -r $bdevperf_rpc_sock -q 128 -o 4096 -w verify -t 1 -f &> $testdir/try.txt &
bdevperf_pid=$! bdevperf_pid=$!
waitforlisten $bdevperf_pid $bdevperf_rpc_sock waitforlisten $bdevperf_pid $bdevperf_rpc_sock
@ -83,7 +83,7 @@ $rpc_py -s $bdevperf_rpc_sock bdev_nvme_detach_controller NVMe0 -t $TEST_TRANSPO
# Async operation since we need to reconnect with new TRID. # Async operation since we need to reconnect with new TRID.
sleep 3 sleep 3
$rpc_py -s $bdevperf_rpc_sock bdev_nvme_get_controllers | grep -q NVMe0 $rpc_py -s $bdevperf_rpc_sock bdev_nvme_get_controllers | grep -q NVMe0
$rootdir/test/bdev/bdevperf/bdevperf.py -s $bdevperf_rpc_sock perform_tests & $rootdir/examples/bdev/bdevperf/bdevperf.py -s $bdevperf_rpc_sock perform_tests &
run_test_pid=$! run_test_pid=$!
wait $run_test_pid wait $run_test_pid

View File

@ -37,7 +37,7 @@ $rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode2 Malloc1
$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode2 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode2 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT
$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode2 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_SECOND_PORT $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode2 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_SECOND_PORT
$rootdir/test/bdev/bdevperf/bdevperf -z -r $bdevperf_rpc_sock -q 128 -o 4096 -w write -t 1 -f &> $testdir/try.txt & $rootdir/build/examples/bdevperf -z -r $bdevperf_rpc_sock -q 128 -o 4096 -w write -t 1 -f &> $testdir/try.txt &
bdevperf_pid=$! bdevperf_pid=$!
trap 'process_shm --id $NVMF_APP_SHM_ID; pap "$testdir/try.txt"; killprocess $bdevperf_pid; nvmftestfini; exit 1' SIGINT SIGTERM EXIT trap 'process_shm --id $NVMF_APP_SHM_ID; pap "$testdir/try.txt"; killprocess $bdevperf_pid; nvmftestfini; exit 1' SIGINT SIGTERM EXIT
@ -89,7 +89,7 @@ if [ "$($rpc_py -s $bdevperf_rpc_sock bdev_nvme_get_controllers | grep -c NVMe)"
exit 1 exit 1
fi fi
$rootdir/test/bdev/bdevperf/bdevperf.py -s $bdevperf_rpc_sock perform_tests $rootdir/examples/bdev/bdevperf/bdevperf.py -s $bdevperf_rpc_sock perform_tests
# Remove the second controller # Remove the second controller
$rpc_py -s $bdevperf_rpc_sock bdev_nvme_detach_controller NVMe1 $rpc_py -s $bdevperf_rpc_sock bdev_nvme_detach_controller NVMe1

View File

@ -29,7 +29,7 @@ $rpc_py nvmf_subsystem_add_ns $NQN Malloc0
$rpc_py nvmf_subsystem_add_listener $NQN -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT $rpc_py nvmf_subsystem_add_listener $NQN -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT
$rpc_py nvmf_subsystem_add_listener $NQN -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_SECOND_PORT $rpc_py nvmf_subsystem_add_listener $NQN -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_SECOND_PORT
$rootdir/test/bdev/bdevperf/bdevperf -m 0x4 -z -r $bdevperf_rpc_sock -q 128 -o 4096 -w verify -t 90 &> $testdir/try.txt & $rootdir/build/examples/bdevperf -m 0x4 -z -r $bdevperf_rpc_sock -q 128 -o 4096 -w verify -t 90 &> $testdir/try.txt &
bdevperf_pid=$! bdevperf_pid=$!
trap 'process_shm --id $NVMF_APP_SHM_ID; rm -f $testdir/try.txt; killprocess $bdevperf_pid; nvmftestfini; exit 1' SIGINT SIGTERM EXIT trap 'process_shm --id $NVMF_APP_SHM_ID; rm -f $testdir/try.txt; killprocess $bdevperf_pid; nvmftestfini; exit 1' SIGINT SIGTERM EXIT
@ -62,7 +62,7 @@ function confirm_io_on_port() {
rm -f $testdir/trace.txt rm -f $testdir/trace.txt
} }
$rootdir/test/bdev/bdevperf/bdevperf.py -t 120 -s $bdevperf_rpc_sock perform_tests & $rootdir/examples/bdev/bdevperf/bdevperf.py -t 120 -s $bdevperf_rpc_sock perform_tests &
rpc_pid=$! rpc_pid=$!
sleep 1 sleep 1

View File

@ -25,7 +25,7 @@ $rpc_py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode1 -a -s SPDK0000000000000
$rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 Malloc0 $rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 Malloc0
$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT
$rootdir/test/bdev/bdevperf/bdevperf -m 0x4 -z -r $bdevperf_rpc_sock -q 128 -o 4096 -w verify -t 20 -f & $rootdir/build/examples/bdevperf -m 0x4 -z -r $bdevperf_rpc_sock -q 128 -o 4096 -w verify -t 20 -f &
bdevperf_pid=$! bdevperf_pid=$!
waitforlisten $bdevperf_pid $bdevperf_rpc_sock waitforlisten $bdevperf_pid $bdevperf_rpc_sock
@ -43,7 +43,7 @@ function get_controller() {
$rpc_py -s $bdevperf_rpc_sock bdev_nvme_set_options -r -1 $rpc_py -s $bdevperf_rpc_sock bdev_nvme_set_options -r -1
$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 -l 10 -o 5 $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 -l 10 -o 5
$rootdir/test/bdev/bdevperf/bdevperf.py -s $bdevperf_rpc_sock perform_tests & $rootdir/examples/bdev/bdevperf/bdevperf.py -s $bdevperf_rpc_sock perform_tests &
rpc_pid=$! rpc_pid=$!
sleep 1 sleep 1
@ -66,7 +66,7 @@ killprocess $bdevperf_pid
# Time to wait until ctrlr is reconnected before failing I/O to ctrlr # Time to wait until ctrlr is reconnected before failing I/O to ctrlr
$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT
$rootdir/test/bdev/bdevperf/bdevperf -m 0x4 -z -r $bdevperf_rpc_sock -q 128 -o 4096 -w verify -t 20 -f & $rootdir/build/examples/bdevperf -m 0x4 -z -r $bdevperf_rpc_sock -q 128 -o 4096 -w verify -t 20 -f &
bdevperf_pid=$! bdevperf_pid=$!
waitforlisten $bdevperf_pid $bdevperf_rpc_sock waitforlisten $bdevperf_pid $bdevperf_rpc_sock
@ -76,7 +76,7 @@ $rpc_py -s $bdevperf_rpc_sock bdev_nvme_set_options -r -1
$rpc_py -s $bdevperf_rpc_sock bdev_nvme_attach_controller -b NVMe0 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT \ $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 -l 10 -u 2 -o 1 -f ipv4 -n nqn.2016-06.io.spdk:cnode1 -l 10 -u 2 -o 1
$rootdir/test/bdev/bdevperf/bdevperf.py -s $bdevperf_rpc_sock perform_tests & $rootdir/examples/bdev/bdevperf/bdevperf.py -s $bdevperf_rpc_sock perform_tests &
rpc_pid=$! rpc_pid=$!
sleep 1 sleep 1
@ -89,7 +89,7 @@ wait $rpc_pid
# TODO: Check the IO fail if we wait for 5 sec, needs information from bdevperf # TODO: Check the IO fail if we wait for 5 sec, needs information from bdevperf
$rootdir/test/bdev/bdevperf/bdevperf.py -s $bdevperf_rpc_sock perform_tests & $rootdir/examples/bdev/bdevperf/bdevperf.py -s $bdevperf_rpc_sock perform_tests &
rpc_pid=$! rpc_pid=$!
sleep 1 sleep 1
$rpc_py nvmf_subsystem_remove_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT $rpc_py nvmf_subsystem_remove_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT
@ -102,7 +102,7 @@ killprocess $bdevperf_pid
# Case 3 test reconnect_delay_sec # Case 3 test reconnect_delay_sec
# Time to delay a reconnect trial # Time to delay a reconnect trial
$rootdir/test/bdev/bdevperf/bdevperf -m 0x4 -z -r $bdevperf_rpc_sock -q 128 -o 4096 -w randread -t 20 -f & $rootdir/build/examples/bdevperf -m 0x4 -z -r $bdevperf_rpc_sock -q 128 -o 4096 -w randread -t 20 -f &
bdevperf_pid=$! bdevperf_pid=$!
waitforlisten $bdevperf_pid $bdevperf_rpc_sock waitforlisten $bdevperf_pid $bdevperf_rpc_sock
@ -116,7 +116,7 @@ $rpc_py -s $bdevperf_rpc_sock bdev_nvme_set_options -r -1 -e 9
# ctrlr_loss_timeout_sec is 10 reconnect_delay_sec is 2 # ctrlr_loss_timeout_sec is 10 reconnect_delay_sec is 2
$rpc_py -s $bdevperf_rpc_sock bdev_nvme_attach_controller -b NVMe0 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP \ $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 -l 10 -o 2 -s $NVMF_PORT -f ipv4 -n nqn.2016-06.io.spdk:cnode1 -l 10 -o 2
$rootdir/test/bdev/bdevperf/bdevperf.py -s $bdevperf_rpc_sock perform_tests & $rootdir/examples/bdev/bdevperf/bdevperf.py -s $bdevperf_rpc_sock perform_tests &
rpc_pid=$! rpc_pid=$!
sleep 1 sleep 1
$rpc_py nvmf_subsystem_remove_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT $rpc_py nvmf_subsystem_remove_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT

View File

@ -21,13 +21,13 @@ $rpc_py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode1 -a -s SPDK0000000000000
$rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 Malloc0 $rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 Malloc0
$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT
"$rootdir/test/bdev/bdevperf/bdevperf" -m 0x10 -i 1 --json <(gen_nvmf_target_json) -q 128 -o 4096 -w write -t 1 & "$rootdir/build/examples/bdevperf" -m 0x10 -i 1 --json <(gen_nvmf_target_json) -q 128 -o 4096 -w write -t 1 &
WRITE_PID=$! WRITE_PID=$!
"$rootdir/test/bdev/bdevperf/bdevperf" -m 0x20 -i 2 --json <(gen_nvmf_target_json) -q 128 -o 4096 -w read -t 1 & "$rootdir/build/examples/bdevperf" -m 0x20 -i 2 --json <(gen_nvmf_target_json) -q 128 -o 4096 -w read -t 1 &
READ_PID=$! READ_PID=$!
"$rootdir/test/bdev/bdevperf/bdevperf" -m 0x40 -i 3 --json <(gen_nvmf_target_json) -q 128 -o 4096 -w flush -t 1 & "$rootdir/build/examples/bdevperf" -m 0x40 -i 3 --json <(gen_nvmf_target_json) -q 128 -o 4096 -w flush -t 1 &
FLUSH_PID=$! FLUSH_PID=$!
"$rootdir/test/bdev/bdevperf/bdevperf" -m 0x80 -i 4 --json <(gen_nvmf_target_json) -q 128 -o 4096 -w unmap -t 1 & "$rootdir/build/examples/bdevperf" -m 0x80 -i 4 --json <(gen_nvmf_target_json) -q 128 -o 4096 -w unmap -t 1 &
UNMAP_PID=$! UNMAP_PID=$!
sync sync

View File

@ -66,7 +66,7 @@ function nvmf_host_management() {
starttarget starttarget
# Run bdevperf # Run bdevperf
$rootdir/test/bdev/bdevperf/bdevperf -r /var/tmp/bdevperf.sock --json <(gen_nvmf_target_json "0") -q 64 -o 65536 -w verify -t 10 & $rootdir/build/examples/bdevperf -r /var/tmp/bdevperf.sock --json <(gen_nvmf_target_json "0") -q 64 -o 65536 -w verify -t 10 &
perfpid=$! perfpid=$!
waitforlisten $perfpid /var/tmp/bdevperf.sock waitforlisten $perfpid /var/tmp/bdevperf.sock
$rpc_py -s /var/tmp/bdevperf.sock framework_wait_init $rpc_py -s /var/tmp/bdevperf.sock framework_wait_init
@ -88,7 +88,7 @@ function nvmf_host_management() {
kill -9 $perfpid || true kill -9 $perfpid || true
# Run bdevperf # Run bdevperf
$rootdir/test/bdev/bdevperf/bdevperf -r /var/tmp/bdevperf.sock --json <(gen_nvmf_target_json "0") -q 64 -o 65536 -w verify -t 1 $rootdir/build/examples/bdevperf -r /var/tmp/bdevperf.sock --json <(gen_nvmf_target_json "0") -q 64 -o 65536 -w verify -t 1
stoptarget stoptarget
} }

View File

@ -22,13 +22,13 @@ $rpc_py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode1 -a -s SPDK0000000000000
$rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 Malloc0 $rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 Malloc0
$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT
$rootdir/test/bdev/bdevperf/bdevperf -z -r $bdevperf_rpc_sock -q 1024 -o 4096 -w verify -t 10 & $rootdir/build/examples/bdevperf -z -r $bdevperf_rpc_sock -q 1024 -o 4096 -w verify -t 10 &
bdevperf_pid=$! bdevperf_pid=$!
trap 'process_shm --id $NVMF_APP_SHM_ID; killprocess $bdevperf_pid; nvmftestfini; exit 1' SIGINT SIGTERM EXIT trap 'process_shm --id $NVMF_APP_SHM_ID; killprocess $bdevperf_pid; nvmftestfini; exit 1' SIGINT SIGTERM EXIT
waitforlisten $bdevperf_pid $bdevperf_rpc_sock waitforlisten $bdevperf_pid $bdevperf_rpc_sock
$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 $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
$rootdir/test/bdev/bdevperf/bdevperf.py -s $bdevperf_rpc_sock perform_tests $rootdir/examples/bdev/bdevperf/bdevperf.py -s $bdevperf_rpc_sock perform_tests
# if this test fails it means we didn't fail over to the second # if this test fails it means we didn't fail over to the second

View File

@ -85,7 +85,7 @@ function nvmf_shutdown_tc1() {
kill -0 $nvmfpid kill -0 $nvmfpid
# Connect with bdevperf and confirm it works # Connect with bdevperf and confirm it works
$rootdir/test/bdev/bdevperf/bdevperf -r /var/tmp/bdevperf.sock --json <(gen_nvmf_target_json "${num_subsystems[@]}") -q 64 -o 65536 -w verify -t 1 $rootdir/build/examples/bdevperf -r /var/tmp/bdevperf.sock --json <(gen_nvmf_target_json "${num_subsystems[@]}") -q 64 -o 65536 -w verify -t 1
stoptarget stoptarget
} }
@ -95,7 +95,7 @@ function nvmf_shutdown_tc2() {
starttarget starttarget
# Run bdevperf # Run bdevperf
$rootdir/test/bdev/bdevperf/bdevperf -r /var/tmp/bdevperf.sock --json <(gen_nvmf_target_json "${num_subsystems[@]}") -q 64 -o 65536 -w verify -t 10 & $rootdir/build/examples/bdevperf -r /var/tmp/bdevperf.sock --json <(gen_nvmf_target_json "${num_subsystems[@]}") -q 64 -o 65536 -w verify -t 10 &
perfpid=$! perfpid=$!
waitforlisten $perfpid /var/tmp/bdevperf.sock waitforlisten $perfpid /var/tmp/bdevperf.sock
$rpc_py -s /var/tmp/bdevperf.sock framework_wait_init $rpc_py -s /var/tmp/bdevperf.sock framework_wait_init
@ -117,7 +117,7 @@ function nvmf_shutdown_tc3() {
starttarget starttarget
# Run bdevperf # Run bdevperf
$rootdir/test/bdev/bdevperf/bdevperf -r /var/tmp/bdevperf.sock --json <(gen_nvmf_target_json "${num_subsystems[@]}") -q 64 -o 65536 -w verify -t 10 & $rootdir/build/examples/bdevperf -r /var/tmp/bdevperf.sock --json <(gen_nvmf_target_json "${num_subsystems[@]}") -q 64 -o 65536 -w verify -t 10 &
perfpid=$! perfpid=$!
waitforlisten $perfpid /var/tmp/bdevperf.sock waitforlisten $perfpid /var/tmp/bdevperf.sock
$rpc_py -s /var/tmp/bdevperf.sock framework_wait_init $rpc_py -s /var/tmp/bdevperf.sock framework_wait_init

View File

@ -118,7 +118,7 @@ subnqn:nqn.2016-06.io.spdk:cnode1" --psk-key 1234567890ABCDEF --psk-identity psk
# use bdevperf to test "bdev_nvme_attach_controller" # use bdevperf to test "bdev_nvme_attach_controller"
bdevperf_rpc_sock=/var/tmp/bdevperf.sock bdevperf_rpc_sock=/var/tmp/bdevperf.sock
$rootdir/test/bdev/bdevperf/bdevperf -m 0x4 -z -r $bdevperf_rpc_sock -q 128 -o 4096 -w verify -t 10 & $rootdir/build/examples/bdevperf -m 0x4 -z -r $bdevperf_rpc_sock -q 128 -o 4096 -w verify -t 10 &
bdevperf_pid=$! bdevperf_pid=$!
trap 'process_shm --id $NVMF_APP_SHM_ID; killprocess $bdevperf_pid; nvmftestfini; exit 1' SIGINT SIGTERM EXIT trap 'process_shm --id $NVMF_APP_SHM_ID; killprocess $bdevperf_pid; nvmftestfini; exit 1' SIGINT SIGTERM EXIT
@ -127,7 +127,7 @@ waitforlisten $bdevperf_pid $bdevperf_rpc_sock
$rpc_py -s $bdevperf_rpc_sock bdev_nvme_attach_controller -b TLSTEST -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP \ $rpc_py -s $bdevperf_rpc_sock bdev_nvme_attach_controller -b TLSTEST -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP \
-s $NVMF_PORT -f ipv4 -n nqn.2016-06.io.spdk:cnode1 --psk 1234567890ABCDEF -s $NVMF_PORT -f ipv4 -n nqn.2016-06.io.spdk:cnode1 --psk 1234567890ABCDEF
# run I/O and wait # run I/O and wait
$rootdir/test/bdev/bdevperf/bdevperf.py -t 20 -s $bdevperf_rpc_sock perform_tests $rootdir/examples/bdev/bdevperf/bdevperf.py -t 20 -s $bdevperf_rpc_sock perform_tests
# finish # finish
killprocess $bdevperf_pid killprocess $bdevperf_pid

View File

@ -27,11 +27,11 @@ $rpc_py bdev_malloc_create 32 4096 -b malloc0
$rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 malloc0 -n 1 $rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 malloc0 -n 1
# First send IO with verification # First send IO with verification
$rootdir/test/bdev/bdevperf/bdevperf --json <(gen_nvmf_target_json) \ $rootdir/build/examples/bdevperf --json <(gen_nvmf_target_json) \
-t 10 -q 128 -w verify -o 8192 -t 10 -q 128 -w verify -o 8192
# Then send IO in the background while pausing/resuming the subsystem # Then send IO in the background while pausing/resuming the subsystem
$rootdir/test/bdev/bdevperf/bdevperf --json <(gen_nvmf_target_json) \ $rootdir/build/examples/bdevperf --json <(gen_nvmf_target_json) \
-t 5 -q 128 -w randrw -M 50 -o 8192 & -t 5 -q 128 -w randrw -M 50 -o 8192 &
perfpid=$! perfpid=$!

View File

@ -4,7 +4,7 @@ curdir=$(dirname $(readlink -f "${BASH_SOURCE[0]}"))
rootdir=$(readlink -f $curdir/../../..) rootdir=$(readlink -f $curdir/../../..)
source $rootdir/test/common/autotest_common.sh source $rootdir/test/common/autotest_common.sh
bdevperf=$rootdir/test/bdev/bdevperf/bdevperf bdevperf=$rootdir/build/examples/bdevperf
source "$curdir/mallocs.conf" source "$curdir/mallocs.conf"
$bdevperf --json <(gen_malloc_ocf_json) -q 128 -o 4096 -t 4 -w flush $bdevperf --json <(gen_malloc_ocf_json) -q 128 -o 4096 -t 4 -w flush

View File

@ -4,7 +4,7 @@ curdir=$(dirname $(readlink -f "${BASH_SOURCE[0]}"))
rootdir=$(readlink -f $curdir/../../..) rootdir=$(readlink -f $curdir/../../..)
source $rootdir/test/common/autotest_common.sh source $rootdir/test/common/autotest_common.sh
bdevperf=$rootdir/test/bdev/bdevperf/bdevperf bdevperf=$rootdir/build/examples/bdevperf
source "$curdir/mallocs.conf" source "$curdir/mallocs.conf"
$bdevperf --json <(gen_malloc_ocf_json) -q 128 -o 4096 -w write -t 120 -r /var/tmp/spdk.sock & $bdevperf --json <(gen_malloc_ocf_json) -q 128 -o 4096 -w write -t 120 -r /var/tmp/spdk.sock &