Re: [Bugme-new] [Bug 9405] New: iSCSI does not implement ordering guarantees required by e.g. journaling filesystems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



James Bottomley wrote:
if you specifically set TAS=1 you're giving up the right to know what
caused the command termination.  With insufficient information, it's
really unsafe to simply retry, which is why the mid layer just returns
TASK ABORTED as an error.  If you set TAS=0 we'll get a check
condition/unit attention explaining what happened (usually commands
cleared by another initiator) and we'll explicitly do the right thing
based on the sense data.

Actually, having TAS=1 has a considerably advantage over TAS=0 from error recovery point of view. With TAS=1 all aborted commands are supposed to be returned immediately to all affected initiators. With TAS=0 affected initiators will not receive any notification about aborted commands, only COMMANDS CLEARED BY ANOTHER INITIATOR UA will be established. So, they will know about that only after there will be timeout for their commands.

Thus, with TAS=1 almost immediate error recovery is possible, but with TAS=0 error recovery is possible after timeout, which for SSC devices can be hours.

But having TAS=1 is legal, right? So it should be handled well. If TAS=0, TASK ABORTED can't be returned, it would be illegal. So, TASK ABORTED status can only be returned with TAS=1.

Driving with your handbrake on is legal too ... that doesn't mean you
should do it ... and it certainly doesn't give you a legitimate
complaint against the manufacturer of your car for excessive brake pad
wear.

We handle TASK ABORTED as well as we can (by failing it).  For better
handling set TAS=0 and we'll handle the individual cases according to
the sense codes.

After some digging in SAM/SPC I've figured out that TASK ABORTED status can be returned exactly in the same circumstances as COMMANDS CLEARED BY ANOTHER INITIATOR UA, it only depends from TAS bit, which way of the notification is used. So, TASK ABORTED status carries the same information as COMMANDS CLEARED BY ANOTHER INITIATOR UA and should be handled at the same way. I.e., if for COMMANDS CLEARED BY ANOTHER INITIATOR UA the affected commands are restarted, they should be restarted for TASK ABORTED status as well.

Vlad
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux