[PATCH REPOST blktests v2 7/9] nvme-rc: Calculate IO size for fio jobs

Daniel Wagner dwagner at suse.de
Thu Apr 20 23:05:03 PDT 2023


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 at 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(-)

diff --git a/tests/nvme/010 b/tests/nvme/010
index 805f80d40620..d209335c2158 100755
--- a/tests/nvme/010
+++ b/tests/nvme/010
@@ -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}"
 
diff --git a/tests/nvme/011 b/tests/nvme/011
index da8cbac11124..294ba4333aff 100755
--- a/tests/nvme/011
+++ b/tests/nvme/011
@@ -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}"
 
diff --git a/tests/nvme/032 b/tests/nvme/032
index 9f9756b0f959..ad701cea877d 100755
--- a/tests/nvme/032
+++ b/tests/nvme/032
@@ -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
 
diff --git a/tests/nvme/034 b/tests/nvme/034
index e0ede717c373..0df8bef98e5e 100755
--- a/tests/nvme/034
+++ b/tests/nvme/034
@@ -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}"
diff --git a/tests/nvme/040 b/tests/nvme/040
index 31b7cafef4be..b033a2a866f2 100755
--- a/tests/nvme/040
+++ b/tests/nvme/040
@@ -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
diff --git a/tests/nvme/045 b/tests/nvme/045
index 99012f6bed8f..f50087cccb6a 100755
--- a/tests/nvme/045
+++ b/tests/nvme/045
@@ -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}"
 
diff --git a/tests/nvme/047 b/tests/nvme/047
index b5a8d469a983..6a7599bc2e91 100755
--- a/tests/nvme/047
+++ b/tests/nvme/047
@@ -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
 
diff --git a/tests/nvme/rc b/tests/nvme/rc
index b1f2dacae125..172f510527ed 100644
--- a/tests/nvme/rc
+++ b/tests/nvme/rc
@@ -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"
-- 
2.40.0




More information about the Linux-nvme mailing list