From: Niklas Cassel <Niklas.Cassel@wdc.com>
To: Bart Van Assche <bvanassche@acm.org>
Cc: "Martin K . Petersen" <martin.petersen@oracle.com>,
Jaegeuk Kim <jaegeuk@kernel.org>,
"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
Christoph Hellwig <hch@lst.de>, Ming Lei <ming.lei@redhat.com>,
Hannes Reinecke <hare@suse.de>,
John Garry <john.g.garry@oracle.com>,
Mike Christie <michael.christie@oracle.com>,
Steven Rostedt <rostedt@goodmis.org>,
Masami Hiramatsu <mhiramat@kernel.org>,
Vishakha Channapattan <vishakhavc@google.com>,
Jolly Shah <jollys@google.com>,
Changyuan Lyu <changyuanl@google.com>,
Damien Le Moal <dlemoal@kernel.org>
Subject: Re: [PATCH 4/4] scsi: Trace SCSI sense data
Date: Tue, 2 May 2023 09:52:26 +0000 [thread overview]
Message-ID: <ZFDdWY7LqLQL0nb6@x1-carbon> (raw)
In-Reply-To: <e859baeb-f7e7-9d58-bcfd-9b11115bdf0d@acm.org>
On Fri, Apr 28, 2023 at 11:36:29AM -0700, Bart Van Assche wrote:
> On 4/28/23 01:09, Niklas Cassel wrote:
> > Do we really need to dump the whole sense buffer?
> >
> > Shouldn't simply printing the SK, ASC, ASCQ be sufficient?
> Hi Niklas,
>
> How about replacing patch 4/4 of this series with the patch below?
>
> Thanks,
>
> Bart.
>
>
>
> diff --git a/include/trace/events/scsi.h b/include/trace/events/scsi.h
> index 370ade0d4093..d4a27cd4040b 100644
> --- a/include/trace/events/scsi.h
> +++ b/include/trace/events/scsi.h
> @@ -258,9 +258,14 @@ DECLARE_EVENT_CLASS(scsi_cmd_done_timeout_template,
> __field( unsigned int, prot_sglen )
> __field( unsigned char, prot_op )
> __dynamic_array(unsigned char, cmnd, cmd->cmd_len)
> + __field( u8, sense_key )
> + __field( u8, asc )
> + __field( u8, ascq )
> ),
>
> TP_fast_assign(
> + struct scsi_sense_hdr sshdr;
> +
> __entry->host_no = cmd->device->host->host_no;
> __entry->channel = cmd->device->channel;
> __entry->id = cmd->device->id;
> @@ -272,11 +277,21 @@ DECLARE_EVENT_CLASS(scsi_cmd_done_timeout_template,
> __entry->prot_sglen = scsi_prot_sg_count(cmd);
> __entry->prot_op = scsi_get_prot_op(cmd);
> memcpy(__get_dynamic_array(cmnd), cmd->cmnd, cmd->cmd_len);
> + if (cmd->result & 0xff &&
> + scsi_command_normalize_sense(cmd, &sshdr)) {
Looks good to me, but considering that a command can be SAM_STAT_GOOD
(which is defined as 0x00), and still have sense data (e.g. CDL policy 0xD
timeout), perhaps you could use the same check as in:
https://lore.kernel.org/linux-ide/20230406113252.41211-1-nks@flawful.org/T/#me609b85c48b4048561662b0a4b1d102e19d7a13d
i.e., something like:
if (cmd->sense_buffer && SCSI_SENSE_VALID(cmd) &&
scsi_command_normalize_sense(cmd, &sshdr)) {
instead of cmd->result & 0xff.
(Yes, I know that the CDL series is not merged yet, but the point is that a
SCSI command can be SAM_STAT_GOOD and still have valid sense data.)
Kind regards,
Niklas
> + __entry->sense_key = sshdr.sense_key;
> + __entry->asc = sshdr.asc;
> + __entry->ascq = sshdr.ascq;
> + } else {
> + __entry->sense_key = 0;
> + __entry->asc = 0;
> + __entry->ascq = 0;
> + }
> ),
>
> TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u " \
> "prot_sgl=%u prot_op=%s cmnd=(%s %s raw=%s) result=(driver=" \
> - "%s host=%s message=%s status=%s)",
> + "%s host=%s message=%s status=%s sense_key=%u asc=%#x ascq=%#x)",
> __entry->host_no, __entry->channel, __entry->id,
> __entry->lun, __entry->data_sglen, __entry->prot_sglen,
> show_prot_op_name(__entry->prot_op),
> @@ -286,7 +301,8 @@ DECLARE_EVENT_CLASS(scsi_cmd_done_timeout_template,
> "DRIVER_OK",
> show_hostbyte_name(((__entry->result) >> 16) & 0xff),
> "COMMAND_COMPLETE",
> - show_statusbyte_name(__entry->result & 0xff))
> + show_statusbyte_name(__entry->result & 0xff),
> + __entry->sense_key, __entry->asc, __entry->ascq)
> );
>
> DEFINE_EVENT(scsi_cmd_done_timeout_template, scsi_dispatch_cmd_done,
>
next prev parent reply other threads:[~2023-05-02 9:52 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-25 23:34 [PATCH 0/4] SCSI core patches Bart Van Assche
2023-04-25 23:34 ` [PATCH 1/4] scsi: core: Use min() instead of open-coding it Bart Van Assche
2023-04-25 23:34 ` [PATCH 2/4] scsi: core: Update a source code comment Bart Van Assche
2023-04-28 5:38 ` Christoph Hellwig
2023-04-28 16:58 ` Bart Van Assche
2023-04-25 23:34 ` [PATCH 3/4] scsi: Only kick the requeue list if necessary Bart Van Assche
2023-04-26 3:23 ` kernel test robot
2023-04-26 5:16 ` kernel test robot
2023-04-25 23:34 ` [PATCH 4/4] scsi: Trace SCSI sense data Bart Van Assche
2023-04-25 23:52 ` Steven Rostedt
2023-04-28 8:09 ` Niklas Cassel
2023-04-28 18:36 ` Bart Van Assche
2023-05-02 9:52 ` Niklas Cassel [this message]
2023-05-02 20:31 ` Bart Van Assche
2023-05-03 7:16 ` Niklas Cassel
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=ZFDdWY7LqLQL0nb6@x1-carbon \
--to=niklas.cassel@wdc.com \
--cc=bvanassche@acm.org \
--cc=changyuanl@google.com \
--cc=dlemoal@kernel.org \
--cc=hare@suse.de \
--cc=hch@lst.de \
--cc=jaegeuk@kernel.org \
--cc=john.g.garry@oracle.com \
--cc=jollys@google.com \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=mhiramat@kernel.org \
--cc=michael.christie@oracle.com \
--cc=ming.lei@redhat.com \
--cc=rostedt@goodmis.org \
--cc=vishakhavc@google.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.