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 - : send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html