Mike Christie wrote:
> Hey Hannes,
> Do you only need this patch with your cmdsn patch?
> The code below is a leftover from when I had the cmdsn check in 
> iscsi_datra_xmit. I am not sure why we would need to wake the xmit 
> thread. The reasons I have:
> 1. queuecommand or __iscsi_conn_send_pdu adds new task.
> 2. sendpage returns -EAGAIN. For this iscsi_tcp should call wake the 
> xmit thread from write_space right? Is there another error sendpage 
> could throw where write_space is not called like maybe a connection problem?
> 3. xmit thread was suspended for eh purposes.

Oh yeah, if it is somethimg like above, then the window can be open or 
closed or there might not even be any commands in flight, so maybe we 
should add a queue_work in iscsi_complete_pdu and a add a queue_delayed 
in iscsi_data_xmit if there is no commands in flight.

But let me know when we are hitting it so we can figure out how to best 
handle it.

> With your cmdsn patch
> 4. If you return from iscsi_data_xmit because you think the window is 
> closed. Did you try the queued_cmdsn lt vs lte patch, or heard back from 
> the hp guys about their handling of data-outs when the window is closed btw?
> Hannes Reinecke wrote:
>> There is another issue leading to an I/O stall:
>> when there is a command pending to be retried, ie conn->task is set after
>> we exit xmitworker(), the next incoming PDU will not trigger the
>> xmit thread as the queues might be empty, although a command is still
>> pending.
>> Try this:
>> diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c
>> index 716cc34..4493cd4 100644
>> --- a/drivers/scsi/libiscsi.c
>> +++ b/drivers/scsi/libiscsi.c
>> @@ -133,9 +133,7 @@ iscsi_update_cmdsn(struct iscsi_session *session, struct 
>> iscsi_
>> nopin *hdr)
>>                  * if the window closed with IO queued, then kick the
>>                  * xmit thread
>>                  */
>> -               if (!list_empty(&session->leadconn->cmdqueue) ||
>> -                   !list_empty(&session->leadconn->mgmtqueue))
>> -                       iscsi_conn_queue_work(session->leadconn);
>> +               iscsi_conn_queue_work(session->leadconn);
>>         }
>>  }
>>  EXPORT_SYMBOL_GPL(iscsi_update_cmdsn);
>> Cheers,
>> Hannes
> > 

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 
For more options, visit this group at http://groups.google.com/group/open-iscsi

Reply via email to