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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 4/21/23 08:05, Daniel Wagner wrote:
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@xxxxxxx>
---
  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)))"
+

... ending with ridiculous small io sizes on machines with lots of CPUs.
Please cap nproc by something sane like 32.

+	echo "${io_size_mb}k"
+}
+
  _nvme_fcloop_add_rport() {
  	local local_wwnn="$1"
  	local local_wwpn="$2"

Cheers,

Hannes
--
Dr. Hannes Reinecke                Kernel Storage Architect
hare@xxxxxxx                              +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Ivo Totev, Andrew
Myers, Andrew McDonald, Martje Boudien Moerman




[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux