Messages in this thread | | | Date | Fri, 21 Apr 2023 08:33:46 +0200 | Subject | Re: [PATCH REPOST blktests v2 7/9] nvme-rc: Calculate IO size for fio jobs | From | Hannes Reinecke <> |
| |
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@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)))" > +
... 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@suse.de +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
| |