Thread (30 messages) 30 messages, 4 authors, 2021-03-22

Re: [PATCH 0/3 rfc] Fix nvme-tcp and nvme-rdma controller reset hangs

From: Christoph Hellwig <hch@lst.de>
Date: 2021-03-17 06:59:29

On Wed, Mar 17, 2021 at 10:55:57AM +0800, Chao Leng wrote:
quoted
quoted
Will it work if nvme mpath used request NOWAIT flag for its submit_bio()
call, and add the bio to the requeue_list if blk_queue_enter() fails? I
think that looks like another way to resolve the deadlock, but we need
the block layer to return a failed status to the original caller.
Yes, I think BLK_MQ_REQ_NOWAIT makes total sense here.  dm-mpath also
uses it for its request allocation for similar reasons.
quoted
But who would kick the requeue list? and that would make near-tag-exhaust performance stink...
The multipath code would have to kick the list.  We could also try to
split into two flags, one that affects blk_queue_enter and one that
affects the tag allocation.
moving nvme_start_freeze from nvme_rdma_teardown_io_queues to nvme_rdma_configure_io_queues can fix it.
It can also avoid I/O hang long time if reconnection failed.
Can you explain how we'd still ensure that no new commands get queued
during teardown using that scheme?

_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help