connect cmd error for nvme-rdma with eventual kernel crash

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Jens,

With your commit 2af8cbe30531eca73c8f3ba277f155fc0020b01a in linux-block git tree,
There are two requests tables. Static and dynamic of same size.
However function blk_mq_tag_to_rq() always try to get the tag from the dynamic table which doesn't seem to be always initialized.

I am running nvme-rdma initiator and it fails to find the request for the given tag when command completes.
Command triggers error recovery with "tag not found" error.
Eventually kernel is crashing in blk_mq_queue_tag_busy_iter() with NULL pointer. Seems to be additional bug in error recovery.

To debug, I added initializing dynamic tags as well.

blk_mq_alloc_rqs() {
			tags->static_rqs[i] = rq;
+			tags->rqs[i] = rq;

This appears to resolve the issue. But that's not the fix.
It appears to me that nvme stack is broken in certain conditions with recent static and dynamic rq tables change.

Can you please confirm?

Regards,
Parav Pandit





[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux