[prev in list] [next in list] [prev in thread] [next in thread] 

List:       opensolaris-dtrace-discuss
Subject:    [dtrace-discuss] DTrace provider proposal: COMSTAR SRP target port
From:       Charles Ting <Charles.Ting () Sun ! COM>
Date:       2009-05-21 18:13:07
Message-ID: 4A1599B3.2080304 () Sun ! com
[Download RAW message or body]

I would like to request approval of the the DTrace proposal for the 
COMSTAR SRP target port provider. The specification of the SRP provider 
can be viewed at: http://wikis.sun.com/display/DTrace/srp+port+provider

Your feedback is much appreciated.

Thanks,
Charles




["srp_dtrace_proposal.txt" (text/plain)]

COMSTAR DTrace Probes/Providers for SRP Target

Charles Ting
04/08/09

This document describes the Dtrace probes definition for the SRP target port
provider. The SRP target port provider provides probes for tracing SRP target
activity.



Probes
=======

Events			Probes			Arguments
-----------------------------------------------------------------------------

Service up		service-up		arg[0]	   conninfo_t *
						arg[1]     srp_portinfo_t *

Desc: trace SRP target online event, i.e. Target X is available via Port Y.
The initiator and channel fields of the two structures left blank.

-----------------------------------------------------------------------------

Service down		service-down		arg[0]	   conninfo_t *
						arg[1]     srp_portinfo_t *

Desc: trace SRP target offline event, i.e Target X became unavailable via
Port Y.  The initiator and channel fields of the two structures left blank.


-----------------------------------------------------------------------------

Login command		login-command		arg[0]	   conninfo_t *
						arg[1]	   srp_portinfo_t *
						arg[2]     srp_logininfo_t *

Desc: trace start of initiator port login.

-----------------------------------------------------------------------------

Login response		login-response	        arg[0]	   conninfo_t *
						arg[1]	   srp_portinfo_t *
						arg[2]     srp_logininfo_t *

Desc: trace end of initiator port login 

-----------------------------------------------------------------------------

Logout command		logout-command		arg[0]	   conninfo_t *
						arg[1]	   srp_portinfo_t *

Desc: trace start of initiator port logout

-----------------------------------------------------------------------------

SCSI command		scsi-command		arg[0]	   conninfo_t *
						arg[1]	   srp_portinfo_t *
						arg[2]	   scsicmd_t *
						arg[3]	   srp_taskinfo_t *
Desc: trace start of a SCSI command

-----------------------------------------------------------------------------

SCSI response		scsi-response		arg[0]	   conninfo_t *
						arg[1]	   srp_portinfo_t *
						arg[2]	   srp_taskinfo_t *

Desc: trace end of a SCSI command

-----------------------------------------------------------------------------

Task command		task-command		arg[0]	   conninfo_t *
						arg[1]	   srp_portinfo_t *
						arg[2]	   srp_taskinfo_t *

Desc: trace start of a SRP task

-----------------------------------------------------------------------------

Task response		task-response		arg[0]	   conninfo_t *
						arg[1]	   srp_portinfo_t *
						arg[2]	   srp_taskinfo_t *
Desc: trace end of a SRP task

-----------------------------------------------------------------------------

Buffer dispatch		xfer-start		arg[0]	   conninfo_t *
						arg[1]	   srp_portinfo_t *
						arg[2]	   xferinfo_t *
Desc: IB RDMA data transfer start

-----------------------------------------------------------------------------

Buffer completion	xfer-done		arg[0]	   conninfo_t *
						arg[1]	   srp_portinfo_t *
						arg[2]	   xferinfo_t;
Desc: IB RDMA data transfer end

-----------------------------------------------------------------------------


Types
=====

/*
 * Connection information.
 */
typedef struct conninfo {
        string ci_local;        /* the GID of the local HCA,
				   e.g fe80000000000000xxxxxxxxxxxxxxx */
        string ci_remote;       /* the GID of the remote HCA,
				   e.g fe80000000000000xxxxxxxxxxxxxxx */
        string ci_protocol;     /* protocol: "srp" */
} conninfo_t;


/*
 * SCSI command.
 */
typedef struct scsicmd{
	uint64_t ic_len;	/* CDB length */
	uint8_t  *ic_cdb;	/* CDB data */
} scsicmd_t


/*
 * SRP port information.
 */
typedef struct srp_portinfo {
	/* initiator */
	string  pi_initiator;	/* Initiator: eui.xxxxxxxxxxxxxxx */
	string	pi_i_sid;	/* Initiator seiion id */

	/* target */
	string	pi_target;	/* Target: eui.xxxxxxxxxxxxxxx */
	string  pi_t_sid;	/* Target session id */

	uintptr_t pi_chan_id;	/* Channel identifier */

} srp_portinfo_t;


/*
 * Login request info.
 */
typedef struct srp_logininfo {
	uint64_t li_task_tag;	   /* SRP task tag */
	uint32_t li_max_it_iu_len; /* Maxium iu length that initiator can
				      send to target */
	uint32_t li_max_ti_iu_len; /* Maxium iu length that target can
				      send to initiator */
	uint32_t li_request_limit; /* Maximun number of SRP requests 
				      that initiator can send on a channel */
	uint32_t reason_code;	   /* Reason code */
} srp_logininfo_t;

/*
 * SRP task command.
 */
typedef struct srp_taskinfo {
	uint64_t ti_task_tag;	/* SRP task tag */
	uint64_t ti_lun;	/* Target logical unit number */
	uint8_t  ti_function;   /* Task management function */
	uint32_t tr_req_limit_delta; /* Increment of channel's request limit */
        uint8_t  ti_flag;       /* bit 2:DOOVER 3:DOUNDER 4:DIOVER 5:DIUNDER */
	uint32_t ti_do_resid_cnt;    /* Data-out residual count */
	uint32_t ti_di_resid_cnt;    /* Data-in residual count */
	uint8_t  ti_status;     /* Status of this task */
} srp_taskinfo_t;


/*
 * RDMA transfer info.
 */
 typedef struct xferinfo {
	uintptr_t xfer_laddr;        /* Local buffer address */
	uint32_t  xfer_loffset;      /* Relative offset from local buffer */
	uint32_t  xfer_lkey;         /* Access control to local memory */
	uintptr_t xfer_raddr;        /* Remote virtual address */
	uint32_t  xfer_roffset;      /* Offset from the remote address */
	uint32_t  xfer_rkey;         /* Access control to remote address */
	uint32_t  xfer_len;          /* Transfer length */
	uint8_t   xfer_type;         /* 0: read; 1: write; */
} xferinfo_t;



_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic