script/gen_nvme: do not generate legacy configuration
gen_nvme.sh will no longer generate the legacy configuration. "--json" option will still work for any current users of the script. Tests were modified to no longer use the "--json" option. Meanwhile others were simplified with switch to "--json-with-subsystems". Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I8450be98660e54c64c27d8401fc40d649f9403ea Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4802 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com>
This commit is contained in:
parent
2903c65533
commit
8c3e71f0f9
@ -1523,7 +1523,7 @@ main(int argc, char **argv)
|
|||||||
if (access(cli_context->config_file, F_OK) == -1) {
|
if (access(cli_context->config_file, F_OK) == -1) {
|
||||||
printf("Error: No config file found.\n");
|
printf("Error: No config file found.\n");
|
||||||
printf("To create a config file named 'blobcli.json' for your NVMe device:\n");
|
printf("To create a config file named 'blobcli.json' for your NVMe device:\n");
|
||||||
printf(" <path to spdk>/scripts/gen_nvme.sh --json > blobcli.json\n");
|
printf(" <path to spdk>/scripts/gen_nvme.sh --json-with-subsystems > blobcli.json\n");
|
||||||
printf("and then re-run the cli tool.\n");
|
printf("and then re-run the cli tool.\n");
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
@ -5,13 +5,6 @@ set -e
|
|||||||
rootdir=$(readlink -f $(dirname $0))/..
|
rootdir=$(readlink -f $(dirname $0))/..
|
||||||
source "$rootdir/scripts/common.sh"
|
source "$rootdir/scripts/common.sh"
|
||||||
|
|
||||||
function create_classic_config() {
|
|
||||||
echo "[Nvme]"
|
|
||||||
for ((i = 0; i < ${#bdfs[@]}; i++)); do
|
|
||||||
echo " TransportID \"trtype:PCIe traddr:${bdfs[i]}\" Nvme$i"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
function create_json_config() {
|
function create_json_config() {
|
||||||
local bdev_json_cfg=()
|
local bdev_json_cfg=()
|
||||||
|
|
||||||
@ -53,10 +46,8 @@ function create_json_config_with_subsystems() {
|
|||||||
|
|
||||||
bdfs=($(nvme_in_userspace))
|
bdfs=($(nvme_in_userspace))
|
||||||
|
|
||||||
if [ "$1" = "--json" ]; then
|
if [[ "$1" = "--json-with-subsystems" ]]; then
|
||||||
create_json_config
|
|
||||||
elif [ "$1" = "--json-with-subsystems" ]; then
|
|
||||||
create_json_config_with_subsystems
|
create_json_config_with_subsystems
|
||||||
else
|
else
|
||||||
create_classic_config
|
create_json_config
|
||||||
fi
|
fi
|
||||||
|
@ -49,7 +49,7 @@ function setup_bdev_conf() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function setup_nvme_conf() {
|
function setup_nvme_conf() {
|
||||||
"$rootdir/scripts/gen_nvme.sh" --json | "$rpc_py" load_subsystem_config
|
"$rootdir/scripts/gen_nvme.sh" | "$rpc_py" load_subsystem_config
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup_gpt_conf() {
|
function setup_gpt_conf() {
|
||||||
|
@ -75,9 +75,7 @@ popd
|
|||||||
|
|
||||||
timing_exit db_bench_build
|
timing_exit db_bench_build
|
||||||
|
|
||||||
echo '{"subsystems": [' > $ROCKSDB_CONF
|
$rootdir/scripts/gen_nvme.sh --json-with-subsystems > $ROCKSDB_CONF
|
||||||
$rootdir/scripts/gen_nvme.sh --json >> $ROCKSDB_CONF
|
|
||||||
echo ']}' >> $ROCKSDB_CONF
|
|
||||||
|
|
||||||
trap 'dump_db_bench_on_err; run_bsdump || :; rm -f $ROCKSDB_CONF; sanitize_results; exit 1' SIGINT SIGTERM EXIT
|
trap 'dump_db_bench_on_err; run_bsdump || :; rm -f $ROCKSDB_CONF; sanitize_results; exit 1' SIGINT SIGTERM EXIT
|
||||||
|
|
||||||
|
@ -11,9 +11,7 @@ rootdir=$(readlink -f $testdir/../..)
|
|||||||
source $rootdir/test/common/autotest_common.sh
|
source $rootdir/test/common/autotest_common.sh
|
||||||
|
|
||||||
# Nvme0 target configuration
|
# Nvme0 target configuration
|
||||||
echo '{"subsystems": [' > $testdir/blobcli.json
|
$rootdir/scripts/gen_nvme.sh --json-with-subsystems > $testdir/blobcli.json
|
||||||
$rootdir/scripts/gen_nvme.sh --json | jq -r "del(.config[] | select(.params.name!=\"Nvme0\"))" >> $testdir/blobcli.json
|
|
||||||
echo ']}' >> $testdir/blobcli.json
|
|
||||||
|
|
||||||
# generate random data file for import/export diff
|
# generate random data file for import/export diff
|
||||||
dd if=/dev/urandom of=$testdir/test.pattern bs=1M count=1
|
dd if=/dev/urandom of=$testdir/test.pattern bs=1M count=1
|
||||||
|
@ -1264,7 +1264,7 @@ function get_nvme_ctrlr_from_bdf() {
|
|||||||
# uio-pci-generic or vfio-pci
|
# uio-pci-generic or vfio-pci
|
||||||
function get_nvme_bdfs() {
|
function get_nvme_bdfs() {
|
||||||
xtrace_disable
|
xtrace_disable
|
||||||
bdfs=$(jq -r .config[].params.traddr <<< $($rootdir/scripts/gen_nvme.sh --json))
|
bdfs=$(jq -r .config[].params.traddr <<< $($rootdir/scripts/gen_nvme.sh))
|
||||||
if [[ -z $bdfs ]]; then
|
if [[ -z $bdfs ]]; then
|
||||||
echo "No devices to test on!"
|
echo "No devices to test on!"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -25,7 +25,7 @@ function destroy_vols() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function create_vols() {
|
function create_vols() {
|
||||||
$rootdir/scripts/gen_nvme.sh --json | $rpc_py load_subsystem_config
|
$rootdir/scripts/gen_nvme.sh | $rpc_py load_subsystem_config
|
||||||
waitforbdev Nvme0n1
|
waitforbdev Nvme0n1
|
||||||
|
|
||||||
$rpc_py bdev_lvol_create_lvstore Nvme0n1 lvs0
|
$rpc_py bdev_lvol_create_lvstore Nvme0n1 lvs0
|
||||||
|
@ -30,7 +30,7 @@ trap 'at_ftl_exit' SIGINT SIGTERM EXIT
|
|||||||
PCI_WHITELIST="$device" PCI_BLACKLIST="" DRIVER_OVERRIDE="" $rootdir/scripts/setup.sh
|
PCI_WHITELIST="$device" PCI_BLACKLIST="" DRIVER_OVERRIDE="" $rootdir/scripts/setup.sh
|
||||||
|
|
||||||
# Use first regular NVMe disk (non-OC) as non-volatile cache
|
# Use first regular NVMe disk (non-OC) as non-volatile cache
|
||||||
nvme_disks=$($rootdir/scripts/gen_nvme.sh --json | jq -r \
|
nvme_disks=$($rootdir/scripts/gen_nvme.sh | jq -r \
|
||||||
".config[] | select(.params.traddr != \"$device\").params.traddr")
|
".config[] | select(.params.traddr != \"$device\").params.traddr")
|
||||||
|
|
||||||
for disk in $nvme_disks; do
|
for disk in $nvme_disks; do
|
||||||
|
@ -21,7 +21,7 @@ trap '$rpc_py bdev_split_delete Name0n1 || true; killprocess $pid; iscsitestfini
|
|||||||
waitforlisten $pid
|
waitforlisten $pid
|
||||||
$rpc_py iscsi_set_options -o 30 -a 4 -b $node_base
|
$rpc_py iscsi_set_options -o 30 -a 4 -b $node_base
|
||||||
$rpc_py framework_start_init
|
$rpc_py framework_start_init
|
||||||
$rootdir/scripts/gen_nvme.sh --json | $rpc_py load_subsystem_config
|
$rootdir/scripts/gen_nvme.sh | $rpc_py load_subsystem_config
|
||||||
$rpc_py bdev_malloc_create 512 4096 --name Malloc0
|
$rpc_py bdev_malloc_create 512 4096 --name Malloc0
|
||||||
echo "iscsi_tgt is listening. Running tests..."
|
echo "iscsi_tgt is listening. Running tests..."
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ trap 'remove_backends; iscsicleanup; killprocess $iscsipid; iscsitestfini; exit
|
|||||||
waitforlisten $iscsipid
|
waitforlisten $iscsipid
|
||||||
$rpc_py iscsi_set_options -o 30 -a 128
|
$rpc_py iscsi_set_options -o 30 -a 128
|
||||||
$rpc_py framework_start_init
|
$rpc_py framework_start_init
|
||||||
$rootdir/scripts/gen_nvme.sh --json | $rpc_py load_subsystem_config
|
$rootdir/scripts/gen_nvme.sh | $rpc_py load_subsystem_config
|
||||||
timing_exit start_iscsi_tgt
|
timing_exit start_iscsi_tgt
|
||||||
|
|
||||||
$rpc_py iscsi_create_portal_group $PORTAL_TAG $TARGET_IP:$ISCSI_PORT
|
$rpc_py iscsi_create_portal_group $PORTAL_TAG $TARGET_IP:$ISCSI_PORT
|
||||||
|
@ -101,7 +101,7 @@ trap 'rm -f $testdir/perf.job; killprocess $pid; print_backtrace; exit 1' ERR SI
|
|||||||
waitforlisten "$pid" "$testdir/rpc_iscsi.sock"
|
waitforlisten "$pid" "$testdir/rpc_iscsi.sock"
|
||||||
$rpc_py iscsi_set_options -b "iqn.2016-06.io.spdk" -f "/usr/local/etc/spdk/auth.conf" -o 30 -i -l 0 -a 16
|
$rpc_py iscsi_set_options -b "iqn.2016-06.io.spdk" -f "/usr/local/etc/spdk/auth.conf" -o 30 -i -l 0 -a 16
|
||||||
$rpc_py framework_start_init
|
$rpc_py framework_start_init
|
||||||
$rootdir/scripts/gen_nvme.sh --json | $rpc_py load_subsystem_config
|
$rootdir/scripts/gen_nvme.sh | $rpc_py load_subsystem_config
|
||||||
sleep 1
|
sleep 1
|
||||||
timing_exit run_iscsi_app
|
timing_exit run_iscsi_app
|
||||||
|
|
||||||
|
@ -336,9 +336,7 @@ function json_config_test_init() {
|
|||||||
|
|
||||||
# Load nvme configuration. The load_config will issue framework_start_init automatically
|
# Load nvme configuration. The load_config will issue framework_start_init automatically
|
||||||
(
|
(
|
||||||
echo '{"subsystems": ['
|
$rootdir/scripts/gen_nvme.sh --json-with-subsystems
|
||||||
$rootdir/scripts/gen_nvme.sh --json | jq -r "del(.config[] | select(.params.name!=\"Nvme0\"))"
|
|
||||||
echo ']}'
|
|
||||||
) | tgt_rpc load_config
|
) | tgt_rpc load_config
|
||||||
|
|
||||||
tgt_check_notification_types
|
tgt_check_notification_types
|
||||||
|
@ -13,7 +13,7 @@ rpc_py="$rootdir/scripts/rpc.py"
|
|||||||
nvmftestinit
|
nvmftestinit
|
||||||
nvmfappstart -m 0xF
|
nvmfappstart -m 0xF
|
||||||
|
|
||||||
$rootdir/scripts/gen_nvme.sh --json | $rpc_py load_subsystem_config
|
$rootdir/scripts/gen_nvme.sh | $rpc_py load_subsystem_config
|
||||||
|
|
||||||
local_nvme_trid="trtype:PCIe traddr:"$($rpc_py framework_get_config bdev | jq -r '.[].params | select(.name=="Nvme0").traddr')
|
local_nvme_trid="trtype:PCIe traddr:"$($rpc_py framework_get_config bdev | jq -r '.[].params | select(.name=="Nvme0").traddr')
|
||||||
bdevs="$bdevs $($rpc_py bdev_malloc_create $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE)"
|
bdevs="$bdevs $($rpc_py bdev_malloc_create $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE)"
|
||||||
|
@ -28,7 +28,7 @@ ocf_names[2]=WT_Nvme ocf_modes[2]=wt
|
|||||||
ocf_names[3]=WB_Nvme0 ocf_modes[3]=wb
|
ocf_names[3]=WB_Nvme0 ocf_modes[3]=wb
|
||||||
ocf_names[4]=WB_Nvme1 ocf_modes[4]=wb
|
ocf_names[4]=WB_Nvme1 ocf_modes[4]=wb
|
||||||
|
|
||||||
mapfile -t config < <("$rootdir/scripts/gen_nvme.sh" --json)
|
mapfile -t config < <("$rootdir/scripts/gen_nvme.sh")
|
||||||
|
|
||||||
# Drop anything from last closing ] so we can inject our own config pieces ...
|
# Drop anything from last closing ] so we can inject our own config pieces ...
|
||||||
config=("${config[@]::${#config[@]}-2}")
|
config=("${config[@]::${#config[@]}-2}")
|
||||||
|
@ -11,7 +11,7 @@ rpc_py=$rootdir/scripts/rpc.py
|
|||||||
|
|
||||||
$rootdir/scripts/setup.sh
|
$rootdir/scripts/setup.sh
|
||||||
|
|
||||||
mapfile -t config < <("$rootdir/scripts/gen_nvme.sh" --json)
|
mapfile -t config < <("$rootdir/scripts/gen_nvme.sh")
|
||||||
# Drop anything from last closing ] so we can inject our own config pieces ...
|
# Drop anything from last closing ] so we can inject our own config pieces ...
|
||||||
config=("${config[@]::${#config[@]}-2}")
|
config=("${config[@]::${#config[@]}-2}")
|
||||||
# ... and now convert entire array to a single string item
|
# ... and now convert entire array to a single string item
|
||||||
|
@ -17,11 +17,7 @@ function finish_test() {
|
|||||||
} || :
|
} || :
|
||||||
}
|
}
|
||||||
|
|
||||||
cat <<- JSON > "$testdir/conf.json"
|
$rootdir/scripts/gen_nvme.sh --json-with-subsystems > $testdir/conf.json
|
||||||
{"subsystems":[
|
|
||||||
$("$rootdir/scripts/gen_nvme.sh" --json)
|
|
||||||
]}
|
|
||||||
JSON
|
|
||||||
|
|
||||||
nvmfappstart -m 0x3 -p 0 -s 1024 --json $testdir/conf.json
|
nvmfappstart -m 0x3 -p 0 -s 1024 --json $testdir/conf.json
|
||||||
|
|
||||||
|
@ -33,8 +33,8 @@ dd if=/dev/zero of="$sample_aio2" bs=2048 count=5000
|
|||||||
$spdkcli_job "'/bdevs/aio create sample0 $sample_aio 512' 'sample0' True
|
$spdkcli_job "'/bdevs/aio create sample0 $sample_aio 512' 'sample0' True
|
||||||
'/bdevs/aio create sample1 $sample_aio2 512' 'sample1' True
|
'/bdevs/aio create sample1 $sample_aio2 512' 'sample1' True
|
||||||
"
|
"
|
||||||
trtype=$($rootdir/scripts/gen_nvme.sh --json | jq -r '.config[].params | select(.name=="Nvme0").trtype')
|
trtype=$($rootdir/scripts/gen_nvme.sh | jq -r '.config[].params | select(.name=="Nvme0").trtype')
|
||||||
traddr=$($rootdir/scripts/gen_nvme.sh --json | jq -r '.config[].params | select(.name=="Nvme0").traddr')
|
traddr=$($rootdir/scripts/gen_nvme.sh | jq -r '.config[].params | select(.name=="Nvme0").traddr')
|
||||||
$spdkcli_job "'/bdevs/nvme create Nvme0 $trtype $traddr' 'Nvme0' True
|
$spdkcli_job "'/bdevs/nvme create Nvme0 $trtype $traddr' 'Nvme0' True
|
||||||
'/bdevs/split_disk bdev_split_create Nvme0n1 4' 'Nvme0n1p0' True
|
'/bdevs/split_disk bdev_split_create Nvme0n1 4' 'Nvme0n1p0' True
|
||||||
"
|
"
|
||||||
|
@ -157,7 +157,7 @@ function vhost_run() {
|
|||||||
waitforlisten "$vhost_pid" "$vhost_dir/rpc.sock"
|
waitforlisten "$vhost_pid" "$vhost_dir/rpc.sock"
|
||||||
#do not generate nvmes if pci access is disabled
|
#do not generate nvmes if pci access is disabled
|
||||||
if [[ "$cmd" != *"--no-pci"* ]] && [[ "$cmd" != *"-u"* ]] && $run_gen_nvme; then
|
if [[ "$cmd" != *"--no-pci"* ]] && [[ "$cmd" != *"-u"* ]] && $run_gen_nvme; then
|
||||||
$rootdir/scripts/gen_nvme.sh "--json" | $rootdir/scripts/rpc.py -s $vhost_dir/rpc.sock load_subsystem_config
|
$rootdir/scripts/gen_nvme.sh | $rootdir/scripts/rpc.py -s $vhost_dir/rpc.sock load_subsystem_config
|
||||||
fi
|
fi
|
||||||
|
|
||||||
notice "vhost started - pid=$vhost_pid"
|
notice "vhost started - pid=$vhost_pid"
|
||||||
|
@ -23,7 +23,7 @@ $SPDK_BIN_DIR/vhost &
|
|||||||
vhost_pid=$!
|
vhost_pid=$!
|
||||||
waitforlisten $vhost_pid
|
waitforlisten $vhost_pid
|
||||||
|
|
||||||
$rootdir/scripts/gen_nvme.sh --json | $rootdir/scripts/rpc.py load_subsystem_config
|
$rootdir/scripts/gen_nvme.sh | $rootdir/scripts/rpc.py load_subsystem_config
|
||||||
if [ -z "$(rpc_cmd bdev_get_bdevs | jq '.[] | select(.name=="Nvme0n1")')" ]; then
|
if [ -z "$(rpc_cmd bdev_get_bdevs | jq '.[] | select(.name=="Nvme0n1")')" ]; then
|
||||||
echo "Nvme0n1 bdev not found!" && false
|
echo "Nvme0n1 bdev not found!" && false
|
||||||
fi
|
fi
|
||||||
|
@ -96,7 +96,7 @@ function migration_tc2_configure_vhost() {
|
|||||||
waitforlisten "$nvmf_tgt_pid" "$nvmf_dir/rpc.sock"
|
waitforlisten "$nvmf_tgt_pid" "$nvmf_dir/rpc.sock"
|
||||||
$rpc_nvmf framework_start_init
|
$rpc_nvmf framework_start_init
|
||||||
$rpc_nvmf nvmf_create_transport -t RDMA -u 8192
|
$rpc_nvmf nvmf_create_transport -t RDMA -u 8192
|
||||||
$rootdir/scripts/gen_nvme.sh --json | $rpc_nvmf load_subsystem_config
|
$rootdir/scripts/gen_nvme.sh | $rpc_nvmf load_subsystem_config
|
||||||
timing_exit start_nvmf_tgt
|
timing_exit start_nvmf_tgt
|
||||||
|
|
||||||
vhost_run 0 "-m 0x1 -s 512 -u"
|
vhost_run 0 "-m 0x1 -s 512 -u"
|
||||||
|
@ -105,7 +105,7 @@ function host1_start_nvmf() {
|
|||||||
waitforlisten "$nvmf_tgt_pid" "$nvmf_dir/nvmf_rpc.sock"
|
waitforlisten "$nvmf_tgt_pid" "$nvmf_dir/nvmf_rpc.sock"
|
||||||
$rpc_nvmf framework_start_init
|
$rpc_nvmf framework_start_init
|
||||||
$rpc_nvmf nvmf_create_transport -t RDMA -u 8192
|
$rpc_nvmf nvmf_create_transport -t RDMA -u 8192
|
||||||
$rootdir/scripts/gen_nvme.sh --json | $rpc_nvmf load_subsystem_config
|
$rootdir/scripts/gen_nvme.sh | $rpc_nvmf load_subsystem_config
|
||||||
|
|
||||||
$rpc_nvmf nvmf_create_subsystem nqn.2018-02.io.spdk:cnode1 -a -s SPDK01
|
$rpc_nvmf nvmf_create_subsystem nqn.2018-02.io.spdk:cnode1 -a -s SPDK01
|
||||||
$rpc_nvmf nvmf_subsystem_add_ns nqn.2018-02.io.spdk:cnode1 Nvme0n1
|
$rpc_nvmf nvmf_subsystem_add_ns nqn.2018-02.io.spdk:cnode1 Nvme0n1
|
||||||
|
@ -217,11 +217,7 @@ if [[ $run_precondition == true ]]; then
|
|||||||
# Using the same precondition routine possible for lvols thanks
|
# Using the same precondition routine possible for lvols thanks
|
||||||
# to --clear-method option. Lvols should not UNMAP on creation.
|
# to --clear-method option. Lvols should not UNMAP on creation.
|
||||||
json_cfg=$rootdir/nvme.json
|
json_cfg=$rootdir/nvme.json
|
||||||
cat <<- JSON > "$json_cfg"
|
$rootdir/scripts/gen_nvme.sh --json-with-subsystems > "$json_cfg"
|
||||||
{"subsystems":[
|
|
||||||
$("$rootdir/scripts/gen_nvme.sh" --json)
|
|
||||||
]}
|
|
||||||
JSON
|
|
||||||
mapfile -t nvmes < <(grep -oP "Nvme\d+" "$json_cfg")
|
mapfile -t nvmes < <(grep -oP "Nvme\d+" "$json_cfg")
|
||||||
fio_filename=$(printf ":%sn1" "${nvmes[@]}")
|
fio_filename=$(printf ":%sn1" "${nvmes[@]}")
|
||||||
fio_filename=${fio_filename:1}
|
fio_filename=${fio_filename:1}
|
||||||
|
Loading…
Reference in New Issue
Block a user