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