[blktests,v2,7/9] nvme-rc: Calculate IO size for fio jobs
Commit Message
Introduce two new function to calculate the IO size for fio jobs.
_nvme_calc_io_size() returns the jobs size for _run_fio_verify_io()
function. Reduce the max size of the job by one megabyte to make the
test more robust not to run out of space by accident. Note these fio
calls run with just one jobs.
_nvme_calc_run_io_size() returns the jobs size for _run_fio_rand_io()
function. Again, the jobs size is not maxing out the space and most
important it takes the number of jobs into account which are
created (number of CPUs).
Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
tests/nvme/010 | 5 +++--
tests/nvme/011 | 5 +++--
tests/nvme/032 | 6 ++++--
tests/nvme/034 | 4 +++-
tests/nvme/040 | 4 +++-
tests/nvme/045 | 4 +++-
tests/nvme/047 | 6 ++++--
tests/nvme/rc | 20 ++++++++++++++++++++
8 files changed, 43 insertions(+), 11 deletions(-)
@@ -25,6 +25,7 @@ test() {
local loop_dev
local file_path="${TMPDIR}/img"
local subsys_name="blktests-subsystem-1"
+ local io_size
truncate -s "${nvme_img_size}" "${file_path}"
@@ -41,8 +42,8 @@ test() {
cat "/sys/block/${nvmedev}n1/uuid"
cat "/sys/block/${nvmedev}n1/wwid"
- _run_fio_verify_io --size=${nvme_img_size} \
- --filename="/dev/${nvmedev}n1"
+ io_size="$(_nvme_calc_io_size "${nvme_img_size}")"
+ _run_fio_verify_io --size="${io_size}" --filename="/dev/${nvmedev}n1"
_nvme_disconnect_subsys "${subsys_name}"
@@ -25,6 +25,7 @@ test() {
local file_path
local file_path="${TMPDIR}/img"
local subsys_name="blktests-subsystem-1"
+ local io_size
truncate -s "${nvme_img_size}" "${file_path}"
@@ -39,8 +40,8 @@ test() {
cat "/sys/block/${nvmedev}n1/uuid"
cat "/sys/block/${nvmedev}n1/wwid"
- _run_fio_verify_io --size="${nvme_img_size}" \
- --filename="/dev/${nvmedev}n1"
+ io_size="$(_nvme_calc_io_size "${nvme_img_size}")"
+ _run_fio_verify_io --size="${io_size}" --filename="/dev/${nvmedev}n1"
_nvme_disconnect_subsys "${subsys_name}"
@@ -33,13 +33,15 @@ test_device() {
local sysfs
local attr
local m
+ local rand_io_size
pdev="$(_get_pci_dev_from_blkdev)"
sysfs="/sys/bus/pci/devices/${pdev}"
# start fio job
- _run_fio_rand_io --filename="$TEST_DEV" --size="${nvme_img_size}" \
- --group_reporting --time_based --runtime=1m &> /dev/null &
+ rand_io_size="$(_nvme_calc_rand_io_size "${nvme_img_size}")"
+ _run_fio_rand_io --filename="$TEST_DEV" --size="${rand_io_size}" \
+ --group_reporting --time_based --runtime=1m > /dev/null &
sleep 5
@@ -19,6 +19,7 @@ test_device() {
local ctrldev
local nsdev
local port
+ local io_size
echo "Running ${TEST_NAME}"
@@ -26,7 +27,8 @@ test_device() {
port=$(_nvmet_passthru_target_setup "${subsys}")
nsdev=$(_nvmet_passthru_target_connect "${nvme_trtype}" "${subsys}")
- _run_fio_verify_io --size="${nvme_img_size}" --filename="${nsdev}"
+ io_size="$(_nvme_calc_io_size "${nvme_img_size}")"
+ _run_fio_verify_io --size="${io_size}" --filename="${nsdev}"
_nvme_disconnect_subsys "${subsys}"
_nvmet_passthru_target_cleanup "${port}" "${subsys}"
@@ -21,6 +21,7 @@ test() {
local port
local loop_dev
local nvmedev
+ local rand_io_size
echo "Running ${TEST_NAME}"
@@ -37,7 +38,8 @@ test() {
# start fio job
echo "starting background fio"
- _run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${nvme_img_size}" \
+ rand_io_size="$(_nvme_calc_rand_io_size "${nvme_img_size}")"
+ _run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${rand_io_size}" \
--group_reporting --ramp_time=5 \
--time_based --runtime=1m &> /dev/null &
sleep 5
@@ -31,6 +31,7 @@ test() {
local ctrlkey
local new_ctrlkey
local ctrldev
+ local rand_io_size
echo "Running ${TEST_NAME}"
@@ -120,7 +121,8 @@ test() {
nvmedev=$(_find_nvme_dev "${subsys_name}")
- _run_fio_rand_io --size=4m --filename="/dev/${nvmedev}n1"
+ rand_io_size="$(_nvme_calc_rand_io_size 4m)"
+ _run_fio_rand_io --size="${rand_io_size}" --filename="/dev/${nvmedev}n1"
_nvme_disconnect_subsys "${subsys_name}"
@@ -25,6 +25,7 @@ test() {
local port
local nvmedev
local loop_dev
+ local rand_io_size
local file_path="$TMPDIR/img"
local subsys_name="blktests-subsystem-1"
@@ -42,7 +43,8 @@ test() {
nvmedev=$(_find_nvme_dev "${subsys_name}")
- _xfs_run_fio_verify_io /dev/"${nvmedev}n1" "1m" || echo FAIL
+ rand_io_size="$(_nvme_calc_rand_io_size 4M)"
+ _run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${rand_io_size}"
_nvme_disconnect_subsys "${subsys_name}" >> "$FULL" 2>&1
@@ -50,7 +52,7 @@ test() {
--nr-write-queues 1 \
--nr-poll-queues 1 || echo FAIL
- _xfs_run_fio_verify_io /dev/"${nvmedev}n1" "1m" || echo FAIL
+ _run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${rand_io_size}"
_nvme_disconnect_subsys "${subsys_name}" >> "$FULL" 2>&1
@@ -150,6 +150,26 @@ _test_dev_nvme_nsid() {
cat "${TEST_DEV_SYSFS}/nsid"
}
+_nvme_calc_io_size() {
+ local img_size_mb
+ local io_size_mb
+
+ img_size_mb="$(convert_to_mb "$1")"
+ io_size_mb="$((img_size_mb - 1))"
+
+ echo "${io_size_mb}m"
+}
+
+_nvme_calc_rand_io_size() {
+ local img_size_mb
+ local io_size_mb
+
+ img_size_mb="$(convert_to_mb "$1")"
+ io_size_mb="$(printf "%d" $((((img_size_mb * 1024 * 1024) / $(nproc) - 1) / 1024)))"
+
+ echo "${io_size_mb}k"
+}
+
_nvme_fcloop_add_rport() {
local local_wwnn="$1"
local local_wwpn="$2"