Linux block layer
 help / color / mirror / Atom feed
* connect cmd error for nvme-rdma with eventual kernel crash
@ 2017-03-01  0:57 Parav Pandit
  2017-03-01  1:26 ` Jens Axboe
  0 siblings, 1 reply; 5+ messages in thread
From: Parav Pandit @ 2017-03-01  0:57 UTC (permalink / raw)
  To: axboe@fb.com
  Cc: linux-block@vger.kernel.org, Sagi Grimberg, Christoph Hellwig,
	Max Gurtovoy

Hi Jens,

With your commit 2af8cbe30531eca73c8f3ba277f155fc0020b01a in linux-block gi=
t 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 dyna=
mic table which doesn't seem to be always initialized.

I am running nvme-rdma initiator and it fails to find the request for the g=
iven 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 poi=
nter. 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] =3D rq;
+			tags->rqs[i] =3D 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 recen=
t static and dynamic rq tables change.

Can you please confirm?

Regards,
Parav Pandit

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-03-01 15:06 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-03-01  0:57 connect cmd error for nvme-rdma with eventual kernel crash Parav Pandit
2017-03-01  1:26 ` Jens Axboe
2017-03-01  4:55   ` Parav Pandit
2017-03-01  5:50     ` Omar Sandoval
2017-03-01 15:06       ` Parav Pandit

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox