In order to support latency critical devices, relying on TCP retransmissions is not giving a timely indication, once the connecitivity is restored.
TCP retransmissions are using an exponential backoff interval between each retransmission, thus after the first few initial tries, connectivity is probed with multi-second gaps.
This in turn can easily exceed the application timeout even when network services got restored in time, but simply not probed fast enough.
MPIO is not always possible, and would only address this effect when sessions are using truly indendent network paths.
Each individual session is still exposed to the same effect of TCP.
Timing differences and possible some random out-of-phase processing of SCSI IOs may help somewhat,
This patch has a number of enhancements:
Per-Session configurable ping (SCSI NOP) and login timeouts.
These are configures similar to what is supported in the Linux iSCSI initiator configuration file.
Reduced iscsi timer granularity to 0.1 sec.
For backwards compatibility, when all timers are selected on integer numbers, all status messages are unchanged.
Further, the schedule will also be run only once per second (instead of 10 times per second) to minimize overhead, where this is unnecessary.
The sysctl(3) interface has changed from pure int to string, in order to support deciseconds in a human-readable, dotted (fractional) notation.