47294818f9
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
23 lines
308 B
Makefile
23 lines
308 B
Makefile
# $FreeBSD$
|
|
|
|
.include <bsd.own.mk>
|
|
.include "Makefile.inc"
|
|
|
|
SUBDIR= dtmalloc \
|
|
dtnfsclient \
|
|
dtrace \
|
|
dtraceall \
|
|
dtrace_test \
|
|
profile \
|
|
prototype \
|
|
sdt \
|
|
systrace
|
|
|
|
.if ${MACHINE_ARCH} == "amd64"
|
|
SUBDIR+= fbt
|
|
.elif ${MACHINE_ARCH} == "i386"
|
|
SUBDIR+= fbt
|
|
.endif
|
|
|
|
.include <bsd.subdir.mk>
|