Robert Love wrote:
> On Mon, 2009-08-10 at 11:51 -0700, Joe Eykholt wrote:
>> When receiving an RSCN, do not log off all rports. This is
>> extremely disruptive. If, after the GPN_FT response, some
>> rports haven't been listed, delete them.
>>
>> Add field disc_id to structs fc_rport_priv and fc_disc.
>> disc_id is an arbitrary serial number used to identify the
>> rports found by the latest discovery. This eliminates the need
>> to go through the rport list when restarting discovery.
>>
>> Signed-off-by: Joe Eykholt <[email protected]>
>> ---
> I'm having a problem with this patch. It does not progress past
> discovery for some reason. Here is the output when I turn on libfc and
> libfcoe debug_logging.
>
> Aug 13 15:24:51 localhost kernel: [17457.092312] scsi87 : FCoE Driver
> Aug 13 15:24:51 localhost kernel: [17457.093587] host87: lport ffffffff:
> Entered RESET state from disabled state
> Aug 13 15:24:51 localhost kernel: [17457.093802] fip: setting AUTO mode.
> Aug 13 15:24:51 localhost kernel: [17457.094014] libfc: Link up on port
> ( 0)
> Aug 13 15:24:51 localhost kernel: [17457.094263] host87: lport 0:
> Entered FLOGI state from reset state
> Aug 13 15:24:51 localhost kernel: [17457.094478] host87: xid 2:
> Exchange timer armed
> Aug 13 15:24:51 localhost kernel: [17457.096334] fip: Using FIP mode
> Aug 13 15:24:51 localhost kernel: [17457.096549] fip: New FCF for fab
> 2001000dec96e941 map efc00 val 1
> Aug 13 15:24:53 localhost kernel: [17459.088990] host87: xid 2:
> Exchange timed out
> Aug 13 15:24:53 localhost kernel: [17459.089207] host87: lport 0:
> Received a FLOGI response
> Aug 13 15:24:53 localhost kernel: [17459.089417] host87: lport 0:
> Error -1 in state FLOGI, retries 0
> Aug 13 15:24:53 localhost kernel: [17459.089629] host87: xid 2: f_ctl
> 90000 seq 1
> Aug 13 15:24:53 localhost kernel: [17459.089837] host87: xid 2:
> Exchange timer armed
> Aug 13 15:24:53 localhost kernel: [17459.090836] fip: consider FCF for
> fab 2001000dec96e941 VFID 1 map efc00 val 1
> Aug 13 15:24:53 localhost kernel: [17459.091057] libfcoe: host87: FIP
> selected Fibre-Channel Forwarder MAC 00:0d:ec:a3:1e:80
> Aug 13 15:24:55 localhost kernel: [17461.084029] host87: lport 0:
> Entered FLOGI state from FLOGI state
> Aug 13 15:24:55 localhost kernel: [17461.084253] host87: xid a:
> Exchange timer armed
> Aug 13 15:24:55 localhost kernel: [17461.109652] host87: xid a: f_ctl
> 90000 seq 1
> Aug 13 15:24:55 localhost kernel: [17461.109874] host87: lport 0:
> Received a FLOGI response
> Aug 13 15:24:55 localhost kernel: [17461.110082] libfc: Assigned FID
> (cf002e) in FLOGI response
> Aug 13 15:24:55 localhost kernel: [17461.110292] host87: lport cf002e:
> Entered DNS state from FLOGI state
> Aug 13 15:24:55 localhost kernel: [17461.110504] host87: rport fffffc:
> Login to port
> Aug 13 15:24:55 localhost kernel: [17461.110711] host87: rport fffffc:
> Port entered PLOGI state from Init state
> Aug 13 15:24:55 localhost kernel: [17461.110935] host87: xid 0:
> Exchange timer armed
> Aug 13 15:24:55 localhost kernel: [17461.111154] host87: xid 0: f_ctl
> 90000 seq 1
> Aug 13 15:24:55 localhost kernel: [17461.111364] host87: rport fffffc:
> Received a PLOGI response
> Aug 13 15:24:55 localhost kernel: [17461.111576] host87: rport fffffc:
> Port is Ready
> Aug 13 15:24:55 localhost kernel: [17461.111791] host87: rport fffffc:
> work event 1
> Aug 13 15:24:55 localhost kernel: [17461.112059] host87: rport fffffc:
> callback ev 1
> Aug 13 15:24:55 localhost kernel: [17461.112268] host87: lport cf002e:
> Received a 1 event for port (fffffc)
> Aug 13 15:24:55 localhost kernel: [17461.112480] host87: lport cf002e:
> Entered RPN_ID state from dNS state
> Aug 13 15:24:55 localhost kernel: [17461.112703] host87: xid 1:
> Exchange timer armed
> Aug 13 15:24:55 localhost kernel: [17461.112920] host87: xid 1: f_ctl
> 90000 seq 1
> Aug 13 15:24:55 localhost kernel: [17461.113130] host87: lport cf002e:
> Received a RPN_ID response
> Aug 13 15:24:55 localhost kernel: [17461.113339] host87: lport cf002e:
> Entered RFT_ID state from RPN_ID state
> Aug 13 15:24:55 localhost kernel: [17461.113555] host87: xid 9:
> Exchange timer armed
> Aug 13 15:24:55 localhost kernel: [17461.114018] host87: xid 9: f_ctl
> 90000 seq 1
> Aug 13 15:24:55 localhost kernel: [17461.114229] host87: lport cf002e:
> Received a RFT_ID response
> Aug 13 15:24:55 localhost kernel: [17461.114441] host87: lport cf002e:
> Entered SCR state from RFT_ID state
> Aug 13 15:24:55 localhost kernel: [17461.114657] host87: xid 11:
> Exchange timer armed
> Aug 13 15:24:55 localhost kernel: [17461.116965] host87: xid 11: f_ctl
> 90000 seq 1
> Aug 13 15:24:55 localhost kernel: [17461.117182] host87: lport cf002e:
> Received a SCR response
> Aug 13 15:24:55 localhost kernel: [17461.117391] host87: lport cf002e:
> Entered READY from state SCR
> Aug 13 15:24:55 localhost kernel: [17461.117606] host87: xid 19:
> Exchange timer armed
> Aug 13 15:24:55 localhost kernel: [17461.118112] host87: xid 19: f_ctl
> 90000 seq 1
> Aug 13 15:24:55 localhost kernel: [17461.118329] host87: disc: Received
> a GPN_FT response
> Aug 13 15:24:55 localhost kernel: [17461.118541] host87: disc: Discovery
> complete
> Aug 13 15:24:55 localhost kernel: [17461.118749] host87: lport cf002e:
> Discovery succeeded
> Aug 13 15:24:56 localhost kernel: [17462.106239] host87: xid 12: f_ctl
> 800000 seq 1
> Aug 13 15:24:56 localhost kernel: [17462.106467] host87: xid 12: f_ctl
> 800000 seq 2
> Aug 13 15:25:06 localhost kernel: [17472.133198] host87: xid 1a: f_ctl
> 800000 seq 1
> Aug 13 15:25:06 localhost kernel: [17472.133419] host87: xid 1a: f_ctl
> 800000 seq 2
> Aug 13 15:25:13 localhost kernel: [17479.040259] host87: xid 2:
> Exchange timed out
> Aug 13 15:25:18 localhost kernel: [17483.344095] host87: xid 8: f_ctl
> 800000 seq 1
> Aug 13 15:25:18 localhost kernel: [17483.344313] host87: xid 8: f_ctl
> 800000 seq 2
>
>
I found it. I wasn't setting disc_id non-zero on the initial discovery.
I think this cropped up as I reordered patches, but that's not a good excuse.
Sorry for the trouble. I'll retest that whole set of 9 individually and
resubmit.
In case you want to fix the patch, here's my delta on top of that
(this won't apply because of copy/paste):
diff --git a/drivers/scsi/libfc/fc_disc.c b/drivers/scsi/libfc/fc_disc.c
index a564e7c..ddf4944 100644
--- a/drivers/scsi/libfc/fc_disc.c
+++ b/drivers/scsi/libfc/fc_disc.c
@@ -280,6 +280,7 @@ static void fc_disc_start(void (*disc_callback)(struct
fc_lport *,
}
kref_put(&rdata->kref, rdata->local_port->tt.rport_destroy);
} else {
+ disc->disc_id = (disc->disc_id + 2) | 1;
fc_disc_gpn_ft_req(disc); /* get ports by FC-4 type */
}
---
Joe
_______________________________________________
devel mailing list
[email protected]
http://www.open-fcoe.org/mailman/listinfo/devel