On 6/25/24 18:01, Daniel Wagner wrote: > On Mon, Jun 24, 2024 at 01:46:18PM GMT, Ofir Gal wrote: >> +#restrict test to nvme-tcp only >> +nvme_trtype=tcp >> +nvmet_blkdev_type="device" >> + >> +requires() { >> + # Require dm-stripe >> + _have_program dmsetup >> + _have_driver dm-mod >> + >> + _require_nvme_trtype tcp >> + _have_brd >> +} >> + >> +# Sets up a brd device of 1G with optimal-io-size of 256K >> +setup_underlying_device() { >> + if ! _init_brd rd_size=1048576 rd_nr=1; then >> + return 1 >> + fi >> + >> + dmsetup create ram0_big_optio --table \ >> + "0 $(blockdev --getsz /dev/ram0) striped 1 512 /dev/ram0 0" >> +} >> + >> +cleanup_underlying_device() { >> + dmsetup remove ram0_big_optio >> + _cleanup_brd >> +} >> + >> +# Sets up a local host nvme over tcp >> +setup_nvme_over_tcp() { >> + _setup_nvmet >> + >> + local port >> + port="$(_create_nvmet_port "${nvme_trtype}")" >> + >> + _create_nvmet_subsystem "blktests-subsystem-0" "/dev/mapper/ram0_big_optio" >> + _add_nvmet_subsys_to_port "${port}" "blktests-subsystem-0" > Use the defaults from blktests, e.g. ${def_subsysnqn}" > >> + >> + _create_nvmet_host "blktests-subsystem-0" "${def_hostnqn}" >> + >> + _nvme_connect_subsys --subsysnqn "blktests-subsystem-0" >> + >> + local nvmedev >> + nvmedev=$(_find_nvme_dev "blktests-subsystem-0") > here too > >> + echo "${nvmedev}" >> +} >> + >> +cleanup_nvme_over_tcp() { >> + local nvmedev=$1 >> + _nvme_disconnect_ctrl "${nvmedev}" >> + _nvmet_target_cleanup --subsysnqn "blktests-subsystem-0" > same here > >> +} >> + >> +test() { >> + echo "Running ${TEST_NAME}" >> + >> + setup_underlying_device >> + local nvmedev >> + nvmedev=$(setup_nvme_over_tcp) >> + >> + # Hangs here without the fix >> + mdadm --quiet --create /dev/md/blktests_md --level=1 --bitmap=internal \ >> + --bitmap-chunk=1024K --assume-clean --run --raid-devices=2 \ >> + /dev/"${nvmedev}"n1 missing > Instead hard coding the namespace ID, this should be made a bit more > robust by looking it up with _find_nvme_ns. Thanks, applied comments to v3.