All of lore.kernel.org
 help / color / mirror / Atom feed
From: Niklas Cassel <Niklas.Cassel@wdc.com>
To: Shinichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Cc: "fio@vger.kernel.org" <fio@vger.kernel.org>,
	Jens Axboe <axboe@kernel.dk>,
	Damien Le Moal <Damien.LeMoal@wdc.com>,
	Dmitry Fomichev <Dmitry.Fomichev@wdc.com>
Subject: Re: [PATCH v2 1/3] t/zbd: Use max_open_zones that fio fetched from device
Date: Fri, 4 Jun 2021 08:03:12 +0000	[thread overview]
Message-ID: <YLnePubuHuPCea/E@x1-carbon> (raw)
In-Reply-To: <20210604053351.763028-2-shinichiro.kawasaki@wdc.com>

On Fri, Jun 04, 2021 at 02:33:49PM +0900, Shin'ichiro Kawasaki wrote:
> Recent commit d2f442bc0bd5 ("ioengines: add get_max_open_zones zoned
> block device operation") modified fio to compare --max_open_zones option
> value and max_open_zones reported by the device. The device limit is
> fetched through sysfs or through an ioengine specific implementation.
> 
> The test script currently try to fetch the max open zones limit using
> libzbc tools or sg_inq. If either of these fail, default value 128 is
> supplied. This default value can be too high when the test script is
> run for certain zoned block devices, and can therefore result in fio
> error and test case failure.
> 
> To avoid the failure, modify the default value used in the test script
> from 128 to 0. With this, --max_open_zones=0 is passed to fio, and it
> makes fio use the max_open_zones reported by the device. Also add
> comments to describe why the test script gets max_open_zones with tools.
> 
> Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
> ---
>  t/zbd/functions | 15 ++++++++++++---
>  1 file changed, 12 insertions(+), 3 deletions(-)
> 
> diff --git a/t/zbd/functions b/t/zbd/functions
> index 40ffe1de..06973f79 100644
> --- a/t/zbd/functions
> +++ b/t/zbd/functions
> @@ -173,15 +173,24 @@ last_online_zone() {
>      fi
>  }
>  
> +# Get max_open_zones of SMR drives using sg_inq or libzbc tools. Two test cases
> +# 31 and 32 use this max_open_zones value. The test case 31 uses max_open_zones
> +# to decide number of write target zones. The test case 32 passes max_open_zones
> +# value to fio with --max_open_zones option. Of note is that fio itself as the
> +# feature to get max_open_zones from the device through sysfs or ioengine

has the feature?

> +# specific implementation. This max_open_zones fetch by test script is required
> +# in case 1) ioengine lacks max_open_zones fetch feature, 2) Linux kernel lacks
> +# zoned block device support, or 3) Linux kernel supports zoned block devices
> +# but lacks max_open_zones in sysfs.

1) ioengine lacks max_open_zones
makes it sound like that is something that is needed,
it is not, there is the oslib implementation.

I think that you can replace 1, 2, 3 with something simpler like:

... is required in case fio is running on an old Linux kernel version which
lacks max_open_zones in sysfs.

Or if you want something more specific:

... is required in case fio is running on an old Linux kernel version which
lacks max_oper_zones in sysfs, or which lacks zbd support completely.

>  max_open_zones() {
>      local dev=$1
>  
>      if [ -n "${sg_inq}" ] && [ ! -n "${use_libzbc}" ]; then
>  	if ! ${sg_inq} -e --page=0xB6 --len=20 --hex "$dev" \
>  		 > /dev/null 2>&1; then
> -	    # Non scsi device such as null_blk can not return max open zones.
> -	    # Use default value.
> -	    echo 128
> +	    # When sg_inq can not get max open zones, specify 0 which indicates
> +	    # fio to get max open zones limit from the device.
> +	    echo 0
>  	else
>  	    ${sg_inq} -e --page=0xB6 --len=20 --hex "$dev" | tail -1 |
>  		{
> -- 
> 2.31.1
> 

  reply	other threads:[~2021-06-04  8:03 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-04  5:33 [PATCH v2 0/3] t/zbd: Fix max_open_zones related failures Shin'ichiro Kawasaki
2021-06-04  5:33 ` [PATCH v2 1/3] t/zbd: Use max_open_zones that fio fetched from device Shin'ichiro Kawasaki
2021-06-04  8:03   ` Niklas Cassel [this message]
2021-06-04 10:33     ` Shinichiro Kawasaki
2021-06-04  5:33 ` [PATCH v2 2/3] t/zbd: Add ignore_zone_limit option to test with special max_open_zones Shin'ichiro Kawasaki
2021-06-04  7:35   ` Niklas Cassel
2021-06-04  5:33 ` [PATCH v2 3/3] t/zbd: Fix write target zones counting in test case #31 Shin'ichiro Kawasaki
2021-06-04  7:37   ` Niklas Cassel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YLnePubuHuPCea/E@x1-carbon \
    --to=niklas.cassel@wdc.com \
    --cc=Damien.LeMoal@wdc.com \
    --cc=Dmitry.Fomichev@wdc.com \
    --cc=axboe@kernel.dk \
    --cc=fio@vger.kernel.org \
    --cc=shinichiro.kawasaki@wdc.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.