[PATCH v3] nvme-multipath: fix possible hang in live ns resize with ANA access
Sagi Grimberg
sagi at grimberg.me
Thu Sep 29 01:28:07 PDT 2022
On 9/29/22 10:36, Sagi Grimberg wrote:
> When we revalidate paths as part of ns size change (as of commit
> e7d65803e2bb), it is possible that during the path revalidation, the
> only paths that is IO capable (i.e. optimized/non-optimized) are the
> ones that ns resize was not yet informed to the host, which will cause
> inflight requests to be requeued (as we have available paths but none
> are IO capable). These requests on the requeue list are waiting for
> someone to resubmit them at some point.
>
> The IO capable paths will eventually notify the ns resize change to the
> host, but there is nothing that will kick the requeue list to resubmit
> the queued requests.
>
> Fix this by always kicking the requeue list, and if no IO capable path
> exists, these requests will be queued again.
>
> A typical log that indicates that IOs are requeued:
> --
> nvme nvme1: creating 4 I/O queues.
> nvme nvme1: new ctrl: "testnqn1"
> nvme nvme2: creating 4 I/O queues.
> nvme nvme2: mapped 4/0/0 default/read/poll queues.
> nvme nvme2: new ctrl: NQN "testnqn1", addr 127.0.0.1:8009
> nvme nvme1: rescanning namespaces.
> nvme1n1: detected capacity change from 2097152 to 4194304
> block nvme1n1: no usable path - requeuing I/O
> block nvme1n1: no usable path - requeuing I/O
> block nvme1n1: no usable path - requeuing I/O
> block nvme1n1: no usable path - requeuing I/O
> block nvme1n1: no usable path - requeuing I/O
> block nvme1n1: no usable path - requeuing I/O
> block nvme1n1: no usable path - requeuing I/O
> block nvme1n1: no usable path - requeuing I/O
> block nvme1n1: no usable path - requeuing I/O
> block nvme1n1: no usable path - requeuing I/O
> nvme nvme2: rescanning namespaces.
> --
>
> Reported-by: Yogev Cohen <yogev at lightbitslabs.com>
> Fixes: e7d65803e2bb ("nvme-multipath: revalidate paths during rescan")
Would be good to add:
Cc: <stable at vger.kernel.org> # v5.15+
Just for clarity.
> Signed-off-by: Sagi Grimberg <sagi at grimberg.me>
More information about the Linux-nvme
mailing list