Re: [PATCH v3] nvme-fabrics: reject I/O to offline device
From: Chaitanya Kulkarni <hidden>
Date: 2020-03-02 03:31:02
When reviewing this patch I found a bug, along with some general kernel style fixes. Sent out updated version V4 please have a look. On 02/26/2020 12:53 AM, Victor Gladkov wrote:
Refactoring according the last reviews: - Move call functionality out the state machine. - Break long lines - Change parameter name from " fast_fail_tmo" to " fast_io_fail_tmo" ----------------------------------------- Commands get stuck while Host NVMe controller (TCP or RDMA) is in reconnect state. NVMe controller enters into reconnect state when it loses connection with the target. It tries to reconnect every 10 seconds (default) until successful reconnection or until reconnect time-out is reached. The default reconnect time out is 10 minutes. 1. Add a new session parameter called "fast_io_fail_tmo". The timeout is measured in seconds from the controller reconnect, any command beyond that timeout is rejected. The new parameter value may be passed during 'connect'. Default value of 0 means no timeout (in similar to current behavior). 2. Add a controller flag of "NVME_CTRL_FAILFAST_EXPIRED". 3. Add dedicated delayed_work that update the "NVME_CTRL_FAILFAST_EXPIRED" controller flag. 4. When entering CONNECTING, schedule the delayed_work based on failfast timeout value. If transition out of CONNECTING, terminate delayed work item and ensure failfast_expired is false. If delayed work item expires: set "NVME_CTRL_FAILFAST_EXPIRED" flag to true. 5. Update nvmf_fail_nonready_command() and nvme_available_path() functions with check the "NVME_CTRL_FAILFAST_EXPIRED" controller flag. Signed-off-by: Victor Gladkov < victor.gladkov at kioxia.com>
_______________________________________________ linux-nvme mailing list linux-nvme@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-nvme