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]

Reply via email to