[PATCH v2 7/8] nvme-rdma: fix timeout handler
Sagi Grimberg
sagi at grimberg.me
Tue Aug 18 20:39:19 EDT 2020
>> On 8/6/2020 12:11 PM, Sagi Grimberg wrote:
>>> Currently we check if the controller state != LIVE, and
>>> we directly fail the command under the assumption that this
>>> is the connect command or an admin command within the
>>> controller initialization sequence.
>>>
>>> This is wrong, we need to check if the request risking
>>> controller setup/teardown blocking if not completed and
>>> only then fail.
>>>
>>> The logic should be:
>>> - RESETTING, only fail fabrics/admin commands otherwise
>>> controller teardown will block. otherwise reset the timer
>>> and come back again.
>>> - CONNECTING, if this is a connect (or an admin command), we fail
>>> right away (unblock controller initialization), otherwise we
>>> treat it like anything else.
>>> - otherwise trigger error recovery and reset the timer (the
>>> error handler will take care of completing/delaying it).
>>>
>>> Signed-off-by: Sagi Grimberg <sagi at grimberg.me>
>>> ---
>>> drivers/nvme/host/rdma.c | 68 +++++++++++++++++++++++++++++-----------
>>> 1 file changed, 50 insertions(+), 18 deletions(-)
>>>
>>> diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/rdma.c
>>> index abc318737f35..30b401fcc06a 100644
>
> Note: FC has to do this a little differently. From what I can tell,
> there's no cross-overs in your patches vs mine, so no need to wait for
> FC patches to marry with them.
Good to know James.
More information about the Linux-nvme
mailing list