From: Christof Schmitt <christof.schmitt@de.ibm.com>
To: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: linux-scsi@vger.kernel.org, linux-s390@vger.kernel.org,
Martin Peschke <mp3@de.ibm.com>,
Christof Schmitt <christof.schmitt@de.ibm.com>
Subject: [patch 04/11] zfcp: Add qtcb dump to hba debug trace
Date: Thu, 27 Mar 2008 14:21:58 +0100 [thread overview]
Message-ID: <20080327133025.388911000@de.ibm.com> (raw)
In-Reply-To: 20080327132154.826339000@de.ibm.com
[-- Attachment #1: zfcp_hba_dbf_qtcb_trace.diff --]
[-- Type: text/plain, Size: 2024 bytes --]
From: Martin Peschke <mp3@de.ibm.com>
This patch adds per request hardware debugging data to the trace
record which is written per request. It's a replacement for some sad
kernel message based debugging code. Considering the amount of trace
data, printk() is not suitable for this stuff. Writing binary traces
is more efficient. In addition we got all information in one place.
The QTCB trace data is only dumped for requests other than SCSI
requests. Otherwise we would flood the trace ring buffer. We are
mostly interested in non-SCSI, recovery related requests here anyway.
This patch also works around a known hardware bug. It truncates QTCB
traces so that we do not save unused areas of the hardware trace.
Signed-off-by: Martin Peschke <mp3@de.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
---
drivers/s390/scsi/zfcp_dbf.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
--- a/drivers/s390/scsi/zfcp_dbf.c 2008-03-27 13:54:38.000000000 +0100
+++ b/drivers/s390/scsi/zfcp_dbf.c 2008-03-27 13:55:46.000000000 +0100
@@ -179,6 +179,9 @@ void zfcp_hba_dbf_event_fsf_response(str
(fsf_req->fsf_command == FSF_QTCB_OPEN_LUN)) {
strncpy(rec->tag2, "open", ZFCP_DBF_TAG_SIZE);
level = 4;
+ } else if (qtcb->header.log_length) {
+ strncpy(rec->tag2, "qtcb", ZFCP_DBF_TAG_SIZE);
+ level = 5;
} else {
strncpy(rec->tag2, "norm", ZFCP_DBF_TAG_SIZE);
level = 6;
@@ -250,6 +253,17 @@ void zfcp_hba_dbf_event_fsf_response(str
debug_event(adapter->hba_dbf, level,
rec, sizeof(struct zfcp_hba_dbf_record));
+
+ /* have fcp channel microcode fixed to use as little as possible */
+ if (fsf_req->fsf_command != FSF_QTCB_FCP_CMND) {
+ /* adjust length skipping trailing zeros */
+ char *buf = (char *)qtcb + qtcb->header.log_start;
+ int len = qtcb->header.log_length;
+ for (; len && !buf[len - 1]; len--);
+ zfcp_dbf_hexdump(adapter->hba_dbf, rec, sizeof(*rec), level,
+ buf, len);
+ }
+
spin_unlock_irqrestore(&adapter->hba_dbf_lock, flags);
}
--
next prev parent reply other threads:[~2008-03-27 13:21 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-27 13:21 [patch 00/11] zfcp debug trace update Christof Schmitt
2008-03-27 13:21 ` [patch 01/11] zfcp: Introduce a helper function that dumps hex data to a zfcp trace Christof Schmitt
2008-03-27 13:21 ` [patch 02/11] zfcp: Clean up _zfcp_san_dbf_event_common_els Christof Schmitt
2008-03-27 13:21 ` [patch 03/11] zfcp: Remove qtcb dump to kernel log Christof Schmitt
2008-03-27 13:21 ` Christof Schmitt [this message]
2008-03-27 13:21 ` [patch 05/11] zfcp: Introduce printf helper functions for debug trace Christof Schmitt
2008-03-27 13:22 ` [patch 06/11] zfcp: Register new recovery trace Christof Schmitt
2008-03-27 13:22 ` [patch 07/11] zfcp: Add trace records for recovery thread and its queues Christof Schmitt
2008-03-27 13:22 ` [patch 08/11] zfcp: Add traces for state changes Christof Schmitt
2008-03-27 14:20 ` Heiko Carstens
2008-03-27 14:31 ` Martin Peschke
2008-03-27 13:22 ` [patch 09/11] zfcp: Trace all triggers of error recovery activity Christof Schmitt
2008-03-27 13:22 ` [patch 10/11] zfcp: Add trace records for recovery actions Christof Schmitt
2008-03-27 13:22 ` [patch 11/11] zfcp: Remove obsolete erp_dbf trace Christof Schmitt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080327133025.388911000@de.ibm.com \
--to=christof.schmitt@de.ibm.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=linux-s390@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=mp3@de.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.