[PATCH blktests] loop: add test for creating/deleting file-ns

Chaitanya Kulkarni chaitanyak at nvidia.com
Mon Jun 17 18:35:00 PDT 2024


On 6/17/24 02:17, Nilay Shroff wrote:

I think subject line should start with nvme ?

nvme: add test for creating/deleting file-ns

> This is regression test for commit be647e2c76b2
> (nvme: use srcu for iterating namespace list)
>
> This test uses a regulare file backed loop device
> for creating and then deleting an NVMe namespace
> in a loop.


s/regulare/regular/ ?

nit:- commit log looks a bit short :-

This is regression test for commit be647e2c76b2
(nvme: use srcu for iterating namespace list)

This test uses a regulare file backed loop device for creating and
then deleting an NVMe namespace in a loop.

> Signed-off-by: Nilay Shroff <nilay at linux.ibm.com>
> ---
> This regression was first reported[1], and now it's
> fixed in 6.10-rc4[2]
>
> [1] https://lore.kernel.org/all/2312e6c3-a069-4388-a863-df7e261b9d70@linux.vnet.ibm.com/
> [2] commit ff0ffe5b7c3c (nvme: fix namespace removal list)

it will be helpful in long run to add above information
into the commit log, Shinichiro any thoughts ?

> ---
>   tests/nvme/051     | 65 ++++++++++++++++++++++++++++++++++++++++++++++
>   tests/nvme/051.out |  2 ++
>   2 files changed, 67 insertions(+)
>   create mode 100755 tests/nvme/051
>   create mode 100644 tests/nvme/051.out
>
> diff --git a/tests/nvme/051 b/tests/nvme/051
> new file mode 100755
> index 0000000..0de5c56
> --- /dev/null
> +++ b/tests/nvme/051
> @@ -0,0 +1,65 @@
> +#!/bin/bash
> +# SPDX-License-Identifier: GPL-3.0+
> +# Copyright (C) 2024 Nilay Shroff(nilay at linux.ibm.com)

not sure we need to have email address here as it's a part of
commit log anyways ...

> +#
> +# Regression test for commit be647e2c76b2(nvme: use srcu for iterating
> +# namespace list)
> +
> +. tests/nvme/rc
> +
> +DESCRIPTION="Test file-ns creation/deletion under one subsystem"
> +
> +requires() {
> +	_nvme_requires
> +	_have_loop
> +	_require_nvme_trtype_is_loop
> +}
> +
> +set_conditions() {
> +	_set_nvme_trtype "$@"
> +}
> +
> +test() {
> +	echo "Running ${TEST_NAME}"
> +
> +	_setup_nvmet
> +
> +	local subsys="blktests-subsystem-1"
> +	local iterations="${NVME_NUM_ITER}"

no need for above var, I think direct use of NVME_NUM_ITER is
clear here ...

> +	local loop_dev
> +	local port
> +
> +	truncate -s "${NVME_IMG_SIZE}" "$(_nvme_def_file_path)"
> +
> +	loop_dev="$(losetup -f --show "$(_nvme_def_file_path)")"
> +
> +	port="$(_create_nvmet_port "${nvme_trtype}")"
> +
> +	_nvmet_target_setup --subsysnqn "${subsys}" --blkdev "${loop_dev}"
> +
> +	_nvme_connect_subsys --subsysnqn "${subsys}"
> +
> +	for ((i = 2; i <= iterations; i++)); do {

small comment would be useful to explain why are starting at 2 ...

> +		truncate -s "${NVME_IMG_SIZE}" "$(_nvme_def_file_path).$i"
> +		_create_nvmet_ns "${subsys}" "${i}" "$(_nvme_def_file_path).$i"
> +
> +		# allow async request to be processed
> +		sleep 1
> +
> +		_remove_nvmet_ns "${subsys}" "${i}"
> +		rm "$(_nvme_def_file_path).$i"
> +	}
> +	done
> +
> +	_nvme_disconnect_subsys --subsysnqn "${subsys}" >> "${FULL}" 2>&1
> +
> +	_nvmet_target_cleanup --subsysnqn "${subsys}" --blkdev "${loop_dev}"
> +
> +	_remove_nvmet_port "${port}"
> +
> +	losetup -d "$loop_dev"
> +
> +	rm "$(_nvme_def_file_path)"
> +
> +	echo "Test complete"
> +}
> diff --git a/tests/nvme/051.out b/tests/nvme/051.out
> new file mode 100644
> index 0000000..156f068
> --- /dev/null
> +++ b/tests/nvme/051.out
> @@ -0,0 +1,2 @@
> +Running nvme/051
> +Test complete

thanks for the test, I think this is much needed test especially with
recent reported issues ...

-ck




More information about the Linux-nvme mailing list