Spdk/test/nvmf/target/dif.sh
paul luse eb53c23236 add (c) and SPDX header to bash files as needed
per Intel policy to include file commit date using git cmd
below.  The policy does not apply to non-Intel (C) notices.

git log --follow -C90% --format=%ad --date default <file> | tail -1

and then pull just the year from the result.

Intel copyrights were not added to files where Intel either had
no contribution ot the contribution lacked substance (ie license
header updates, formatting changes, etc)

For intel copyrights added, --follow and -C95% were used.

Signed-off-by: paul luse <paul.e.luse@intel.com>
Change-Id: I2ef86976095b88a9bf5b1003e59f3943cd6bbe4c
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15209
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-11-29 08:27:51 +00:00

148 lines
3.2 KiB
Bash
Executable File

#!/usr/bin/env bash
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (C) 2020 Intel Corporation
# All rights reserved.
#
testdir=$(readlink -f "$(dirname "$0")")
rootdir=$(readlink -f "$testdir/../../../")
# Have proper defaults in place
set -- "--transport=tcp" "--iso" "$@"
source "$rootdir/test/common/autotest_common.sh"
source "$rootdir/test/nvmf/common.sh"
NULL_META=16 NULL_BLOCK_SIZE=$((512 + NULL_META)) NULL_SIZE=64 NULL_DIF=1
create_subsystem() {
local sub_id=${1:-0}
# Make sure NQN matches what's used in gen_nvmf_target_json()
rpc_cmd bdev_null_create "bdev_null$sub_id" "$NULL_SIZE" "$NULL_BLOCK_SIZE" --md-size "$NULL_META" --dif-type "$NULL_DIF"
rpc_cmd nvmf_create_subsystem "nqn.2016-06.io.spdk:cnode$sub_id" --serial-number "53313233-$sub_id" --allow-any-host
rpc_cmd nvmf_subsystem_add_ns "nqn.2016-06.io.spdk:cnode$sub_id" "bdev_null$sub_id"
rpc_cmd nvmf_subsystem_add_listener "nqn.2016-06.io.spdk:cnode$sub_id" -t "$TEST_TRANSPORT" -a "$NVMF_FIRST_TARGET_IP" -s "$NVMF_PORT"
}
create_subsystems() {
local sub
for sub; do
create_subsystem "$sub"
done
}
destroy_subsystem() {
local sub_id=${1:-0}
rpc_cmd nvmf_delete_subsystem "nqn.2016-06.io.spdk:cnode$sub_id"
rpc_cmd bdev_null_delete "bdev_null$sub_id"
}
destroy_subsystems() {
local sub
for sub; do
destroy_subsystem "$sub"
done
}
create_transport() { rpc_cmd nvmf_create_transport $NVMF_TRANSPORT_OPTS; }
create_json_sub_conf() { gen_nvmf_target_json "$@"; }
gen_fio_conf() {
local file
cat <<- FIO
[global]
thread=1
direct=1
rw=randread
ramp_time=0
norandommap=1
time_based=1
bs=${bs:-4k}
numjobs=${numjobs:-1}
runtime=${runtime:-10}
[filename0]
filename=Nvme${nvme:-0}n1
iodepth=${iodepth:-4}
FIO
for ((file = 1; file <= files; file++)); do
cat <<- FIO
[filename$file]
filename=Nvme${file}n1
iodepth=${iodepth:-4}
FIO
done
}
fio() {
fio_bdev --ioengine=spdk_bdev --spdk_json_conf "$@" <(gen_fio_conf)
}
fio_dif_1() {
create_subsystems 0
fio <(create_json_sub_conf 0)
destroy_subsystems 0
}
fio_dif_1_multi_subsystems() {
local files=1
create_subsystems 0 1
fio <(create_json_sub_conf 0 1)
destroy_subsystems 0 1
}
fio_dif_rand_params() {
local NULL_DIF
local bs numjobs runtime iodepth files
NULL_DIF=3 bs=128k numjobs=3 iodepth=3 runtime=5
create_subsystems 0
fio <(create_json_sub_conf 0)
destroy_subsystems 0
NULL_DIF=2 bs=4k numjobs=8 iodepth=16 runtime="" files=2
create_subsystems 0 1 2
fio <(create_json_sub_conf 0 1 2)
destroy_subsystems 0 1 2
NULL_DIF=1 bs=8k,16k,128k numjobs=2 iodepth=8 runtime=5 files=1
create_subsystems 0 1
fio <(create_json_sub_conf 0 1)
destroy_subsystems 0 1
}
fio_dif_digest() {
local NULL_DIF
local bs numjobs runtime iodepth files
local hdgst ddgst
NULL_DIF=3 bs=128k,128k,128k numjobs=3 iodepth=3 runtime=10
hdgst=true ddgst=true
create_subsystems 0
fio <(create_json_sub_conf 0)
destroy_subsystems 0
}
nvmftestinit
NVMF_TRANSPORT_OPTS+=" --dif-insert-or-strip"
nvmfappstart
create_transport
run_test "fio_dif_1_default" fio_dif_1
run_test "fio_dif_1_multi_subsystems" fio_dif_1_multi_subsystems
run_test "fio_dif_rand_params" fio_dif_rand_params
run_test "fio_dif_digest" fio_dif_digest
trap - SIGINT SIGTERM EXIT
nvmftestfini