Mike Christie wrote:
> Hannes Reinecke wrote:
>> If 'fast_abort' is not set we should be sending all outstanding
>> Data-out PDUs to the target, even after we have received the
>> tmf response. So we should make sure that the workqueue is really
>> flushed and all PDUs have been processed before setting the
>> 'SUSPEND' bit.
> 
> I tried to say this in the previous mails. Let me know if you are also 
> disagreeing with this or maybe just missed it.
> 
> iscsi_tcp, iser and cxgb3i can return from xmit_task when some buffer or 
> window closes. It can do this at any time, and it could leave a partial 
> pdu sent or if we are still trying to send all the data-outs for a 
> sequence then it could get stuck in the middle of that.
> 
Agreed.
As mentioned in my previous mail:
All I want to achieve here is to flush all outstanding Data-Out PDUs
_before_ the SUSPEND bit is set.
If all Data-Out PDUs are queued in the 'requeue' list _and_ we were
to go with my 'traverse all Data-Out PDUs' patch this patch might
not be necessary.

> Instead of suspend_tx, I think we have to add some wait_on_cmds type of 
> function where we wait for commends affected by the tmf to be sent.
> 
> So something like
> 
> wait_on_commands()
> {
>       loop for each cmd on requeue list
>               if (check_restrictions(task))
>                       wait for a while then restart loop and check
> }
> 
> // Instead of the wait we could also add some per task callback that 
> gets called when the data/pdus are finally sent, but that is probably 
> overkill.
> 
> 
> 
> eh_lu_reset()
> {
> 
> if (tmf successful)
>       wait_on_commands()
>       fail_scsi_tasks()
> }
> 
> 
I tried something similar, but this struck me as overly
complicated as a first stab.
But since you mention it, ok, do it.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                   zSeries & Storage
h...@suse.de                          +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Markus Rex, HRB 16746 (AG Nürnberg)

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~----------~----~----~----~------~----~------~--~---

Reply via email to