[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