Skip to content

Commit

Permalink
scsi: core: Log SCSI command age with errors
Browse files Browse the repository at this point in the history
Couple of users had requested to print the SCSI command age along with
command failure errors. This is a small change, but allows users to get
more important information about the command that was failed, it would help
the users in debugging the command failures:

Link: https://lore.kernel.org/r/20190926052501.GA8352@machine1
Signed-off-by: Milan P. Gandhi <mgandhi@redhat.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
  • Loading branch information
Milan P. Gandhi authored and Martin K. Petersen committed Oct 1, 2019
1 parent c3dde2f commit 8ee132b
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions drivers/scsi/scsi_logging.c
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,7 @@ void scsi_print_result(const struct scsi_cmnd *cmd, const char *msg,
const char *mlret_string = scsi_mlreturn_string(disposition);
const char *hb_string = scsi_hostbyte_string(cmd->result);
const char *db_string = scsi_driverbyte_string(cmd->result);
unsigned long cmd_age = (jiffies - cmd->jiffies_at_alloc) / HZ;

logbuf = scsi_log_reserve_buffer(&logbuf_len);
if (!logbuf)
Expand Down Expand Up @@ -431,10 +432,15 @@ void scsi_print_result(const struct scsi_cmnd *cmd, const char *msg,

if (db_string)
off += scnprintf(logbuf + off, logbuf_len - off,
"driverbyte=%s", db_string);
"driverbyte=%s ", db_string);
else
off += scnprintf(logbuf + off, logbuf_len - off,
"driverbyte=0x%02x", driver_byte(cmd->result));
"driverbyte=0x%02x ",
driver_byte(cmd->result));

off += scnprintf(logbuf + off, logbuf_len - off,
"cmd_age=%lus", cmd_age);

out_printk:
dev_printk(KERN_INFO, &cmd->device->sdev_gendev, "%s", logbuf);
scsi_log_release_buffer(logbuf);
Expand Down

0 comments on commit 8ee132b

Please sign in to comment.