Re: [PATCH v2 2/4] target: Implement TMR_ABORT_TASK_SET

From: Thinh Nguyen
Date: Tue Jul 19 2022 - 19:06:20 EST


On 7/19/2022, Mike Christie wrote:
> On 7/18/22 9:07 PM, Thinh Nguyen wrote:
>> Task ABORT TASK SET function is required by SCSI transport protocol
> What OS is using this and how do they use it? For the latter, does the
> OS try an abort for each cmd first, then try an abort task set if the
> aborts fail (does fail mean get a response that indicates failure and
> also does a timeout count)? Or does it start with the abort task set?

It's not from any real driver. It's from the USB Compliant Verification
(https://www.usb.org/document-library/usb3cv). It uses the command for
UASP compliant test.

The test only ever aborts a single command at a time, so I can't confirm
your following questions. The SAM4-r14 wasn't clear on those questions
either.

> I'm asking because it looks like if it does an abort first, then the
> abort task set will always return TMR_TASK_DOES_NOT_EXIST. For the abort
> we will remove the cmds from the state_list so if the abort task set runs
> after the initiator has tried to abort all the commands it will never
> find any.

I didn't notice since I dropped a patch where I removed the
TMR_TASK_DOES_NOT_EXIST and UASP converts this to RC_TMF_COMPLETE. UASP
respond to FUNCTION COMPLETE with RC_TMF_COMPLETE. I'll can make a fix
to that.

If there's any suggestion to implement this, please advise.

Thanks,
Thinh

>> standards (SAM-4 r14 section 7.3). It is similar to ABORT TASK
>> function, but it applies to all commands received on a specified I_T
>> nexus rather than a specific referenced command. Modify
>> core_tmr_abort_task() to support TMR_ABORT_TASK_SET.
>>