Spdk/test/vmd/vmd.sh
Jim Harris a1280c9878 scripts: replace PCI_WHITELIST with PCI_ALLOWED
Similarly replace PCI_BLACKLIST with PCI_BLOCKED.

Use of ALLOWED/BLOCKED matches similar changes made
in DPDK.

While here, replace use of term "blacklist" with "blocked"
in one of the nvme perf scripts.  The usage there was
associated with how devices are blocked by using the
environment variables that are changed by this patch.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I720d99118ba5e050f436612c9fd415db44294a63
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5275
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
2020-12-03 09:41:07 +00:00

79 lines
1.9 KiB
Bash
Executable File

#!/usr/bin/env bash
testdir=$(readlink -f $(dirname $0))
rootdir=$(readlink -f $testdir/../..)
source $rootdir/scripts/common.sh
source $rootdir/test/common/autotest_common.sh
rpc_py=$rootdir/scripts/rpc.py
VMD_WHITELIST=()
function vmd_identify() {
for bdf in $pci_devs; do
$SPDK_EXAMPLE_DIR/identify -i 0 -V -r "trtype:PCIe traddr:$bdf"
done
}
function vmd_perf() {
for bdf in $pci_devs; do
$SPDK_EXAMPLE_DIR/perf -q 128 -w read -o 12288 -t 1 -LL -i 0 -V -r "trtype:PCIe traddr:$bdf"
done
}
function vmd_fio() {
for bdf in $pci_devs; do
fio_nvme $testdir/config/config.fio --filename="trtype=PCIe traddr=${bdf//:/.} ns=1"
done
}
function vmd_bdev_svc() {
$rootdir/test/app/bdev_svc/bdev_svc --wait-for-rpc &
svcpid=$!
trap 'killprocess $svcpid; exit 1' SIGINT SIGTERM EXIT
# Wait until bdev_svc starts
waitforlisten $svcpid
$rpc_py enable_vmd
$rpc_py framework_start_init
for bdf in $pci_devs; do
$rpc_py bdev_nvme_attach_controller -b NVMe_$bdf -t PCIe -a $bdf
done
trap - SIGINT SIGTERM EXIT
killprocess $svcpid
}
# Re-run setup.sh script and only attach VMD devices to uio/vfio.
$rootdir/scripts/setup.sh reset
vmd_id=$(grep "PCI_DEVICE_ID_INTEL_VMD" $rootdir/include/spdk/pci_ids.h | awk -F"x" '{print $2}')
for bdf in $(iter_pci_dev_id 8086 $vmd_id); do
if pci_can_use $bdf; then
VMD_WHITELIST+=("$bdf")
fi
done
PCI_ALLOWED="${VMD_WHITELIST[*]}" $rootdir/scripts/setup.sh
pci_devs=$($SPDK_BIN_DIR/spdk_lspci | grep "NVMe disk behind VMD" | awk '{print $1}')
if [[ -z "$pci_devs" ]]; then
echo "Couldn't find any NVMe device behind a VMD."
exit 1
fi
run_test "vmd_identify" vmd_identify
run_test "vmd_hello_world" $SPDK_EXAMPLE_DIR/hello_world -V
run_test "vmd_perf" vmd_perf
if [[ $CONFIG_FIO_PLUGIN == y ]]; then
run_test "vmd_fio" vmd_fio
fi
run_test "vmd_bdev_svc" vmd_bdev_svc
# Re-run setup.sh again so that other tests may continue
$rootdir/scripts/setup.sh reset
$rootdir/scripts/setup.sh