freebsd-dev/sys/nfsclient
Robert Watson 47294818f9 Add dtnfsclient, a first cut at an NFSv2/v3 client reuest DTrace
provider.  The NFS client exposes 'start' and 'done' probes for NFSv2
and NFSv3 RPCs when using the new RPC implementation, passing in the
vnode, mbuf chain, credential, and NFSv2 or NFSv3 procedure number.
For 'done' probes, the error number is also available.

Probes are named in the following way:

  ...
  nfsclient:nfs2:write:start
  nfsclient:nfs2:write:done
  ...
  nfsclient:nfs3:access:start
  nfsclient:nfs3:access:done
  ...

Access to the unmarshalled arguments is not easily available at this
point in the stack, but the passed probe arguments are sufficient to
to a lot of interesting things in practice.  Technically, these probes
may cover multiple RPC retransmits, and even transactions if the
transaction ID change as a result of authentication failure or a
jukebox error from the server, but usefully capture the intent of a
single NFS request, such as access, getattr, write, etc.

Typical use might involve profiling RPC latency by system call, number
of RPCs, how often a getattr leads to a call to access, when failed
access control checks occur, etc.  More detailed RPC information might
best be provided by adding a krpc provider.  It would also be useful
to add NFS client probes for events such as the access cache or
attribute cache satisfying requests without an RPC.

Sponsored by:	Google, Inc.
MFC after:	1 month
2009-03-22 22:07:52 +00:00
..
bootp_subr.c For all files including net/vnet.h directly include opt_route.h and 2009-02-27 14:12:05 +00:00
krpc_subr.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
krpc.h
nfs_bio.c Remove the struct thread unuseful argument from bufobj interface. 2008-10-10 21:23:50 +00:00
nfs_diskless.c For all files including net/vnet.h directly include opt_route.h and 2009-02-27 14:12:05 +00:00
nfs_krpc.c Add dtnfsclient, a first cut at an NFSv2/v3 client reuest DTrace 2009-03-22 22:07:52 +00:00
nfs_lock.c Fix a number of style issues in the MALLOC / FREE commit. I've tried to 2008-10-23 20:26:15 +00:00
nfs_lock.h
nfs_nfsiod.c Document a few sysctls in the NFS client and server code. 2008-11-02 17:00:23 +00:00
nfs_node.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
nfs_socket.c Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
nfs_subs.c Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
nfs_vfsops.c Fix parsing of acregmin, acregmax, acdirmin and acdirmax NFS mount options 2009-01-28 07:46:35 +00:00
nfs_vnops.c Expand the per-node access cache to cache permissions for multiple users. 2009-03-20 21:12:38 +00:00
nfs.h Expand the per-node access cache to cache permissions for multiple users. 2009-03-20 21:12:38 +00:00
nfsargs.h Fix a serious deadlock with the NFS client. Given a large enough 2005-06-10 23:50:41 +00:00
nfsdiskless.h consolidate parsing of nfs root mount options in one place 2006-12-06 02:15:25 +00:00
nfsm_subs.h Consolidate the code to generate a new XID for a NFS request into a 2008-02-13 00:04:58 +00:00
nfsmount.h Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
nfsnode.h Expand the per-node access cache to cache permissions for multiple users. 2009-03-20 21:12:38 +00:00
nfsstats.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
nlminfo.h - Fix leak of struct nlminfo on process exit. 2005-10-26 07:18:37 +00:00