I forgot to include a big thank you to Brendan Gregg for writing a bunch of example scripts for the NFS v3 provider. Be sure to check out the documentation on the DTrace wiki.
http://wikis.sun.com/display/DTrace/nfsv3+Provider Adam On Thu, Jan 17, 2008 at 02:24:20PM -0800, Adam Leventhal wrote: > Below is a proposal for a new DTrace provider for NFS v3 developed by Sam > Falkner, Lisa Week, and me. It's quite similar to the NFS v4 provider which > was integrated into Solaris last month. If you have any comments, please > voice them by January 24th as we hope to submit the PSARC case shortly > after that. > > Adam > > ---8<--- > > NFS v3 Provider > > All NFS 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; > > > Operation probes have their second argument in common: > > args[1] nfsv3opinfo_t * NFS v3 operation properties > > typedef struct nfsv3opinfo { > string noi_curpath; /* current file handle path (if any) */ > cred_t *noi_cred; /* credentials */ > uint64_t noi_xid; /* transaction ID */ > } nfsv4opinfo_t; > > Below is a list of the probes along with the specific argument for each > whose type is defined by the NFS v3 specification: > > probe name args[2] > ---------- ------- > nfsv3:::op-access-start ACCESS3args * > nfsv3:::op-access-done ACCESS3res * > nfsv3:::op-commit-start COMMIT3args * > nfsv3:::op-commit-done COMMIT3res * > nfsv3:::op-create-start CREATE3args * > nfsv3:::op-create-done CREATE3res * > nfsv3:::op-fsinfo-start FSINFO3args * > nfsv3:::op-fsinfo-done FSINFO3res * > nfsv3:::op-fsstat-start FSSTAT3args * > nfsv3:::op-fsstat-done FSSTAT3res * > nfsv3:::op-getattr-start GETATTR3args * > nfsv3:::op-getattr-done GETATTR3res * > nfsv3:::op-lookup-start LOOKUP3args * > nfsv3:::op-lookup-done LOOKUP3res * > nfsv3:::op-link-start LINK3args * > nfsv3:::op-link-done LINK3res * > nfsv3:::op-mkdir-start MKDIR3args * > nfsv3:::op-mkdir-done MKDIR3res * > nfsv3:::op-mknod-start MKNOD3args * > nfsv3:::op-mknod-done MKNOD3res * > nfsv3:::op-null-start - > nfsv3:::op-null-done - > nfsv3:::op-pathconf-start PATHCONF3args * > nfsv3:::op-pathconf-done PATHCONF3res * > nfsv3:::op-read-start READ3args * > nfsv3:::op-read-done READ3res * > nfsv3:::op-readdir-start READDIR3args * > nfsv3:::op-readdir-done READDIR3res * > nfsv3:::op-readdirplus-start READDIRPLUS3args * > nfsv3:::op-readdirplus-done READDIRPLUS3res * > nfsv3:::op-readlink-start READLINK3args * > nfsv3:::op-readlink-done READLINK3res * > nfsv3:::op-remove-start REMOVE3args * > nfsv3:::op-remove-done REMOVE3res * > nfsv3:::op-renamestart RENAME3args * > nfsv3:::op-rename-done RENAME3res * > nfsv3:::op-rmdir-start RMDIR3args * > nfsv3:::op-rmdir-done RMDIR3res * > nfsv3:::op-setattr-start SETATTR3args * > nfsv3:::op-setattr-done SETATTR3res * > nfsv3:::op-symlink-start SYMLINK3args * > nfsv3:::op-symlink-done SYMLINK3res * > nfsv3:::op-write-start WRITE3args * > nfsv3:::op-write-done WRITE3res * > > Note that op-null-* probes have an undefined args[2]. > > > Documentation and examples can be found here: > > http://wikis.sun.com/display/DTrace/nfsv3+Provider > > ---8<--- > > -- > Adam Leventhal, Fishworks http://blogs.sun.com/ahl > _______________________________________________ > dtrace-discuss mailing list > dtrace-discuss at opensolaris.org -- Adam Leventhal, Fishworks http://blogs.sun.com/ahl