[PATCH v2 4/7] nvme_fc: add dev_loss_tmo to controller
James Smart
james.smart at broadcom.com
Wed Oct 11 08:10:51 PDT 2017
On 10/11/2017 3:17 AM, Sagi Grimberg wrote:
>
>> Hmm - this raise flags in my mind. I'm not sure how a dev_loss_tmo
>> applies to any other transport other than FC.
>
> Can you explain what exactly do you mean by dev_loss_tmo only applies
> to FC?
Well I'm at a loss at how dev_loss_tmo could apply to another transport
like RDMA or TCP. I'd like someone to explain it to me.
afaik - no other transport has events from the fabric when connectivity
changes (perhaps on the otherside of a switch) thus the transport
actively tracks connectivity to the other endpoint. FC does. So we know
almost immediately when a target port goes away. Dev_loss_tmo is a
duration after initial connectivity loss where we wait and suspend
devices attached to the fc port - both scsi and fc-nvme - allowing the
port to come back and the os-device to resume operation. if it expires,
the device is deleted. It's existed on SCSI for many years. So it's
basically the same behavior as the ctrl_loss_tmo, but the timer is at
the port level and spans multiple ctrl's. Given they were so similar, I
munged the ctrl_loss_tmo and dev_loss_tmo together and timed things at
the controller only. Now I'm regretting that choice and keeping things
in their natural place: ctlr_loss_tmo a the ctlr level (regardless of
connectivity, with immediate reconnect reschedule if no connectivity);
and dev_loss_tmo at the fc port level (connectivity loss starts
reset/reconnect on all, timeout deletes all).
-- james
More information about the Linux-nvme
mailing list