Re: [PATCHv2 blktests 1/2] throtl/002: calculate block-size based on device max-sectors setting

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

 



Tested-by: Yi Zhang <yi.zhang@xxxxxxxxxx>

Confirmed the patch fixed the throtl/002 failure on
ppc64le/aarch64+64k on 6.13-rc4.

On Wed, Dec 18, 2024 at 9:49 PM Nilay Shroff <nilay@xxxxxxxxxxxxx> wrote:
>
> The commit 60fa2e3ff3ab ("update max_sectors setting") added max-sectors
> while setting up throttle device. So now we should also calculate block-
> size which matches the wiops. Typically, size of each IO which is submitted
> to the block device depends on the max-sectors setting of the block device.
> For example setting max-sectors to 128 results into 64kb of max. IO size
> which should be used for sending read/write command to the device. So take
> into account the max-sectors-kb and wiops settings and calculate the
> appropriate block-size which is then used to issue IO to the block device.
> This change would result in always submitting 256 I/O read/write commands
> to block device.
>
> Without this change on a system with 64k PAGE SIZE, using block-size of 1M
> would result in 16 I/O being submitted to the device and this operation may
> finish in a fraction of a section and result in test failure. However the
> intent of this test case is that we want to test submitting 256 I/O after
> setting wiops limit to 256.
>
> Reviewed-by: Yu Kuai <yukuai3@xxxxxxxxxx>
> Signed-off-by: Nilay Shroff <nilay@xxxxxxxxxxxxx>
> ---
>  tests/throtl/002 | 14 ++++++++++----
>  tests/throtl/rc  |  4 ++++
>  2 files changed, 14 insertions(+), 4 deletions(-)
>
> diff --git a/tests/throtl/002 b/tests/throtl/002
> index 185e66b..02b0969 100755
> --- a/tests/throtl/002
> +++ b/tests/throtl/002
> @@ -14,6 +14,9 @@ test() {
>         echo "Running ${TEST_NAME}"
>
>         local page_size max_secs
> +       local io_size_kb block_size
> +       local iops=256
> +
>         page_size=$(getconf PAGE_SIZE)
>         max_secs=$((page_size / 512))
>
> @@ -21,12 +24,15 @@ test() {
>                 return 1;
>         fi
>
> -       _throtl_set_limits wiops=256
> -       _throtl_test_io write 1M 1
> +       io_size_kb=$(($(_throtl_get_max_io_size) * 1024))
> +       block_size=$((iops * io_size_kb))
> +
> +       _throtl_set_limits wiops="${iops}"
> +       _throtl_test_io write "${block_size}" 1
>         _throtl_remove_limits
>
> -       _throtl_set_limits riops=256
> -       _throtl_test_io read 1M 1
> +       _throtl_set_limits riops="${iops}"
> +       _throtl_test_io read "${block_size}" 1
>         _throtl_remove_limits
>
>         _clean_up_throtl
> diff --git a/tests/throtl/rc b/tests/throtl/rc
> index 9c264bd..330e6b9 100644
> --- a/tests/throtl/rc
> +++ b/tests/throtl/rc
> @@ -71,6 +71,10 @@ _throtl_remove_limits() {
>                 "$CGROUP2_DIR/$THROTL_DIR/io.max"
>  }
>
> +_throtl_get_max_io_size() {
> +       cat "/sys/block/$THROTL_DEV/queue/max_sectors_kb"
> +}
> +
>  _throtl_issue_io() {
>         local start_time
>         local end_time
> --
> 2.45.2
>


--
Best Regards,
  Yi Zhang






[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