All of lore.kernel.org
 help / color / mirror / Atom feed
From: Douglas Gilbert <dgilbert@interlog.com>
To: Hannes Reinecke <hare@suse.de>,
	"Martin K. Petersen" <martin.petersen@oracle.com>
Cc: Christoph Hellwig <hch@lst.de>,
	James Bottomley <james.bottomley@hansenpartnership.com>,
	linux-scsi@vger.kernel.org, Hannes Reinecke <hare@suse.com>
Subject: Re: [PATCHv2 3/3] scsi-trace: define ZBC_IN and ZBC_OUT
Date: Thu, 24 Mar 2016 11:05:01 -0400	[thread overview]
Message-ID: <56F4021D.9000900@interlog.com> (raw)
In-Reply-To: <1458829280-12518-4-git-send-email-hare@suse.de>

On 16-03-24 10:21 AM, Hannes Reinecke wrote:
> Add new trace functions for ZBC_IN and ZBC_OUT.
>
> Reviewed-by: Ewan D. Milne <emilne@redhat.com>
> Signed-off-by: Hannes Reinecke <hare@suse.com>
> ---
>   drivers/scsi/scsi_trace.c   | 70 +++++++++++++++++++++++++++++++++++++++++++++
>   include/scsi/scsi_proto.h   |  9 ++++++
>   include/trace/events/scsi.h |  2 ++
>   3 files changed, 81 insertions(+)
>
> diff --git a/drivers/scsi/scsi_trace.c b/drivers/scsi/scsi_trace.c
> index 1d43888..d9777aa 100644
> --- a/drivers/scsi/scsi_trace.c
> +++ b/drivers/scsi/scsi_trace.c
> @@ -318,6 +318,72 @@ out:
>   }
>
>   static const char *
> +scsi_trace_zbc_in(struct trace_seq *p, unsigned char *cdb, int len)
> +{
> +	const char *ret = trace_seq_buffer_ptr(p), *cmd;
> +	u64 zone_id;
> +	u32 alloc_len;
> +	u8 options;
> +
> +	switch (SERVICE_ACTION16(cdb)) {
> +	case ZI_REPORT_ZONES:
> +		cmd = "REPORT_ZONES";
> +		break;
> +	default:
> +		trace_seq_puts(p, "UNKNOWN");
> +		goto out;
> +	}
> +
> +	zone_id = get_unaligned_be64(&cdb[2]);
> +	alloc_len = get_unaligned_be32(&cdb[10]);
> +	options = cdb[14] & 0x3f;
> +
> +	trace_seq_printf(p, "%s zone=%llu alloc_len=%u options=%u partial=%u",
> +			 cmd, (unsigned long long)zone_id, alloc_len,
> +			 options, (cdb[14] >> 7) & 1);
> +
> +out:
> +	trace_seq_putc(p, 0);
> +
> +	return ret;
> +}
> +
> +static const char *
> +scsi_trace_zbc_out(struct trace_seq *p, unsigned char *cdb, int len)
> +{
> +	const char *ret = trace_seq_buffer_ptr(p), *cmd;
> +	u64 zone_id;
> +
> +	switch (SERVICE_ACTION16(cdb)) {
> +	case ZO_CLOSE_ZONE:
> +		cmd = "CLOSE_ZONE";
> +		break;
> +	case ZO_FINISH_ZONE:
> +		cmd = "FINISH_ZONE";
> +		break;
> +	case ZO_OPEN_ZONE:
> +		cmd = "OPEN_ZONE";
> +		break;
> +	case ZO_RESET_WRITE_POINTER:
> +		cmd = "RESET_WRITE_POINTER";
> +		break;
> +	default:
> +		trace_seq_puts(p, "UNKNOWN");
> +		goto out;
> +	}
> +
> +	zone_id = get_unaligned_be64(&cdb[2]);
> +
> +	trace_seq_printf(p, "%s zone=%llu all=%u", cmd,
> +			 (unsigned long long)zone_id, cdb[14] & 1);
> +
> +out:
> +	trace_seq_putc(p, 0);
> +
> +	return ret;
> +}
> +
> +static const char *
>   scsi_trace_varlen(struct trace_seq *p, unsigned char *cdb, int len)
>   {
>   	switch (SERVICE_ACTION32(cdb)) {
> @@ -373,6 +439,10 @@ scsi_trace_parse_cdb(struct trace_seq *p, unsigned char *cdb, int len)
>   		return scsi_trace_maintenance_in(p, cdb, len);
>   	case MAINTENANCE_OUT:
>   		return scsi_trace_maintenance_out(p, cdb, len);
> +	case ZBC_IN:
> +		return scsi_trace_zbc_in(p, cdb, len);
> +	case ZBC_OUT:
> +		return scsi_trace_zbc_out(p, cdb, len);
>   	default:
>   		return scsi_trace_misc(p, cdb, len);
>   	}
> diff --git a/include/scsi/scsi_proto.h b/include/scsi/scsi_proto.h
> index c2ae21c..086bff9 100644
> --- a/include/scsi/scsi_proto.h
> +++ b/include/scsi/scsi_proto.h
> @@ -115,6 +115,8 @@
>   #define VERIFY_16	      0x8f
>   #define SYNCHRONIZE_CACHE_16  0x91
>   #define WRITE_SAME_16	      0x93
> +#define ZBC_OUT		      0x94
> +#define ZBC_IN		      0x95
>   #define SERVICE_ACTION_BIDIRECTIONAL 0x9d
>   #define SERVICE_ACTION_IN_16  0x9e
>   #define SERVICE_ACTION_OUT_16 0x9f
> @@ -143,6 +145,13 @@
>   #define MO_SET_PRIORITY       0x0e
>   #define MO_SET_TIMESTAMP      0x0f
>   #define MO_MANAGEMENT_PROTOCOL_OUT 0x10
> +/* values for ZBC_IN */
> +#define ZI_REPORT_ZONES	      0x00
> +/* values for ZBC_OUT */
> +#define ZO_CLOSE_ZONE	      0x01
> +#define ZO_OPEN_ZONE	      0x02

s/0x02/0x03/

Reading the opcode/service actions from zbc-r05.pdf:
   CLOSE ZONE          94h/01h
   FINISH ZONE         94h/02h
   OPEN ZONE           94h/03h
   REPORT ZONES        95h/00h
   RESET WRITE POINTER 94h/04h

> +#define ZO_FINISH_ZONE	      0x03

s/0x03/0x02/


Thereafter:

Reviewed-by: Douglas Gilbert <dgilbert@interlog.com>

> +#define ZO_RESET_WRITE_POINTER 0x04
>   /* values for variable length command */
>   #define XDREAD_32	      0x03
>   #define XDWRITE_32	      0x04
> diff --git a/include/trace/events/scsi.h b/include/trace/events/scsi.h
> index 5c0d91f..9a9b3e2 100644
> --- a/include/trace/events/scsi.h
> +++ b/include/trace/events/scsi.h
> @@ -94,6 +94,8 @@
>   		scsi_opcode_name(WRITE_16),			\
>   		scsi_opcode_name(VERIFY_16),			\
>   		scsi_opcode_name(WRITE_SAME_16),		\
> +		scsi_opcode_name(ZBC_OUT),			\
> +		scsi_opcode_name(ZBC_IN),			\
>   		scsi_opcode_name(SERVICE_ACTION_IN_16),		\
>   		scsi_opcode_name(READ_32),			\
>   		scsi_opcode_name(WRITE_32),			\
>


  reply	other threads:[~2016-03-24 15:05 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-24 14:21 [PATCHv2 0/3] scsi trace updates Hannes Reinecke
2016-03-24 14:21 ` [PATCHv2 1/3] scsi-trace: remove service action definitions Hannes Reinecke
2016-03-24 14:21 ` [PATCHv2 2/3] scsi-trace: Decode MAINTENANCE_IN and MAINTENANCE_OUT commands Hannes Reinecke
2016-03-24 14:21 ` [PATCHv2 3/3] scsi-trace: define ZBC_IN and ZBC_OUT Hannes Reinecke
2016-03-24 15:05   ` Douglas Gilbert [this message]
2016-03-29  0:32 ` [PATCHv2 0/3] scsi trace updates Martin K. Petersen

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=56F4021D.9000900@interlog.com \
    --to=dgilbert@interlog.com \
    --cc=hare@suse.com \
    --cc=hare@suse.de \
    --cc=hch@lst.de \
    --cc=james.bottomley@hansenpartnership.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.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.