Previously, the test was broken as "$fio_jobs" was considered as a
string instead of additional parameters. This is fixed here.
Second, there was an issue with earlier kernels when request lists
existed such that request_queues were never being cleaned up because
non-root blkgs took a reference on the queue. However, blkgs were being
cleaned up after the last reference to the request_queue was put back.
This creates a blktest cgroup for the fio jobs to utilize and should be
useful for catching this scenario in the future.
Signed-off-by: Dennis Zhou <dennis@kernel.org>
return
fi
+ _init_cgroup2
+
+ # setup cgroups
+ echo "+io" > "/sys/fs/cgroup/cgroup.subtree_control"
+ echo "+io" > "$CGROUP2_DIR/cgroup.subtree_control"
+ mkdir -p "$CGROUP2_DIR/${TEST_NAME}"
+
# set higher aio limit
echo 524288 > /proc/sys/fs/aio-max-nr
((cnt++))
done
- local num_jobs=4 runtime=21
+ local num_jobs=4 runtime=12
fio --rw=randread --size=128G --direct=1 --ioengine=libaio \
--iodepth=2048 --numjobs=$num_jobs --bs=4k \
--group_reporting=1 --group_reporting=1 --runtime=$runtime \
- --loops=10000 "$fio_jobs" > "$FULL" 2>&1 &
+ --loops=10000 --cgroup=blktests/${TEST_NAME} $fio_jobs > "$FULL" 2>&1 &
- sleep 7
+ sleep 6
local device_path
for dev in "${SCSI_DEBUG_DEVICES[@]}"; do
# shutdown devices in progress
wait
+ sleep 5
+
+ _exit_cgroup2
+
_exit_scsi_debug
}