So after srp_reconnect_target() returns, SRP has no requests in its
queue.  The only way that a command could be put in the queue is if
the SCSI midlayer passes it back into the queuecommand functions.


Yes this is exactly what happening.

static int scsi_eh_host_reset(struct list_head *work_q,
                              struct list_head *done_q)
{
...

       rtn = scsi_try_host_reset(scmd);
       if (rtn == SUCCESS) {
list_for_each_entry_safe(scmd, next, work_q, eh_entry) {
               if (!scsi_device_online(scmd->device) ||
(!scsi_eh_try_stu(scmd) && !scsi_eh_tur(scmd)) ||
                   !scsi_eh_tur(scmd))
...
}

1st scsi_try_host_reset() --> srp_host_reset() --> srp_reconnect_target() return SUCCESS. Then scsi_eh_try_stu() or scsi_eh_tur() is called right after

scsi_eh_try_stu or scsi_eh_tur --> scsi_send_eh_cmnd() --> srp_queuecommand()


Also, this really worries me:

    Vu> May  5 16:36:24 lab105 kernel: ib_mthca 0000:05:00.0: CQ overrun on CQN 
040082

Do you know what's causing this?


I'm guesing that we get qp event 1 without handling it and we keep posting request

Vu
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to