test/iscsi_tgt: use stub application
The stub application will ensure that each iSCSI test does not need to reinitialized DPDK memory and NVMe devices. This drastically cuts down on the amount of time needed to run all of the iscsi_tgt tests. While here, add a new common ISCSI_TEST_CORE_MASK shell variable, eliminating a bunch of copies of the 0xFFFF core mask, and ensuring the stub application chooses a core mask that overlaps all of the iscsi_tgt test cases. Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: Ifae73276923258ff64370ae42e19cf1a4a2c2212 Reviewed-on: https://review.gerrithub.io/362454 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
7c34782192
commit
a8e1295d4b
@ -227,6 +227,21 @@ function rbd_cleanup() {
|
||||
fi
|
||||
}
|
||||
|
||||
function start_stub() {
|
||||
$rootdir/test/app/stub/stub $1 &
|
||||
stubpid=$!
|
||||
echo Waiting for stub to ready for secondary processes...
|
||||
while ! [ -e /var/run/.spdk0_config ]; do
|
||||
sleep 0.1s
|
||||
done
|
||||
echo done.
|
||||
}
|
||||
|
||||
function kill_stub() {
|
||||
kill $stubpid
|
||||
rm -rf /var/run/.spdk0_config
|
||||
}
|
||||
|
||||
function run_test() {
|
||||
set +x
|
||||
echo "************************************"
|
||||
|
@ -11,3 +11,7 @@ fi
|
||||
if [ -z "$ISCSI_APP" ]; then
|
||||
ISCSI_APP=./app/iscsi_tgt/iscsi_tgt
|
||||
fi
|
||||
|
||||
if [ -z "$ISCSI_TEST_CORE_MASK" ]; then
|
||||
ISCSI_TEST_CORE_MASK=0xFFFF
|
||||
fi
|
||||
|
@ -20,7 +20,7 @@ rpc_py="python $rootdir/scripts/rpc.py"
|
||||
|
||||
timing_enter start_iscsi_tgt
|
||||
|
||||
$ISCSI_APP -c $testdir/iscsi.conf -m 0xFFFF &
|
||||
$ISCSI_APP -c $testdir/iscsi.conf -m $ISCSI_TEST_CORE_MASK &
|
||||
pid=$!
|
||||
echo "Process pid: $pid"
|
||||
|
||||
|
@ -15,7 +15,7 @@ fio_py="python $rootdir/scripts/fio.py"
|
||||
|
||||
timing_enter start_iscsi_tgt
|
||||
|
||||
$ISCSI_APP -c $testdir/iscsi.conf -m 0xFFFF &
|
||||
$ISCSI_APP -c $testdir/iscsi.conf -m $ISCSI_TEST_CORE_MASK &
|
||||
pid=$!
|
||||
echo "Process pid: $pid"
|
||||
|
||||
|
@ -45,7 +45,7 @@ do
|
||||
timing_enter start_iscsi_tgt_$i
|
||||
|
||||
# TODO: run the different iSCSI instances on non-overlapping CPU masks
|
||||
$ISCSI_APP -c $testdir/iscsi.conf.$i -s 1000 -i $i -m 0xFFFF &
|
||||
$ISCSI_APP -c $testdir/iscsi.conf.$i -s 1000 -i $i -m $ISCSI_TEST_CORE_MASK &
|
||||
pid=$!
|
||||
echo "Process pid: $pid"
|
||||
|
||||
|
@ -10,7 +10,22 @@ fi
|
||||
export TARGET_IP=127.0.0.1
|
||||
export INITIATOR_IP=127.0.0.1
|
||||
|
||||
source $rootdir/test/iscsi_tgt/common.sh
|
||||
|
||||
timing_enter iscsi_tgt
|
||||
|
||||
# ISCSI_TEST_CORE_MASK is the biggest core mask specified by
|
||||
# any of the iscsi_tgt tests. Using this mask for the stub
|
||||
# ensures that if this mask spans CPU sockets, that we will
|
||||
# allocate memory from both sockets. The stub will *not*
|
||||
# run anything on the extra cores (and will sleep on master
|
||||
# core 0) so there is no impact to the iscsi_tgt tests by
|
||||
# specifying the bigger core mask.
|
||||
start_stub "-s 2048 -i 0 -m $ISCSI_TEST_CORE_MASK"
|
||||
trap "kill_stub; exit 1" SIGINT SIGTERM EXIT
|
||||
|
||||
export ISCSI_APP="./app/iscsi_tgt/iscsi_tgt -i 0"
|
||||
|
||||
run_test ./test/iscsi_tgt/calsoft/calsoft.sh
|
||||
run_test ./test/iscsi_tgt/filesystem/filesystem.sh
|
||||
run_test ./test/iscsi_tgt/fio/fio.sh
|
||||
@ -22,5 +37,12 @@ if [ $RUN_NIGHTLY -eq 1 ]; then
|
||||
fi
|
||||
run_test ./test/iscsi_tgt/ext4test/ext4test.sh
|
||||
run_test ./test/iscsi_tgt/rbd/rbd.sh
|
||||
|
||||
trap - SIGINT SIGTERM EXIT
|
||||
kill_stub
|
||||
|
||||
# TODO: enable remote NVMe controllers with multi-process so that
|
||||
# we can use the stub for this test
|
||||
run_test ./test/iscsi_tgt/nvme_remote/fio_remote_nvme.sh
|
||||
|
||||
timing_exit iscsi_tgt
|
||||
|
@ -29,7 +29,7 @@ fio_py="python $rootdir/scripts/fio.py"
|
||||
|
||||
timing_enter start_iscsi_tgt
|
||||
|
||||
$ISCSI_APP -c $testdir/iscsi.conf -m 0xFFFF &
|
||||
$ISCSI_APP -c $testdir/iscsi.conf -m $ISCSI_TEST_CORE_MASK &
|
||||
pid=$!
|
||||
|
||||
trap "killprocess $pid; exit 1" SIGINT SIGTERM EXIT
|
||||
|
Loading…
x
Reference in New Issue
Block a user