- 21 Dec, 2010 40 commits
-
-
Swen Schillig authored
The tracing environment of the zfcp LLD has become very bulky and hard to maintain. Small changes involve a large modification process which is error-prone and not effective. This patch is the first of a set to redesign the zfcp tracing to a more straight-forward and easy to extend scheme. It removes all interpretation and visualization parts and focuses on bare logging of the information. This patch deals with all trace records of the zfcp error recovery. Signed-off-by:
Swen schillig <swen@vnet.ibm.com> Signed-off-by:
Christof Schmitt <christof.schmitt@de.ibm.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Vikas Chaudhary authored
Signed-off-by:
Vikas Chaudhary <vikas.chaudhary@qlogic.com> Signed-off-by:
Ravi Anand <ravi.anand@qlogic.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Vikas Chaudhary authored
Signed-off-by:
Vikas Chaudhary <vikas.chaudhary@qlogic.com> Signed-off-by:
Ravi Anand <ravi.anand@qlogic.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Vikas Chaudhary authored
Signed-off-by:
Vikas Chaudhary <vikas.chaudhary@qlogic.com> Signed-off-by:
Ravi Anand <ravi.anand@qlogic.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Lalit Chandivade authored
Signed-off-by:
Vikas Chaudhary <vikas.chaudhary@qlogic.com> Signed-off-by:
Lalit Chandivade <lalit.chandivade@qlogic.com> Signed-off-by:
Ravi Anand <ravi.anand@qlogic.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Prasanna Mumbai authored
Prior to firmware state change from ACQUIRING to READY, an 0x8029 AEN is received. Added code to check previous state being ACQUIRING in order to update the ip address in the driver. Signed-off-by:
Vikas Chaudhary <vikas.chaudhary@qlogic.com> Signed-off-by:
Prasanna Mumbai <prasanna.mumbai@qlogic.com> Signed-off-by:
Ravi Anand <ravi.anand@qlogic.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Lalit Chandivade authored
Since if fw load is failing, running on incomplete fw load would be fatal. Signed-off-by:
Vikas Chaudhary <vikas.chaudhary@qlogic.com> Signed-off-by:
Lalit Chandivade <lalit.chandivade@qlogic.com> Signed-off-by:
Ravi Anand <ravi.anand@qlogic.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Lalit Chandivade authored
Signed-off-by:
Vikas Chaudhary <vikas.chaudhary@qlogic.com> Signed-off-by:
Lalit Chandivade <lalit.chandivade@qlogic.com> Signed-off-by:
Ravi Anand <ravi.anand@qlogic.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Lalit Chandivade authored
in mailbox command do not process interrupt unconditionally, process interrupt only in polling mode Signed-off-by:
Vikas Chaudhary <vikas.chaudhary@qlogic.com> Signed-off-by:
Lalit Chandivade <lalit.chandivade@qlogic.com> Signed-off-by:
Ravi Anand <ravi.anand@qlogic.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Karen Higgins authored
Signed-off-by:
Vikas Chaudhary <vikas.chaudhary@qlogic.com> Signed-off-by:
Karen Higgins <karen.higgins@qlogic.com> Signed-off-by:
Ravi Anand <ravi.anand@qlogic.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Swapnil Nagle authored
Signed-off-by:
Swapnil Nagle <swapnil.nagle@qlogic.com> Signed-off-by:
Vikas Chaudhary <vikas.chaudhary@qlogic.com> Signed-off-by:
Ravi Anand <ravi.anand@qlogic.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Shyam Sundar authored
IRQF_SHARED flag should not be set when calling request_irq for MSI since this interrupt mechanism cannot be shared like standard INTx Signed-off-by:
Vikas Chaudhary <vikas.chaudhary@qlogic.com> Signed-off-by:
Shyam Sundar <shyam.sundar@qlogic.com> Signed-off-by:
Ravi Anand <ravi.anand@qlogic.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Vikas Chaudhary authored
IRQF_DISABLE flag is deprecated and this flag is a NOOP in kernel. Signed-off-by:
Vikas Chaudhary <vikas.chaudhary@qlogic.com> Signed-off-by:
Ravi Anand <ravi.anand@qlogic.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Joe Eykholt authored
The statistics for InputMegabytes and OutputMegabytes are misnamed. They're accumulating bytes, not megabytes. The statistic returned via /sys must be in megabytes, however, which is what the HBA-API wants. The FCP code needs to accumulate it in bytes and then divide by 1,000,000 (not 2^20) before it presented via sysfs. This affects fcoe.ko only, not fnic. The fnic driver correctly by accumulating bytes and then converts to megabytes. I checked that libhbalinux is using the /sys file directly without conversion. BTW, qla2xxx does divide by 2^20, which I'm not fixing here. Signed-off-by:
Joe Eykholt <jeykholt@cisco.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Joe Eykholt authored
Neaten several calls to fip_select() by having it return the pointer to the new FCF. Signed-off-by:
Joe Eykholt <jeykholt@cisco.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Joe Eykholt authored
When there are several FCFs to choose from, the one most likely to accept a FLOGI on certian switches is the one that last answered a multicast solicit. So, when receiving an advertisement, move the FCF to the front of the list so that it gets chosen first among those with the same priority. Without this, more FLOGIs need to be sent in a test with multiple FCFs and a switch in NPV mode, but it still eventually finds one that accepts the FLOGI. Signed-off-by:
Joe Eykholt <jeykholt@cisco.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Joe Eykholt authored
When multiple FCFs to the same fabric exist, the debug messages all look alike. Change the message to include the MAC address. Signed-off-by:
Joe Eykholt <jeykholt@cisco.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Joe Eykholt authored
Switches using multiple-FCFs may reject FLOGI in order to balance the load between multiple FCFs. Even though the FCF was available, it may have more load at the point we actually send the FLOGI. If the FLOGI fails, select a different FCF if possible, among those with the same priority. If no other FCF is available, just deliver the reject to libfc for retry. Signed-off-by:
Joe Eykholt <jeykholt@cisco.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Joe Eykholt authored
The check for conflicting fabrics in fcoe_ctlr_select() ignores any FCFs that aren't usable. This is a minor problem now but becomes more pronounced after later patches. Signed-off-by:
Joe Eykholt <jeykholt@cisco.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Joe Eykholt authored
Move some of the code in fcoe_ctlr_timer_work() to fcoe_ctlr_select() so that it can be shared with another function in a forthcoming patch. Signed-off-by:
Joe Eykholt <jeykholt@cisco.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Joe Eykholt authored
Move the announcement code to a separate function for reuse in a forthcoming patch. For messages regarding FCF timeout and selection, use the previously-announced FCF MAC address (dest_addr) in the fcoe_ctlr struct. Only print (announce) the FCF if it is new. Print MAC for timed-out or deselected FCFs. Signed-off-by:
Joe Eykholt <jeykholt@cisco.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Yi Zou authored
Frame should be freed in fc_tm_done, this is an updated patch on the one initially submitted by Hillf Danton. Signed-off-by:
Hillf Danton <dhillf@gmail.com> Signed-off-by:
Yi Zou <yi.zou@intel.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Yi Zou authored
The timeout for the exchange carrying REC itself is 2 * R_A_TOV_els. Signed-off-by:
Yi Zou <yi.zou@intel.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Yi Zou authored
Should not continue when the abort itself is being timeout since in that case the exchange will be deleted and relesased. We still want to call the associated response handler to let the layer, e.g., fcp, know the exchange itself is being timed out. Signed-off-by:
Yi Zou <yi.zou@intel.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Yi Zou authored
Do not call fc_io_compl() on fsp w/o any scsi_cmnd, e.g., lun reset is built inside fc_fcp, not from a scsi command from queuecommnd from scsi-ml, so in in case target is buggy that is invalid flags in the FCP_RSP, as we have seen in some SAN Blaze target where all bits in flags are 0, we do not want to call io_compl on this fsp. [ Comment block added by Robert Love ] Signed-off-by:
Yi Zou <yi.zou@intel.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Yi Zou authored
This is very helpful to match up the corresponding exchange to the actual I/O described by the fsp, particularly when you do a side-by-side comparison of the syslog with your trace. Signed-off-by:
Yi Zou <yi.zou@intel.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Joe Perches authored
Add missing newlines. Signed-off-by:
Joe Perches <joe@perches.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Hillf Danton authored
There seems rdata should get put before return. Signed-off-by:
Hillf Danton <dhillf@gmail.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Hillf Danton authored
There seems info should get freed when error encountered. Signed-off-by:
Hillf Danton <dhillf@gmail.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Hillf Danton authored
There seems info should get freed when error encountered. Signed-off-by:
Hillf Danton <dhillf@gmail.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
john fastabend authored
We can easily remove the tgt_flags from fc_fcp_pkt struct and use rpriv->tgt_flags directly where needed. Signed-off-by:
John Fastabend <john.r.fastabend@intel.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
john fastabend authored
Use the rport value for rec_tov for timeout values when sending fcp commands. Currently, defaults are being used which may or may not match the advertised values. The default may cause i/o to timeout on networks that set this value larger then the default value. To make the timeout more configurable in the non-REC mode we remove the FC_SCSI_ER_TIMEOUT completely allowing the scsi-ml to do the timeout. This removes an unneeded timer and allows the i/o timeout to be configured using the scsi-ml knobs. Signed-off-by:
John Fastabend <john.r.fastabend@intel.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
john fastabend authored
The fcp packet recovery handler fc_fcp_recover() is called when errors occurr in a fcp session. Currently it is generically setting the status code to FC_CMD_RECOVERY for all error types. This results in DID_BUS_BUSY errors being returned to the scsi-ml. DID_BUS_BUSY errors indicate "BUS stayed busy through time out period" according to scsi.h. Many of the error reported by fc_rcp_recovery() are pkt errors. Here we update fc_fcp_recovery to use better host byte codes. With certain FAST FAIL flags set DID_BUS_BUSY and DID_ERROR will have different behaviors this was causing dm multipath to fail quickly in some cases where a retry would be a better action. Signed-off-by:
John Fastabend <john.r.fastabend@intel.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Hillf Danton authored
There seems accumulation needed. Signed-off-by:
Hillf Danton <dhillf@gmail.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Hillf Danton authored
There is a typo cleaned, which triggers memory leakage. Signed-off-by:
Hillf Danton <dhillf@gmail.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Robert Love authored
The error handler grabs the si->scsi_queue_lock, but in the case where the fsp pointer is NULL it releases the scsi_host lock. This can lead to a variety of system hangs depending on which is used first- the scsi_host lock or the scsi_queue_lock. This patch simply unlocks the correct lock when fcp is NULL. Signed-off-by:
Robert Love <robert.w.love@intel.com> Tested-by:
Ross Brattain <ross.b.brattain@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Hillf Danton authored
For allocating new exch from pool, scanning for free slot in exch array fluctuates when exch pool is close to exhaustion. The fluctuation is smoothed, and the scan looks to be O(2). Signed-off-by:
Hillf Danton <dhillf@gmail.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Hillf Danton authored
There seems that ep should get released, or it will no longer get freed. Signed-off-by:
Hillf Danton <dhillf@gmail.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Yi Zou authored
This happens when then tearing down the fcoe interface with active I/O. The back trace shows dead000000200200 in RAX, i.e., LIST_POISON2, indicating that the fsp is already being dequeued, which is probably why no complaining was seen in fc_fcp_destroy() about outstanding fsp not freed, since we dequeue it in the end of fc_io_compl() before releasing it. The bug is due to the fact that we have already destroyed lport's scsi_pkt_pool while on-going i/o is still accessing it through fc_fcp_pkt_release(), like this trace or the similar code path from scsi-ml to fc_eh_abort, etc. This is fixed by moving the fc_fcp_destroy() after lport is detached from scsi-ml since fc_fcp_destroy is supposed to called only once where no lport lock is taken, otherwise the fc_fcp_pkt_release() would have to grab the lport lock. BUG: unable to handle kernel NULL pointer dereference at (null) ....... RIP: 0010:[<0000000000000000>] [<(null)>] (null) RSP: 0018:ffff8803270f7b88 EFLAGS: 00010282 RAX: dead000000200200 RBX: ffff880197d2fbc0 RCX: 0000000000005908 RDX: ffff880195ea6d08 RSI: 0000000000000282 RDI: ffff880180f4fec0 RBP: ffff8803270f7bc0 R08: ffff880197d2fbe0 R09: 0000000000000000 R10: ffff88032867f090 R11: 0000000000000000 R12: ffff880195ea6d08 R13: 0000000000000282 R14: ffff880180f4fec0 R15: 0000000000000000 FS: 0000000000000000(0000) GS:ffff8801b5820000(0000) knlGS:0000000000000000 CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b CR2: 0000000000000000 CR3: 00000001a6eae000 CR4: 00000000000006e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 Process fc_rport_eq (pid: 5278, threadinfo ffff8803270f6000, task ffff880326254ab0) Stack: ffffffffa02c39ca ffff8803270f7ba0 ffff88019331cbc0 ffff880197d2fbc0 0000000000000000 ffff8801a8c895e0 ffff8801a8c895e0 ffff8803270f7c10 ffffffffa02c4962 ffff8803270f7be0 ffffffff814c94ab ffff8803270f7c10 Call Trace: [<ffffffffa02c39ca>] ? fc_io_compl+0x10a/0x530 [libfc] [<ffffffffa02c4962>] fc_fcp_complete_locked+0x72/0x150 [libfc] [<ffffffff814c94ab>] ? _spin_unlock_bh+0x1b/0x20 [<ffffffffa02b98ff>] ? fc_exch_done+0x3f/0x60 [libfc] [<ffffffffa02c4a8f>] fc_fcp_retry_cmd+0x4f/0x60 [libfc] [<ffffffffa02c6150>] fc_fcp_recv+0x9b0/0xc30 [libfc] [<ffffffff8106ba7a>] ? _call_console_drivers+0x4a/0x80 [<ffffffff8107d5ec>] ? lock_timer_base+0x3c/0x70 [<ffffffff8107e06b>] ? try_to_del_timer_sync+0x7b/0xe0 [<ffffffffa02b9dcf>] fc_exch_mgr_reset+0x1df/0x250 [libfc] [<ffffffffa02c57a0>] ? fc_fcp_recv+0x0/0xc30 [libfc] [<ffffffffa02c1042>] fc_rport_work+0xf2/0x4e0 [libfc] [<ffffffff8109203e>] ? prepare_to_wait+0x4e/0x80 [<ffffffffa02c0f50>] ? fc_rport_work+0x0/0x4e0 [libfc] [<ffffffff8108c6c0>] worker_thread+0x170/0x2a0 [<ffffffff81091d50>] ? autoremove_wake_function+0x0/0x40 [<ffffffff8108c550>] ? worker_thread+0x0/0x2a0 [<ffffffff810919e6>] kthread+0x96/0xa0 [<ffffffff810141ca>] child_rip+0xa/0x20 [<ffffffff81091950>] ? kthread+0x0/0xa0 [<ffffffff810141c0>] ? child_rip+0x0/0x20 Code: Bad RIP value. RIP [<(null)>] (null) RSP <ffff8803270f7b88> CR2: 0000000000000000 Signed-off-by:
Yi Zou <yi.zou@intel.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-
Hillf Danton authored
The define for fc_seq_exch is unnecessary, since it also appears in scsi/libfc.h Signed-off-by:
Hillf Danton <dhillf@gmail.com> Signed-off-by:
Robert Love <robert.w.love@intel.com> Signed-off-by:
James Bottomley <James.Bottomley@suse.de>
-