Hi,
This is a proposal for probes for NFS v4.1 meta-data server (see
attachment). These
probes are under a new DTrace provider: nfsv41. These new probes
support tracing NFS v4.1 meta data server activities to process request
from client. Formats and
arguments of these new probes are quite similar to existing NFS v4
probes on server side (provider: nfsv4). If you have any comments,
please voice them.
Regards,
Danhua
nfsv41 provider
Provider:
The nfsv41 provider provides probes for tracing NFS version 4.1 meta-data
server activities, mainly operations supporting NFS version 4.1 protocol. The
format and arguments are silimar to proves in nfsv4.
Arguments:
Arguments for mds operations are consistant with the arguments of
probes in nfsv4 provider.
args[0]: all mds operation probes have the first argument in common:
args[0] conninfo_t * socket connection information
The conninfo_t structure is already used by the iSCSI target provider
(iscsi)
and the NFS v4 provider (nfsv4), and is intended for use by all providers
related to a higher level protocol (e.g. iscsi, nfs, http, ftp).
typedef struct conninfo {
string ci_local; /* local host address */
string ci_remote; /* remote host address */
string ci_protocol; /* protocol (ipv4, ipv6, etc) */
} conninfo_t;
args[1]: all mds operation probes have their second argument in common:
args[1] nfsv4opinfo_t * NFS v4 operation properties
typedef struct nfsv4opinfo {
string noi_curpath; /* current file handle path (if any) */
cred_t *noi_cred; /* credentials */
uint64_t noi_xid; /* transaction ID */
} nfsv4opinfo_t;
Probes:
Below is a list of the probes along with the specific argument for each
whose type is defined by the NFS v4.1 specification:
probe name args[2]
---------- -------
nfsv41:::compound-start COMPOUND4args *
nfsv41:::compound-done COMPOUND4res *
nfsv41:::op-access-start ACCESS4args *
nfsv41:::op-access-done ACCESS4res *
nfsv41:::op-bind-conn-to-session-start BIND_CONN_TO_SESSION4args *
nfsv41:::op-bind-conn-to-session-done BIND_CONN_TO_SESSION4res *
nfsv41:::op-close-start CLOSE4args *
nfsv41:::op-close-done CLOSE4res *
nfsv41:::op-commit-start COMMIT4args *
nfsv41:::op-commit-done COMMIT4res *
nfsv41:::op-create-start CREATE4args *
nfsv41:::op-create-done CREATE4res *
nfsv41:::op-create-session-start CREATE_SESSION4args *
nfsv41:::op-create-session-done CREATE_SESSION4res *
nfsv41:::op-delegreturn-start DELEGRETURN4args *
nfsv41:::op-delegreturn-done DELEGRETURN4res *
nfsv41:::op-destroy-session-start DESTROY_SESSION4args *
nfsv41:::op-destroy-session-done DESTROY_SESSION4res *
nfsv41:::op-exchange-id-start EXCHANGE_ID4args *
nfsv41:::op-exchange-id-done EXCHANGE_ID4res *
nfsv41:::op-getattr-start GETATTR4args *
nfsv41:::op-getattr-done GETATTR4res *
nfsv41:::op-getdeviceinfo-start GETDEVICEINFO4args *
nfsv41:::op-getdeviceinfo-done GETDEVICEINFO4res *
nfsv41:::op-getdevicelist-start <undefined>
nfsv41:::op-getdevicelist-done GETDEVICELIST4res *
nfsv41:::op-getfh-start <undefined>
nfsv41:::op-getfh-done GETFH4res *
nfsv41:::op-illegal-start <undefined>
nfsv41:::op-illegal-done <undefined>
nfsv41:::op-inval-start <undefined>
nfsv41:::op-inval-done <undefined>
nfsv41:::op-layoutcommit-start LAYOUTCOMMIT4args *
nfsv41:::op-layoutcommit-done LAYOUTCOMMIT4res *
nfsv41:::op-layoutget-start LAYOUTGET4args *
nfsv41:::op-layoutget-done LAYOUTGET4res *
nfsv41:::op-layoutreturn-start <undefined>
nfsv41:::op-layoutreturn-done LAYOUTRETURN4res *
nfsv41:::op-link-start LINK4args *
nfsv41:::op-link-done LINK4res *
nfsv41:::op-lock-start LOCK4args *
nfsv41:::op-lock-done LOCK4res *
nfsv41:::op-lockt-start LOCKT4args *
nfsv41:::op-lockt-done LOCKT4res *
nfsv41:::op-locku-star LOCKU4args *
nfsv41:::op-locku-done LOCKU4res *
nfsv41:::op-lookup-start LOOKUP4args *
nfsv41:::op-lookup-done LOOKUP4res *
nfsv41:::op-lookupp-start <undefined>
nfsv41:::op-lookupp-done LOOKUPP4res *
nfsv41:::op-notsup-start <undefined>
nfsv41:::op-notsup-done <undefined>
nfsv41:::op-nverify-start NVERIFY4args *
nfsv41:::op-nverify-done NVERIFY4res *
nfsv41:::op-open-start OPEN4args *
nfsv41:::op-open-done OPEN4res *
nfsv41:::op-open-downgrade-start OPEN_DOWNGRADE4args *
nfsv41:::op-open-downgrade-done OPEN_DOWNGRADE4res *
nfsv41:::op-openattr-start OPENATTR4args *
nfsv41:::op-openattr-done OPENATTR4res *
nfsv41:::op-putfh-start PUTFH4args *
nfsv41:::op-putfh-done PUTFH4res *
nfsv41:::op-putpubfh-start <undefined>
nfsv41:::op-putpubfh-done PUTPUBFH4res *
nfsv41:::op-putrootfh-start <undefined>
nfsv41:::op-putrootfh-done PUTROOTFH4res *
nfsv41:::op-read-start READ4args *
nfsv41:::op-read-done READ4res *
nfsv41:::op-readlink-start <undefined>
nfsv41:::op-readlink-done READLINK4res *
nfsv41:::op-remove-start REMOVE4args *
nfsv41:::op-remove-done REMOVE4res *
nfsv41:::op-rename-start RENAME3args *
nfsv41:::op-rename-done RENAME3res *
nfsv41:::op-restorefh-start <undefined>
nfsv41:::op-restorefh-done RESTOREFH4res *
nfsv41:::op-savefh-start <undefined>
nfsv41:::op-savefh-done SAVEFH4res *
nfsv41:::op-secinfo-start SECINFO4args *
nfsv41:::op-secinfo-done SECINFO4res *
nfsv41:::op-secinfo-no-name-start <undefined>
nfsv41:::op-secinfo-no-name-done SECINFO_NO_NAME4res *
nfsv41:::op-sequence-start SEQUENCE4args *
nfsv41:::op-sequence-done SEQUENCE4res *
nfsv41:::op-setattr-start SETATTR4args *
nfsv41:::op-setattr-done SETATTR4res *
nfsv41:::op-verify-start VERIFY4args *
nfsv41:::op-verify-done VERIFY4res *
nfsv41:::op-write-start WREITE4args*
nfsv41:::op-write-done WRITE4res *
_______________________________________________
dtrace-discuss mailing list
[email protected]