All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@kernel.org>
To: Theodore Ts'o <tytso@mit.edu>
Cc: fstests@vger.kernel.org
Subject: Re: [PATCH 1/2] common: check if the scratch device can support 1024 block sizes
Date: Mon, 23 Oct 2023 08:45:13 -0700	[thread overview]
Message-ID: <20231023154513.GF11391@frogsfrogsfrogs> (raw)
In-Reply-To: <20231022215529.2202150-2-tytso@mit.edu>

On Sun, Oct 22, 2023 at 05:55:28PM -0400, Theodore Ts'o wrote:
> If the scratch device has as logical blocksize larger than 512 --- for
> example, some SSD or HDD's may have a 4k logical blocksize, and so
> will not support a file system with a 1k block size.
> 
> Add a new function, _require_scratch_support_blocksize so we can skip
> tests that use _scratch_mkfs_blocksized with a size less than the
> scratch device's logical block size.
> 
> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
> ---
>  common/rc      | 12 ++++++++++++
>  tests/ext4/055 |  1 +
>  tests/xfs/205  |  1 +
>  tests/xfs/432  |  1 +
>  tests/xfs/516  |  1 +
>  5 files changed, 16 insertions(+)
> 
> diff --git a/common/rc b/common/rc
> index 7f5a9527c..8d7179567 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -1124,6 +1124,9 @@ _scratch_mkfs_blocksized()
>  	if [ $blocksize -lt $(_get_page_size) ]; then
>  		_exclude_scratch_mount_option dax
>  	fi
> +	if [ $blocksize -lt $(blockdev --getss $SCRATCH_DEV) ]; then
> +		_require_scratch_support_blocksize "$blocksize"
> +	fi

This duplicates the logic in _require_scratch_support_blocksize, so I
think you can drop it.

>  
>  	case $FSTYP in
>  	btrfs)
> @@ -4452,6 +4455,15 @@ _get_device_size()
>  	echo $(($(blockdev --getsz $1) >> 1))
>  }
>  
> +_require_scratch_support_blocksize()
> +{
> +	local blocksize=$1
> +
> +	if [ $blocksize -lt $(blockdev --getss $SCRATCH_DEV) ]; then
> +		_notrun "$SCRATCH_DEV does not support a block size of $blocksize."

"block" is a bit vague in this context -- you mean the LBA size, not the
internal physical block size, right?

May I suggest "...does not support an LBA size of $blocksize." ?

--D

> +	fi
> +}
> +
>  # Make sure we actually have dmesg checking set up.
>  _require_check_dmesg()
>  {
> diff --git a/tests/ext4/055 b/tests/ext4/055
> index aa15cfe98..7025f6283 100755
> --- a/tests/ext4/055
> +++ b/tests/ext4/055
> @@ -27,6 +27,7 @@ echo "Silence is golden"
>  
>  # The 1K blocksize is designed for debugfs.
>  _exclude_scratch_mount_option dax
> +_require_scratch_support_blocksize 1024
>  _scratch_mkfs "-F -O quota -b 1024" > $seqres.full 2>&1
>  
>  # Start from 0, fill block 1 with 6,replace the original 2.
> diff --git a/tests/xfs/205 b/tests/xfs/205
> index 104f1f45a..84c099208 100755
> --- a/tests/xfs/205
> +++ b/tests/xfs/205
> @@ -23,6 +23,7 @@ _require_scratch_nocheck
>  unset SCRATCH_RTDEV
>  
>  fsblksz=1024
> +_require_scratch_support_blocksize $fsblksz
>  _scratch_mkfs_xfs -d size=$((32768*fsblksz)) -b size=$fsblksz >> $seqres.full 2>&1
>  _scratch_mount
>  
> diff --git a/tests/xfs/432 b/tests/xfs/432
> index 66315b039..2efa6230b 100755
> --- a/tests/xfs/432
> +++ b/tests/xfs/432
> @@ -50,6 +50,7 @@ echo "Format and mount"
>  # block.  8187 hashes/dablk / 248 dirents/dirblock = ~33 dirblocks per
>  # dablock.  33 dirblocks * 64k mean that we can expand a directory by
>  # 2112k before we have to allocate another da btree block.
> +_require_scratch_support_blocksize 1024
>  _scratch_mkfs -b size=1k -n size=64k > "$seqres.full" 2>&1
>  _scratch_mount >> "$seqres.full" 2>&1
>  
> diff --git a/tests/xfs/516 b/tests/xfs/516
> index 9e1b99317..65fc635dd 100755
> --- a/tests/xfs/516
> +++ b/tests/xfs/516
> @@ -23,6 +23,7 @@ _cleanup()
>  # real QA test starts here
>  _supported_fs xfs
>  _require_scratch_nocheck
> +_require_scratch_support_blocksize 1024
>  
>  # Assume that if we can run scrub on the test dev we can run it on the scratch
>  # fs too.
> -- 
> 2.31.0
> 

  reply	other threads:[~2023-10-23 15:45 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-22 21:55 [PATCH 0/2] Fix test failures caused by storage devcies with 4k sectors Theodore Ts'o
2023-10-22 21:55 ` [PATCH 1/2] common: check if the scratch device can support 1024 block sizes Theodore Ts'o
2023-10-23 15:45   ` Darrick J. Wong [this message]
2023-10-23 19:48     ` Theodore Ts'o
2023-10-22 21:55 ` [PATCH 2/2] generic/563: create the loop dev with the same block size as the scratch dev Theodore Ts'o
2023-10-23 15:54   ` Darrick J. Wong

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=20231023154513.GF11391@frogsfrogsfrogs \
    --to=djwong@kernel.org \
    --cc=fstests@vger.kernel.org \
    --cc=tytso@mit.edu \
    /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.