Skip to contentSkip to conversation

problems with scsi_transport_fc and qla2xxx

DISCUSSION Maxim Kozover 2 participants 3 messages Feb 28, 2006 – Mar 1, 2006 3 messages not in the archive SCSI

lore
Share & tools
lore
#0 lore raw

Hi!
Most of the problem seems to be a QLogic driver problem. HBAs are connected to target via FC switch.

1. If I have several LUNs on each HBA, with QLogic only 1 directory per adapter (for LUN 0) is created in /sys/class/fc_remote_ports, while with Emulex a directory for every LUN is created.

2. The situation I described occurs with QLogic only if the cable connecting between HBA and switch is pulled out/in. If I connect/disconnect the cable between switch and target, disks come back.

3. With Emulex in both cases disks come back.

However, both with Emulex and QLogic stale directories in /sys/classfc_remote_ports are left.
For example, with Emulex if I had in the beginning
rport-6:0-0 rport-6:0-1 rport-6:0-2 rport-7:0-0 rport-7:0-1 rport-7:0-2 then disconnected adapter 7, got
rport-6:0-0 rport-6:0-1 rport-6:0-2 rport-7:0-0 rport-7:0-2 (7-0-0 and 7-0-2 didn't disappear while 7-0-1 did)
connected 7 back
rport-6:0-0 rport-6:0-1 rport-6:0-2 rport-7:0-2 rport-7:0-4 rport-7:0-5 rport-7:0-6
(7-0-0 disappeared, but 7-0-2 is still here).

Thanks,

Maxim.

MK> Hi!
MK> I'm checking 2.6.16-rc5 with 2 QLogic 2312 adapters using qla2xxx MK> driver from 2.6.16-rc5.
MK> As with earlier kernels, I think > 2.6.12 (since scsi_transport_fc MK> gained functionality) I have the following problem.
MK> 2 scsi hosts available, 4 and 5 (for QLogic).
MK> I disconnect the cable from one of QLogic cards. After timeout I have MK> the message
MK> rport-4:0-0: blocked FC remote port time out: removing target and saving binding MK> and appropriate SCSI devices that came from adapter 4 disappear from MK> /proc/scsi/scsi.
MK> So far, so good.
MK> I reconnect the cable, the directory
MK> /sys/class/fc_remote_ports/rport-4:0-1 appears along with the old MK> ones rport-4:0-0 and rport-5:0-0, so currently I have 3.
MK> However, no automatic rescan appears on adapter 4.
MK> What's worse, if I try echo "0 1 0" > /sys/class/scsi_host/host4/scan MK> the process is stuck.
MK> Please advise.

MK> Thanks,

MK> Maxim.

A message that is not in the archive (sent off-list or not yet received): [email protected]

A message that is not in the archive (sent off-list or not yet received): [email protected]

A message that is not in the archive (sent off-list or not yet received): [email protected]

#4 lore raw
Quoted 4 lines · Maxim Kozover

Hi Andrew!
I applied the patch changing 2 lines in scsi_transport_fc.c to if (fc_host_tgtid_bind_type(shost) != FC_TGTID_BIND_NONE) {

Quoted 8 lines

I tried first with Emulex as QLogic seemed yesterday to have more problems, (not only orphan rports, but also not creating all rports), so let's start solving problems one by one.

I saw no change in behavior with Emulex.
1. I had 3 LUNs on adapters 6 and 7.

# ls /sys/class/fc_remote_ports
rport-6:0-0  rport-6:0-1  rport-6:0-2  rport-7:0-0  rport-7:0-1  rport-7:0-2

Ok, so specifically you have one target-port at rport-7:0-2 which has three luns (0, 1, and 2).

	/devices/pci0000:00/0000:00:06.0/0000:05:00.2/0000:07:01.1/host7/rport-7:0-2/target7:0:0/7:0:0:0
	/devices/pci0000:00/0000:00:06.0/0000:05:00.2/0000:07:01.1/host7/rport-7:0-2/target7:0:0/7:0:0:1
	/devices/pci0000:00/0000:00:06.0/0000:05:00.2/0000:07:01.1/host7/rport-7:0-2/target7:0:0/7:0:0:2

So what are the other rports? Other initiators?

Quoted 5 lines

2. disconnected the cable between adapter 7 and the switch, rport-7:0-0 disappeared momentarily with Emulex LinkDown event. lpfc 0000:07:01.1: 1:1305 Link Down Event x2 received Data: x2 x20 x110

# ls /sys/class/fc_remote_ports
rport-6:0-0  rport-6:0-1  rport-6:0-2  rport-7:0-0  rport-7:0-2

Actually, rport-7:0-1 disappears -- my guess an initiator. Is rport-7:0-0 an FCP_TARGET with no luns?

Quoted 3 lines

3. Then after a timeout I got a message about blocking rport-7:0-2, but nothing changed.
rport-7:0-2: blocked FC remote port time out: removing target and saving binding

Exactly, the scsi_target and scsi_device is reaped after TMO expires.

Quoted 2 lines
# ls /sys/class/fc_remote_ports
rport-6:0-0  rport-6:0-1  rport-6:0-2  rport-7:0-0  rport-7:0-2

This is still correct.

Quoted 4 lines

However, all scsi entries related to adapter 7 are removed from /proc/scsi/scsi.

Please advise.

If your question is, are the /proc/scsi/scsi devices (/dev/sda, sdb, ...) supposed to disappear when the rport TMO expires , then yes they are supposed to disappear. The rports persist with a port_state of 'not present' for persistent-binding purposes, until the port return (i.e. you reinsert the cable). If that were to occur, then upon rport addition, the 3-lun storage would be attached to rport-7:0-2 and a request signaled for lun scanning by the midlayer.

--
Andrew

#5 lore raw

Hi Andrew!
You're right. I didn't look at roles in Emulex case.
When using Emulex everything is OK.
Tomorrow I'll connect QLogic again to continue problem investigation. Thanks much for quick and professional replies.

I'll just describe Emulex situation to confirm.
Let's connect only 1 Emulex port (adapter 7) to a switch and leave adapter 6 not connected. Then we have

# ls /sys/class/fc_remote_ports/
rport-7:0-0  rport-7:0-1  rport-7:0-2
# cat /sys/class/fc_remote_ports/*/roles
Fabric Port
Directory Server
FCP Target, FCP Initiator

When the cable is disconnected from adapter 7, immediately with LinkDown event, the rport with the role of Directory server disappears and only 2 are left:

# ls /sys/class/fc_remote_ports/
rport-7:0-0  rport-7:0-2
# cat /sys/class/fc_remote_ports/*/roles
Fabric Port
FCP Target, FCP Initiator

Then after a timeout, the role of rport-7:0-2 is changed to unknown and relevant entries are removed from /proc/scsi/scsi. rport-7:0-0 is still here.

rport-7:0-2: blocked FC remote port time out: removing target and saving binding

# ls /sys/class/fc_remote_ports/
rport-7:0-0  rport-7:0-2
# cat /sys/class/fc_remote_ports/*/roles
Fabric Port
unknown

After reconnecting the cable, rport-7:0:0 disappears and rport-7:0:4 and rport-7:0-5 appear along with newly recognized LUNs in /proc/scsi/scsi.

# ls /sys/class/fc_remote_ports/
rport-7:0-2  rport-7:0-4  rport-7:0-5
# cat /sys/class/fc_remote_ports/*/roles
FCP Target, FCP Initiator
Fabric Port
Directory Server

If I'm not mistaken, in QLogic case only 1 rport per adapter appeared instead of 3. Tomorrow I'll connect QLogic and report again.

Thanks,

Maxim.