Messages in this thread | | | Date | Mon, 6 Mar 2006 13:28:35 -0800 | From | Andrew Vasquez <> | Subject | Re: problems with scsi_transport_fc and qla2xxx |
| |
On Mon, 06 Mar 2006, Maxim Kozover wrote:
> Unfortunately I don't have the directory /proc/scsi/qla2xxx.
The two stage discovery process has not been needed since FC transport integration. Instead, the driver simply makes up-calls to signal rport visiblity (add on PLOGI/PRLI; delete on LOGO/cable-pull/etc).
> However the target sees PRLI from the host again after reconnecting > the cable between the initiator and the switch. > Does it mean the rediscovering new devices on initiator side is > already done? >
Yes, after plugging the cable back in, the driver rediscovers ports:
Mar 3 01:07:22 multipath kernel: scsi(4): RSNN_NN exiting normally. Mar 3 01:07:22 multipath kernel: scsi(4): GID_PT entry - nn 200000e08b079a69 pn 210000e08b079a69 portid=010700. Mar 3 01:07:22 multipath kernel: scsi(4): GID_PT entry - nn 2000001738279c00 pn 1000001738279c11 portid=010200. Mar 3 01:07:22 multipath kernel: scsi(4): device wrap (010200)
Initiates PLOGI/PRLI:
Mar 3 01:07:22 multipath kernel: scsi(4): Trying Fabric Login w/loop id 0x0081 for port 010200.
And upcall via fc_remote_port_add() is done.
Mar 3 01:07:22 multipath kernel: scsi(4): LOOP READY Mar 3 01:07:22 multipath kernel: scsi(4): qla2x00_loop_resync - end
Firmware then notifies software that the port has logged out:
Mar 3 01:07:22 multipath kernel: scsi(4): Asynchronous PORT UPDATE ignored 0081/0007/7ee5. Mar 3 01:07:22 multipath kernel: scsi(4:0:0): status_entry: Port Down pid=43, compl status=0x29, port state=0x4
A CDB also returns with a completion status of PORT_LOGGED_OUT. From the driver's DPC routine (process-context), the upcall to fc_remote_port_delete() is issued:
Driver attempts a relogin:
Mar 3 01:07:22 multipath kernel: scsi(4): Port login retry: 1000001738279c11, id = 0x0081 retry cnt=8 Mar 3 01:07:23 multipath kernel: scsi(4): fcport-0 - port retry count: 0 remaining Mar 3 01:07:23 multipath kernel: scsi(4): qla2x00_port_login() Mar 3 01:07:23 multipath kernel: scsi(4): Trying Fabric Login w/loop id 0x0081 for port 010200.
Relogin complete
Mar 3 01:07:23 multipath kernel: scsi(4): port login OK: logged in ID 0x81
Upcall to fc_remote_port_add() done.
Mar 3 01:07:23 multipath kernel: scsi(4): qla2x00_port_login - end Mar 3 01:07:23 multipath kernel: scsi(4): Asynchronous PORT UPDATE ignored 0000/0006/0001. Mar 3 01:07:23 multipath kernel: scsi(4): Asynchronous PORT UPDATE ignored 0000/0007/0001. Mar 3 01:07:23 multipath kernel: scsi(4): Asynchronous PORT UPDATE ignored 0000/0004/0001. Mar 3 01:07:24 multipath kernel: scsi(4): Asynchronous PORT UPDATE ignored 0081/0006/0001.
I also noticed that scsi_transport_fc.c::fc_user_scan() is not called with the host_lock held... hmm.. could you try out the patch I sent earlier and provide the results.
Also, could you send the "echo t > /proc/..." output after the cable has been reinserted, but, before the 'echo "- - -" > /sys/class' scan is initiated.
thanks, av - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |