Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Feb 2010 13:02:50 +0300
From:      Oleg Sharoyko <osharoiko@gmail.com>
To:        freebsd-scsi@freebsd.org, freebsd-hackers@freebsd.org
Subject:   Qlogic (isp) cannot login into fabric after link loss
Message-ID:  <1266314570.73716.42.camel@brain.cc.rsu.ru>

next in thread | raw e-mail | index | archive | help
Hi!

I'm sorry for cross-posting, but I'm in trouble with isp driver and I
really need your help.

Here we have IBM blade with Qlogic (seems to be 2462s card) and EMC
CX3-40 both connected to Brocade DS4900. Everything seems to be ok,
until FC link between switch and server fails. When it later restores
isp cannot anymore log into fabric. I have a complete debug log of isp
output. Here is small excerpt from it which I think is relevant to my
problem:

isp0: Chan 0 got 3 ports back from name server
isp0: Chan 0 skip ourselves on @ PortID 0x011500
isp0: Chan 0 Checking Fabric Port 0x010e00
isp0: IN mbox 0 = 0x0064
isp0: IN mbox 1 = 0x0003
isp0: IN mbox 2 = 0x05e8
isp0: IN mbox 3 = 0xd000
isp0: IN mbox 6 = 0x0000
isp0: IN mbox 7 = 0x0000
isp0: IN mbox 9 = 0x0000
isp0: IN mbox 10 = 0x0000
isp0: RISC2HOST ISR 0x40000010
isp0: RISC2HOST ISR 0x40068011
isp0: OUT mbox 0 = 0x4006
isp0: IOCB LOGX:
isp0: 0x00000000: 52 01 00 00 ff ff ff ff 00 00 03 00 00 00 00 00
isp0: 0x00000010: 00 0e 01 00 00 00 00 00 00 00 00 00 00 00 00 00
isp0: 0x00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
isp0: 0x00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
isp0: IN mbox 0 = 0x0054
isp0: IN mbox 1 = 0x0040
isp0: IN mbox 2 = 0x05e8
isp0: IN mbox 3 = 0xd000
isp0: IN mbox 6 = 0x0000
isp0: IN mbox 7 = 0x0000
isp0: RISC2HOST ISR 0x40060011
isp0: RISC2HOST ISR 0x40060011
isp0: RISC2HOST ISR 0x40060011
isp0: RISC2HOST ISR 0x40008010
isp0: OUT mbox 0 = 0x4000
isp0: IOCB LOGX response:
isp0: 0x00000000: 52 01 00 00 ff ff ff ff 31 00 03 00 00 00 00 00
isp0: 0x00000010: 00 0e 01 02 1a 00 00 00 01 00 00 00 00 00 00 00
isp0: 0x00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
isp0: 0x00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
isp0: Chan 0 PLOGX PortID 0x010e00 to N-Port handle 0x3: already logged
in with N-Port handle 0x1
isp0: IN mbox 0 = 0x0064
isp0: IN mbox 1 = 0x0001
isp0: IN mbox 2 = 0x05e8
isp0: IN mbox 3 = 0xd000
isp0: IN mbox 6 = 0x0000
isp0: IN mbox 7 = 0x0000
isp0: IN mbox 9 = 0x0000
isp0: IN mbox 10 = 0x0000
isp0: RISC2HOST ISR 0x40000010
isp0: RISC2HOST ISR 0x40008010
isp0: OUT mbox 0 = 0x4000
isp0: Chan 0 Port 0x010e00 flags 0x0 curstate 7
isp0: Chan 0 new device 0x010e00@0x1 disappeared

As far as I can tell from this log and isp.c things are happening in the
following order:

1. Get the list of devices on fabric
2. Try to log into each device (excluding self)
3. The result is failure with code "already logged in" and old login
handle
4. Try to login with that handle and expect that to work, but it fails
with code PDB2400_STATE_PORT_UNAVAIL.

Bear in mind, that I'm not anywhere close to FC expert, so I may be
totally wrong here.

So who is wrong and would it be possible to do resolve this issue? I
have an access to all the components (blade, fc switch and storage
system) and can provide additional information if it's needed.

I'm really stuck and would greatly appreciate any help! Thanks in
advance.

-- 
Oleg Sharoyko




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1266314570.73716.42.camel>