Thread (13 messages) 13 messages, 5 authors, 2021-11-02

Re: [bug report] block/005 hangs with NVMe device and linux-block/for-next

From: Damien Le Moal <hidden>
Date: 2021-11-02 08:28:12
Also in: linux-nvme

+linux-nvme (Keith and Christoph)


On 2021/11/02 17:19, Shinichiro Kawasaki wrote:
On Nov 02, 2021 / 03:07, Chaitanya Kulkarni wrote:
quoted
quoted
The NVMe device I use is a U.2 NVMe ZNS SSD. It has a zoned name space and
a regular name space, and the hang is observed with both name spaces. I have
not yet tried other NVME devices, so I will try them.
I tried another NVMe device, WD Black SN750, but it did not recreate the hang.
quoted
quoted
See if you can produce this with QEMU NVMe emulation (ZNS and NON-ZNS
mode), if you can then it will be easier to reproduce for everyone.
Chaitanya, thank you for the advice. I have managed to reproduce the hang with
QEMU NVMe emulation. Actually, ZNS mode is not required. I tried some device
set up configuration with QEMU, and the hang was recreated when a single NVMe
device has two namespaces. With single namespace in a single NVMe device, the
hang is not observed.

So it looks like that the number of namespaces may be related to the cause. The
WD Black SN750 without hang has single namespace. I reduced the number of
namespaces of the U.2 NVMe ZNS SSD from 2 to 1, then the hang was not observed.

FYI, the QEMU command line options that I used was as follows. It prepares
/dev/nvme0n1 and /dev/nvme0n2, and the block/005 run on /dev/nvme0n1 recreated
the hang.

-device nvme,id=nvme0,serial=qemunvme,logical_block_size=4096,physical_block_size=4096 \
-drive file=(path)/nvme0n1.img,id=nvme0n1,format=raw,if=none \
-device nvme-ns,drive=nvme0n1,bus=nvme0,nsid=1 \
-drive file=(path)/nvme0n2.img,id=nvme0n2,format=raw,if=none \
-device nvme-ns,drive=nvme0n2,bus=nvme0,nsid=2

Regarding the two image files, I created them beforehand with the command below:

$ qemu-img create -f raw "${image_file_path}" 1024M

Hope this helps.


-- 
Damien Le Moal
Western Digital Research
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help