[PATCHv2 blktests 2/2] nvme: add test for writing to file-ns just after disabling it
Shinichiro Kawasaki
shinichiro.kawasaki at wdc.com
Thu Dec 5 17:53:24 PST 2024
Thanks for this v2 patch. I took a quick look. Please find my comments in line.
Will do another round of review when v3 comes out.
On Dec 04, 2024 / 17:17, Nilay Shroff wrote:
> This is a regression test for commit 505363957fad ("nvmet: fix nvme
> status code when namespace is disabled")[1].
>
> This test creates a regular file backed loop target namespace, disables
> the asynchronous event notification for ns-changed events and then write
> to the namespace just after disabling it.
>
> [1] https://lore.kernel.org/linux-nvme/tqcy3sveity7p56v7ywp7ssyviwcb3w4623cnxj3knoobfcanq@yxgt2mjkbkam/
>
> Signed-off-by: Nilay Shroff <nilay at linux.ibm.com>
> ---
> tests/nvme/055 | 117 +++++++++++++++++++++++++++++++++++++++++++++
> tests/nvme/055.out | 2 +
> 2 files changed, 119 insertions(+)
> create mode 100755 tests/nvme/055
> create mode 100644 tests/nvme/055.out
>
> diff --git a/tests/nvme/055 b/tests/nvme/055
> new file mode 100755
> index 0000000..f1f19fe
> --- /dev/null
> +++ b/tests/nvme/055
> @@ -0,0 +1,117 @@
> +#!/bin/bash
> +# SPDX-License-Identifier: GPL-3.0+
> +# Copyright (C) 2024 Nilay Shroff
> +#
> +# Regression test for commit 505363957fad ("nvmet: fix nvme
> +# status code when namespace is disabled").
As I commented for v1 series after this v2 came out, I suggest to describe that
this test intents to be independent from udev rules.
> +
> +. tests/nvme/rc
> +
> +DESCRIPTION="Test nvme write to a loop target ns just after ns is disabled"
> +
> +QUICK=1
> +
[...]
> +
> +test() {
> + echo "Running ${TEST_NAME}"
> +
> + local iteration=1 i=0
> +
> + _setup_nvmet
> +
> + _nvmet_target_setup
> +
> + _nvme_connect_subsys
> +
> + img="$(mktemp /tmp/blk_img_XXXXXX)"
> + dd if=/dev/urandom of="$img" bs=512 count=1 status=none
mktemp is not recommended, since blktests provides $TMPDIR as described
in the "new" file.
> +
> + subsys_path="${NVMET_CFS}/subsystems/${def_subsysnqn}"
> + ns_path="${subsys_path}/namespaces/${def_nsid}"
> +
> + while (( i < iteration )); do
> + # Wait until async request is processed and default ns
> + # is created
[...]
> +
> + # disable target namespace and write to it
> + echo 0 > ${ns_path}/enable
> + nvme write --start-block=1 --block-count=0 \
> + --data-size=512 --data="$img" "$disk" 2>>"$FULL"
Instead of --data="$img", can we use"--data=/dev/urandam"? If it works,
we can avoid the img file.
> +
> + ((i++))
> + done
> +
> + rm "$img"
If we need img file, let's use $TMPDIR to skip this rm command.
> +
> + _nvme_disconnect_subsys >> "$FULL" 2>&1
> +
> + _nvmet_target_cleanup
> +
> + echo "Test complete"
> +}
[...]
More information about the Linux-nvme
mailing list