diff mbox series

[blktests,v3,10/12] nvme/rc: Calculate IO size for random fio jobs

Message ID 20230503080258.14525-11-dwagner@suse.de (mailing list archive)
State New, archived
Headers show
Series nvme testsuite runtime optimization | expand

Commit Message

Daniel Wagner May 3, 2023, 8:02 a.m. UTC
_nvme_calc_run_io_size() returns the jobs size for _run_fio_rand_io()
function. The jobs size is the size per job, thus we have to divide
through the number of CPUs.

Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
 tests/nvme/045 |  4 +++-
 tests/nvme/047 |  6 ++++--
 tests/nvme/rc  | 10 ++++++++++
 3 files changed, 17 insertions(+), 3 deletions(-)

Comments

Shinichiro Kawasaki May 7, 2023, 11:31 p.m. UTC | #1
The commit title prefix could be "nvme: ". And please find a question in line.

On May 03, 2023 / 10:02, Daniel Wagner wrote:
> _nvme_calc_run_io_size() returns the jobs size for _run_fio_rand_io()
> function. The jobs size is the size per job, thus we have to divide
> through the number of CPUs.
> 
> Signed-off-by: Daniel Wagner <dwagner@suse.de>
> ---
>  tests/nvme/045 |  4 +++-
>  tests/nvme/047 |  6 ++++--
>  tests/nvme/rc  | 10 ++++++++++
>  3 files changed, 17 insertions(+), 3 deletions(-)
> 
> 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}"

Here, _xfs_run_fio_verify_io is replaced with _run_fio_rand_io. May I confirm
that this replacement does not affect this test case? Same question for the hunk
below.

>  
>  	_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 0b4d5f6570d6..268418e5b3e0 100644
> --- a/tests/nvme/rc
> +++ b/tests/nvme/rc
> @@ -150,6 +150,16 @@ _test_dev_nvme_nsid() {
>  	cat "${TEST_DEV_SYSFS}/nsid"
>  }
>  
> +_nvme_calc_rand_io_size() {
> +	local img_size_mb
> +	local io_size_kb
> +
> +	img_size_mb="$(convert_to_mb "$1")"
> +	io_size_kb="$(((img_size_mb * 1024) / $(OMP_THREAD_LIMIT=32 nproc)))"
> +
> +	echo "${io_size_kb}k"
> +}
> +
>  _nvme_fcloop_add_rport() {
>  	local local_wwnn="$1"
>  	local local_wwpn="$2"
> -- 
> 2.40.0
>
Daniel Wagner May 10, 2023, 5:14 p.m. UTC | #2
On Sun, May 07, 2023 at 11:31:10PM +0000, Shinichiro Kawasaki wrote:
 > -	_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}"
> 
> Here, _xfs_run_fio_verify_io is replaced with _run_fio_rand_io. May I confirm
> that this replacement does not affect this test case? Same question for the hunk
> below.

This is on purpose. The test just wants only verify that IO is still working.
Because _xfs_run_fio_verify_io has the minimum requirement of 350M for
nvme_img_size. When I wrote the test I didn't know this and thus this change.

I'll update the commit message to include this info.
diff mbox series

Patch

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 0b4d5f6570d6..268418e5b3e0 100644
--- a/tests/nvme/rc
+++ b/tests/nvme/rc
@@ -150,6 +150,16 @@  _test_dev_nvme_nsid() {
 	cat "${TEST_DEV_SYSFS}/nsid"
 }
 
+_nvme_calc_rand_io_size() {
+	local img_size_mb
+	local io_size_kb
+
+	img_size_mb="$(convert_to_mb "$1")"
+	io_size_kb="$(((img_size_mb * 1024) / $(OMP_THREAD_LIMIT=32 nproc)))"
+
+	echo "${io_size_kb}k"
+}
+
 _nvme_fcloop_add_rport() {
 	local local_wwnn="$1"
 	local local_wwpn="$2"