[blktests,v3,05/12] nvme: Use runtime fio background jobs

Message ID 20230503080258.14525-6-dwagner@suse.de
State New
Headers
Series nvme testsuite runtime optimization |

Commit Message

Daniel Wagner May 3, 2023, 8:02 a.m. UTC
  The fio jobs are supposed to run long in background during the test.
Instead relying on a job size use explicit runtime for this.

Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
 tests/nvme/032 | 4 ++--
 tests/nvme/040 | 9 +++++++--
 2 files changed, 9 insertions(+), 4 deletions(-)
  

Comments

Shinichiro Kawasaki May 7, 2023, 10:56 p.m. UTC | #1
On May 03, 2023 / 10:02, Daniel Wagner wrote:
> The fio jobs are supposed to run long in background during the test.
> Instead relying on a job size use explicit runtime for this.
> 
> Signed-off-by: Daniel Wagner <dwagner@suse.de>
> ---
>  tests/nvme/032 | 4 ++--
>  tests/nvme/040 | 9 +++++++--

Nit: I suggest "nvme/{032,040}" as the commit title prefix.

>  2 files changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/tests/nvme/032 b/tests/nvme/032
> index 017d4a339971..2e4b7f0760c7 100755
> --- a/tests/nvme/032
> +++ b/tests/nvme/032
> @@ -38,8 +38,8 @@ test_device() {
>  	sysfs="/sys/bus/pci/devices/${pdev}"
>  
>  	# start fio job
> -	_run_fio_rand_io --filename="$TEST_DEV" --size=1g \
> -		--group_reporting  &> /dev/null &
> +	_run_fio_rand_io --filename="$TEST_DEV" \
> +		--group_reporting --time_based --runtime=-1 &> /dev/null &

Nit: I checked fio man page, and did not find meaning of negative value for the
--runtime option. I also checked fio code, it looks that -1 is handled as
ULONG_MAX by type cast from singed long long to unsigned long long. Assuming
such negative values for the options are not well defined, --runtime=1d or
--runtime=365d would be the better to mean 'infinite runtime'.

>  
>  	sleep 5
>  
> diff --git a/tests/nvme/040 b/tests/nvme/040
> index 04bd726cd309..05b4f5472ef5 100755
> --- a/tests/nvme/040
> +++ b/tests/nvme/040
> @@ -21,6 +21,7 @@ test() {
>  	local port
>  	local loop_dev
>  	local nvmedev
> +	local fio_pid
>  
>  	echo "Running ${TEST_NAME}"
>  
> @@ -37,8 +38,10 @@ test() {
>  
>  	# start fio job
>  	echo "starting background fio"
> -	_run_fio_rand_io --filename="/dev/${nvmedev}n1" --size=1g \
> -		--group_reporting --ramp_time=5  &> /dev/null &
> +	_run_fio_rand_io --filename="/dev/${nvmedev}n1" \
> +		--group_reporting --ramp_time=5 \
> +		--time_based --runtime=-1 &> /dev/null &

Same as above.

> +	fio_pid=$!
>  	sleep 5
>  
>  	# do reset/remove operation
> @@ -48,6 +51,8 @@ test() {
>  	echo "deleting controller"
>  	_nvme_delete_ctrl "${nvmedev}"
>  
> +	{ kill "${fio_pid}"; wait; } &> /dev/null
> +
>  	_remove_nvmet_subsystem_from_port "${port}" "${subsys}"
>  	_remove_nvmet_subsystem "${subsys}"
>  	_remove_nvmet_port "${port}"
> -- 
> 2.40.0
>
  

Patch

diff --git a/tests/nvme/032 b/tests/nvme/032
index 017d4a339971..2e4b7f0760c7 100755
--- a/tests/nvme/032
+++ b/tests/nvme/032
@@ -38,8 +38,8 @@  test_device() {
 	sysfs="/sys/bus/pci/devices/${pdev}"
 
 	# start fio job
-	_run_fio_rand_io --filename="$TEST_DEV" --size=1g \
-		--group_reporting  &> /dev/null &
+	_run_fio_rand_io --filename="$TEST_DEV" \
+		--group_reporting --time_based --runtime=-1 &> /dev/null &
 
 	sleep 5
 
diff --git a/tests/nvme/040 b/tests/nvme/040
index 04bd726cd309..05b4f5472ef5 100755
--- a/tests/nvme/040
+++ b/tests/nvme/040
@@ -21,6 +21,7 @@  test() {
 	local port
 	local loop_dev
 	local nvmedev
+	local fio_pid
 
 	echo "Running ${TEST_NAME}"
 
@@ -37,8 +38,10 @@  test() {
 
 	# start fio job
 	echo "starting background fio"
-	_run_fio_rand_io --filename="/dev/${nvmedev}n1" --size=1g \
-		--group_reporting --ramp_time=5  &> /dev/null &
+	_run_fio_rand_io --filename="/dev/${nvmedev}n1" \
+		--group_reporting --ramp_time=5 \
+		--time_based --runtime=-1 &> /dev/null &
+	fio_pid=$!
 	sleep 5
 
 	# do reset/remove operation
@@ -48,6 +51,8 @@  test() {
 	echo "deleting controller"
 	_nvme_delete_ctrl "${nvmedev}"
 
+	{ kill "${fio_pid}"; wait; } &> /dev/null
+
 	_remove_nvmet_subsystem_from_port "${port}" "${subsys}"
 	_remove_nvmet_subsystem "${subsys}"
 	_remove_nvmet_port "${port}"